From 806116bda488195529aab9e3851adfbef23ed9d0 Mon Sep 17 00:00:00 2001 From: wadecong Date: Wed, 21 Jul 2021 15:17:14 +0800 Subject: [PATCH] node_modules --- node_modules/.bin/mime | 1 + node_modules/.bin/semver | 1 + node_modules/.bin/which | 1 + node_modules/.package-lock.json | 519 + node_modules/@actions/core/LICENSE.md | 9 + node_modules/@actions/core/README.md | 147 + node_modules/@actions/core/lib/command.d.ts | 16 + node_modules/@actions/core/lib/command.js | 79 + node_modules/@actions/core/lib/command.js.map | 1 + node_modules/@actions/core/lib/core.d.ts | 122 + node_modules/@actions/core/lib/core.js | 238 + node_modules/@actions/core/lib/core.js.map | 1 + .../@actions/core/lib/file-command.d.ts | 1 + .../@actions/core/lib/file-command.js | 29 + .../@actions/core/lib/file-command.js.map | 1 + node_modules/@actions/core/lib/utils.d.ts | 5 + node_modules/@actions/core/lib/utils.js | 19 + node_modules/@actions/core/lib/utils.js.map | 1 + node_modules/@actions/core/package.json | 41 + node_modules/@actions/github/README.md | 57 + node_modules/@actions/github/lib/context.d.ts | 26 + node_modules/@actions/github/lib/context.js | 46 + .../@actions/github/lib/context.js.map | 1 + node_modules/@actions/github/lib/github.d.ts | 8 + node_modules/@actions/github/lib/github.js | 29 + .../@actions/github/lib/github.js.map | 1 + .../@actions/github/lib/interfaces.d.ts | 36 + .../@actions/github/lib/interfaces.js | 4 + .../@actions/github/lib/interfaces.js.map | 1 + node_modules/@actions/github/package.json | 44 + node_modules/@octokit/endpoint/LICENSE | 21 + node_modules/@octokit/endpoint/README.md | 421 + .../@octokit/endpoint/dist-node/index.js | 379 + .../@octokit/endpoint/dist-node/index.js.map | 1 + .../@octokit/endpoint/dist-src/defaults.js | 17 + .../dist-src/endpoint-with-defaults.js | 5 + .../@octokit/endpoint/dist-src/index.js | 3 + .../@octokit/endpoint/dist-src/merge.js | 22 + .../@octokit/endpoint/dist-src/parse.js | 81 + .../dist-src/util/add-query-parameters.js | 21 + .../util/extract-url-variable-names.js | 11 + .../endpoint/dist-src/util/lowercase-keys.js | 9 + .../endpoint/dist-src/util/merge-deep.js | 16 + .../@octokit/endpoint/dist-src/util/omit.js | 8 + .../endpoint/dist-src/util/url-template.js | 170 + .../@octokit/endpoint/dist-src/version.js | 1 + .../endpoint/dist-src/with-defaults.js | 13 + .../endpoint/dist-types/defaults.d.ts | 2 + .../dist-types/endpoint-with-defaults.d.ts | 3 + .../@octokit/endpoint/dist-types/index.d.ts | 1 + .../@octokit/endpoint/dist-types/merge.d.ts | 2 + .../@octokit/endpoint/dist-types/parse.d.ts | 2 + .../dist-types/util/add-query-parameters.d.ts | 4 + .../util/extract-url-variable-names.d.ts | 1 + .../dist-types/util/lowercase-keys.d.ts | 5 + .../endpoint/dist-types/util/merge-deep.d.ts | 1 + .../endpoint/dist-types/util/omit.d.ts | 5 + .../dist-types/util/url-template.d.ts | 3 + .../@octokit/endpoint/dist-types/version.d.ts | 1 + .../endpoint/dist-types/with-defaults.d.ts | 2 + .../@octokit/endpoint/dist-web/index.js | 379 + .../@octokit/endpoint/dist-web/index.js.map | 1 + .../node_modules/is-plain-object/LICENSE | 21 + .../node_modules/is-plain-object/README.md | 119 + .../node_modules/is-plain-object/index.cjs.js | 48 + .../node_modules/is-plain-object/index.d.ts | 3 + .../node_modules/is-plain-object/index.js | 35 + .../node_modules/is-plain-object/package.json | 82 + .../endpoint/node_modules/isobject/LICENSE | 21 + .../endpoint/node_modules/isobject/README.md | 127 + .../node_modules/isobject/index.cjs.js | 14 + .../endpoint/node_modules/isobject/index.d.ts | 3 + .../endpoint/node_modules/isobject/index.js | 10 + .../node_modules/isobject/package.json | 80 + node_modules/@octokit/endpoint/package.json | 51 + node_modules/@octokit/graphql/LICENSE | 21 + node_modules/@octokit/graphql/README.md | 380 + .../@octokit/graphql/dist-node/index.js | 85 + .../@octokit/graphql/dist-node/index.js.map | 1 + .../@octokit/graphql/dist-src/error.js | 14 + .../@octokit/graphql/dist-src/graphql.js | 34 + .../@octokit/graphql/dist-src/index.js | 17 + .../@octokit/graphql/dist-src/types.js | 0 .../@octokit/graphql/dist-src/version.js | 1 + .../graphql/dist-src/with-defaults.js | 12 + .../@octokit/graphql/dist-types/error.d.ts | 7 + .../@octokit/graphql/dist-types/graphql.d.ts | 3 + .../@octokit/graphql/dist-types/index.d.ts | 3 + .../@octokit/graphql/dist-types/types.d.ts | 47 + .../@octokit/graphql/dist-types/version.d.ts | 1 + .../graphql/dist-types/with-defaults.d.ts | 3 + .../@octokit/graphql/dist-web/index.js | 81 + .../@octokit/graphql/dist-web/index.js.map | 1 + node_modules/@octokit/graphql/package.json | 54 + node_modules/@octokit/plugin-retry/LICENSE | 21 + node_modules/@octokit/plugin-retry/README.md | 105 + .../@octokit/plugin-retry/dist-node/index.js | 75 + .../plugin-retry/dist-node/index.js.map | 1 + .../plugin-retry/dist-src/error-request.js | 15 + .../@octokit/plugin-retry/dist-src/index.js | 26 + .../@octokit/plugin-retry/dist-src/version.js | 1 + .../plugin-retry/dist-src/wrap-request.js | 18 + .../dist-types/error-request.d.ts | 1 + .../plugin-retry/dist-types/index.d.ts | 6 + .../plugin-retry/dist-types/version.d.ts | 1 + .../plugin-retry/dist-types/wrap-request.d.ts | 1 + .../@octokit/plugin-retry/dist-web/index.js | 63 + .../plugin-retry/dist-web/index.js.map | 1 + .../node_modules/@octokit/types/LICENSE | 7 + .../node_modules/@octokit/types/README.md | 65 + .../@octokit/types/dist-node/index.js | 8 + .../@octokit/types/dist-node/index.js.map | 1 + .../@octokit/types/dist-src/AuthInterface.js | 0 .../types/dist-src/EndpointDefaults.js | 0 .../types/dist-src/EndpointInterface.js | 0 .../types/dist-src/EndpointOptions.js | 0 .../@octokit/types/dist-src/Fetch.js | 0 .../GetResponseTypeFromEndpointMethod.js | 0 .../types/dist-src/OctokitResponse.js | 0 .../@octokit/types/dist-src/RequestHeaders.js | 0 .../types/dist-src/RequestInterface.js | 0 .../@octokit/types/dist-src/RequestMethod.js | 0 .../@octokit/types/dist-src/RequestOptions.js | 0 .../types/dist-src/RequestParameters.js | 0 .../types/dist-src/RequestRequestOptions.js | 0 .../types/dist-src/ResponseHeaders.js | 0 .../@octokit/types/dist-src/Route.js | 0 .../@octokit/types/dist-src/Signal.js | 0 .../types/dist-src/StrategyInterface.js | 0 .../@octokit/types/dist-src/Url.js | 0 .../@octokit/types/dist-src/VERSION.js | 1 + .../types/dist-src/generated/Endpoints.js | 0 .../@octokit/types/dist-src/index.js | 1 + .../types/dist-types/AuthInterface.d.ts | 31 + .../types/dist-types/EndpointDefaults.d.ts | 21 + .../types/dist-types/EndpointInterface.d.ts | 65 + .../types/dist-types/EndpointOptions.d.ts | 7 + .../@octokit/types/dist-types/Fetch.d.ts | 4 + .../GetResponseTypeFromEndpointMethod.d.ts | 5 + .../types/dist-types/OctokitResponse.d.ts | 17 + .../types/dist-types/RequestHeaders.d.ts | 15 + .../types/dist-types/RequestInterface.d.ts | 34 + .../types/dist-types/RequestMethod.d.ts | 4 + .../types/dist-types/RequestOptions.d.ts | 14 + .../types/dist-types/RequestParameters.d.ts | 45 + .../dist-types/RequestRequestOptions.d.ts | 26 + .../types/dist-types/ResponseHeaders.d.ts | 20 + .../@octokit/types/dist-types/Route.d.ts | 4 + .../@octokit/types/dist-types/Signal.d.ts | 6 + .../types/dist-types/StrategyInterface.d.ts | 4 + .../@octokit/types/dist-types/Url.d.ts | 4 + .../@octokit/types/dist-types/VERSION.d.ts | 1 + .../types/dist-types/generated/Endpoints.d.ts | 36955 ++++++++++++++++ .../@octokit/types/dist-types/index.d.ts | 20 + .../@octokit/types/dist-web/index.js | 4 + .../@octokit/types/dist-web/index.js.map | 1 + .../node_modules/@octokit/types/package.json | 49 + .../@octokit/plugin-retry/package.json | 49 + .../@octokit/plugin-throttling/LICENSE | 21 + .../@octokit/plugin-throttling/README.md | 149 + .../plugin-throttling/dist-node/index.js | 289 + .../plugin-throttling/dist-node/index.js.map | 1 + .../generated/triggers-notification-paths.js | 18 + .../plugin-throttling/dist-src/index.js | 124 + .../dist-src/route-matcher.js | 29 + .../plugin-throttling/dist-src/version.js | 1 + .../dist-src/wrap-request.js | 46 + .../triggers-notification-paths.d.ts | 2 + .../plugin-throttling/dist-types/index.d.ts | 6 + .../dist-types/route-matcher.d.ts | 1 + .../plugin-throttling/dist-types/version.d.ts | 1 + .../dist-types/wrap-request.d.ts | 1 + .../plugin-throttling/dist-web/index.js | 222 + .../plugin-throttling/dist-web/index.js.map | 1 + .../node_modules/@octokit/types/LICENSE | 7 + .../node_modules/@octokit/types/README.md | 65 + .../@octokit/types/dist-node/index.js | 8 + .../@octokit/types/dist-node/index.js.map | 1 + .../@octokit/types/dist-src/AuthInterface.js | 0 .../types/dist-src/EndpointDefaults.js | 0 .../types/dist-src/EndpointInterface.js | 0 .../types/dist-src/EndpointOptions.js | 0 .../@octokit/types/dist-src/Fetch.js | 0 .../GetResponseTypeFromEndpointMethod.js | 0 .../types/dist-src/OctokitResponse.js | 0 .../@octokit/types/dist-src/RequestHeaders.js | 0 .../types/dist-src/RequestInterface.js | 0 .../@octokit/types/dist-src/RequestMethod.js | 0 .../@octokit/types/dist-src/RequestOptions.js | 0 .../types/dist-src/RequestParameters.js | 0 .../types/dist-src/RequestRequestOptions.js | 0 .../types/dist-src/ResponseHeaders.js | 0 .../@octokit/types/dist-src/Route.js | 0 .../@octokit/types/dist-src/Signal.js | 0 .../types/dist-src/StrategyInterface.js | 0 .../@octokit/types/dist-src/Url.js | 0 .../@octokit/types/dist-src/VERSION.js | 1 + .../types/dist-src/generated/Endpoints.js | 0 .../@octokit/types/dist-src/index.js | 1 + .../types/dist-types/AuthInterface.d.ts | 31 + .../types/dist-types/EndpointDefaults.d.ts | 21 + .../types/dist-types/EndpointInterface.d.ts | 65 + .../types/dist-types/EndpointOptions.d.ts | 7 + .../@octokit/types/dist-types/Fetch.d.ts | 4 + .../GetResponseTypeFromEndpointMethod.d.ts | 5 + .../types/dist-types/OctokitResponse.d.ts | 17 + .../types/dist-types/RequestHeaders.d.ts | 15 + .../types/dist-types/RequestInterface.d.ts | 34 + .../types/dist-types/RequestMethod.d.ts | 4 + .../types/dist-types/RequestOptions.d.ts | 14 + .../types/dist-types/RequestParameters.d.ts | 45 + .../dist-types/RequestRequestOptions.d.ts | 26 + .../types/dist-types/ResponseHeaders.d.ts | 20 + .../@octokit/types/dist-types/Route.d.ts | 4 + .../@octokit/types/dist-types/Signal.d.ts | 6 + .../types/dist-types/StrategyInterface.d.ts | 4 + .../@octokit/types/dist-types/Url.d.ts | 4 + .../@octokit/types/dist-types/VERSION.d.ts | 1 + .../types/dist-types/generated/Endpoints.d.ts | 36955 ++++++++++++++++ .../@octokit/types/dist-types/index.d.ts | 20 + .../@octokit/types/dist-web/index.js | 4 + .../@octokit/types/dist-web/index.js.map | 1 + .../node_modules/@octokit/types/package.json | 49 + .../@octokit/plugin-throttling/package.json | 50 + node_modules/@octokit/request-error/LICENSE | 21 + node_modules/@octokit/request-error/README.md | 68 + .../@octokit/request-error/dist-node/index.js | 55 + .../request-error/dist-node/index.js.map | 1 + .../@octokit/request-error/dist-src/index.js | 40 + .../@octokit/request-error/dist-src/types.js | 0 .../request-error/dist-types/index.d.ts | 27 + .../request-error/dist-types/types.d.ts | 5 + .../@octokit/request-error/dist-web/index.js | 44 + .../request-error/dist-web/index.js.map | 1 + .../@octokit/request-error/package.json | 54 + node_modules/@octokit/request/LICENSE | 21 + node_modules/@octokit/request/README.md | 539 + .../@octokit/request/dist-node/index.js | 148 + .../@octokit/request/dist-node/index.js.map | 1 + .../request/dist-src/fetch-wrapper.js | 93 + .../request/dist-src/get-buffer-response.js | 3 + .../@octokit/request/dist-src/index.js | 9 + .../@octokit/request/dist-src/version.js | 1 + .../request/dist-src/with-defaults.js | 22 + .../request/dist-types/fetch-wrapper.d.ts | 11 + .../dist-types/get-buffer-response.d.ts | 2 + .../@octokit/request/dist-types/index.d.ts | 1 + .../@octokit/request/dist-types/version.d.ts | 1 + .../request/dist-types/with-defaults.d.ts | 2 + .../@octokit/request/dist-web/index.js | 132 + .../@octokit/request/dist-web/index.js.map | 1 + .../node_modules/is-plain-object/LICENSE | 21 + .../node_modules/is-plain-object/README.md | 119 + .../node_modules/is-plain-object/index.cjs.js | 48 + .../node_modules/is-plain-object/index.d.ts | 3 + .../node_modules/is-plain-object/index.js | 35 + .../node_modules/is-plain-object/package.json | 82 + .../request/node_modules/isobject/LICENSE | 21 + .../request/node_modules/isobject/README.md | 127 + .../node_modules/isobject/index.cjs.js | 14 + .../request/node_modules/isobject/index.d.ts | 3 + .../request/node_modules/isobject/index.js | 10 + .../node_modules/isobject/package.json | 80 + node_modules/@octokit/request/package.json | 64 + node_modules/@octokit/rest/LICENSE | 22 + node_modules/@octokit/rest/README.md | 46 + node_modules/@octokit/rest/index.d.ts | 36073 +++++++++++++++ node_modules/@octokit/rest/index.js | 15 + node_modules/@octokit/rest/lib/constructor.js | 29 + node_modules/@octokit/rest/lib/core.js | 3 + node_modules/@octokit/rest/lib/factory.js | 10 + .../@octokit/rest/lib/parse-client-options.js | 89 + .../@octokit/rest/lib/register-plugin.js | 9 + node_modules/@octokit/rest/package.json | 135 + .../authentication-deprecated/authenticate.js | 52 + .../before-request.js | 43 + .../authentication-deprecated/index.js | 31 + .../request-error.js | 55 + .../plugins/authentication/before-request.js | 65 + .../rest/plugins/authentication/index.js | 21 + .../plugins/authentication/request-error.js | 61 + .../rest/plugins/authentication/validate.js | 21 + .../with-authorization-prefix.js | 23 + .../@octokit/rest/plugins/log/index.js | 28 + .../@octokit/rest/plugins/pagination/index.js | 9 + .../rest/plugins/pagination/iterator.js | 34 + .../normalize-paginated-list-response.js | 116 + .../rest/plugins/pagination/paginate.js | 40 + .../rest/plugins/register-endpoints/index.js | 7 + .../register-endpoints/register-endpoints.js | 98 + .../rest/plugins/rest-api-endpoints/index.js | 13 + .../plugins/rest-api-endpoints/routes.json | 5927 +++ .../@octokit/rest/plugins/validate/index.js | 7 + .../rest/plugins/validate/validate.js | 151 + .../types/.github/ISSUE_TEMPLATE/01_help.md | 5 + .../types/.github/ISSUE_TEMPLATE/02_bug.md | 19 + .../ISSUE_TEMPLATE/03_feature_request.md | 19 + .../types/.github/ISSUE_TEMPLATE/04_thanks.md | 19 + .../types/.github/workflows/release.yml | 28 + .../types/.github/workflows/routes-update.yml | 39 + .../@octokit/types/.github/workflows/test.yml | 19 + .../@octokit/types/CODE_OF_CONDUCT.md | 75 + node_modules/@octokit/types/CONTRIBUTING.md | 59 + node_modules/@octokit/types/LICENSE | 7 + node_modules/@octokit/types/README.md | 19 + node_modules/@octokit/types/package.json | 62 + .../scripts/update-endpoints/fetch-json.js | 46 + .../update-endpoints/generated/README.md | 3 + .../update-endpoints/generated/endpoints.json | 25258 +++++++++++ .../templates/endpoints.ts.template | 33 + .../scripts/update-endpoints/typescript.js | 179 + .../@octokit/types/src/AuthInterface.ts | 43 + .../@octokit/types/src/EndpointDefaults.ts | 22 + .../@octokit/types/src/EndpointInterface.ts | 74 + .../@octokit/types/src/EndpointOptions.ts | 8 + node_modules/@octokit/types/src/Fetch.ts | 4 + .../@octokit/types/src/OctokitResponse.ts | 18 + .../@octokit/types/src/RequestHeaders.ts | 15 + .../@octokit/types/src/RequestInterface.ts | 34 + .../@octokit/types/src/RequestMethod.ts | 10 + .../@octokit/types/src/RequestOptions.ts | 15 + .../@octokit/types/src/RequestParameters.ts | 46 + .../types/src/RequestRequestOptions.ts | 27 + .../@octokit/types/src/ResponseHeaders.ts | 21 + node_modules/@octokit/types/src/Route.ts | 4 + node_modules/@octokit/types/src/Signal.ts | 6 + .../@octokit/types/src/StrategyInterface.ts | 9 + node_modules/@octokit/types/src/Url.ts | 4 + node_modules/@octokit/types/src/VERSION.ts | 1 + .../@octokit/types/src/generated/Endpoints.ts | 14190 ++++++ .../@octokit/types/src/generated/README.md | 3 + node_modules/@octokit/types/src/index.ts | 18 + node_modules/@types/node/LICENSE | 21 + node_modules/@types/node/README.md | 16 + node_modules/@types/node/assert.d.ts | 48 + node_modules/@types/node/async_hooks.d.ts | 132 + node_modules/@types/node/base.d.ts | 41 + node_modules/@types/node/buffer.d.ts | 22 + node_modules/@types/node/child_process.d.ts | 483 + node_modules/@types/node/cluster.d.ts | 260 + node_modules/@types/node/console.d.ts | 3 + node_modules/@types/node/constants.d.ts | 448 + node_modules/@types/node/crypto.d.ts | 614 + node_modules/@types/node/dgram.d.ts | 118 + node_modules/@types/node/dns.d.ts | 366 + node_modules/@types/node/domain.d.ts | 16 + node_modules/@types/node/events.d.ts | 39 + node_modules/@types/node/fs.d.ts | 2451 + node_modules/@types/node/globals.d.ts | 1165 + node_modules/@types/node/http.d.ts | 371 + node_modules/@types/node/http2.d.ts | 947 + node_modules/@types/node/https.d.ts | 53 + node_modules/@types/node/index.d.ts | 104 + node_modules/@types/node/inspector.d.ts | 3034 ++ node_modules/@types/node/module.d.ts | 3 + node_modules/@types/node/net.d.ts | 268 + node_modules/@types/node/os.d.ts | 263 + node_modules/@types/node/package.json | 231 + node_modules/@types/node/path.d.ts | 159 + node_modules/@types/node/perf_hooks.d.ts | 304 + node_modules/@types/node/process.d.ts | 15 + node_modules/@types/node/punycode.d.ts | 12 + node_modules/@types/node/querystring.d.ts | 29 + node_modules/@types/node/readline.d.ts | 157 + node_modules/@types/node/repl.d.ts | 382 + node_modules/@types/node/stream.d.ts | 321 + node_modules/@types/node/string_decoder.d.ts | 7 + node_modules/@types/node/timers.d.ts | 16 + node_modules/@types/node/tls.d.ts | 702 + node_modules/@types/node/trace_events.d.ts | 61 + node_modules/@types/node/ts3.2/fs.d.ts | 33 + node_modules/@types/node/ts3.2/globals.d.ts | 19 + node_modules/@types/node/ts3.2/index.d.ts | 16 + node_modules/@types/node/ts3.2/util.d.ts | 15 + node_modules/@types/node/tty.d.ts | 66 + node_modules/@types/node/url.d.ts | 111 + node_modules/@types/node/util.d.ts | 180 + node_modules/@types/node/v8.d.ts | 197 + node_modules/@types/node/vm.d.ts | 110 + node_modules/@types/node/worker_threads.d.ts | 153 + node_modules/@types/node/zlib.d.ts | 352 + node_modules/atob-lite/.npmignore | 6 + node_modules/atob-lite/LICENSE.md | 18 + node_modules/atob-lite/README.md | 37 + node_modules/atob-lite/atob-browser.js | 3 + node_modules/atob-lite/atob-node.js | 3 + node_modules/atob-lite/package.json | 42 + node_modules/balanced-match/.npmignore | 5 + node_modules/balanced-match/LICENSE.md | 21 + node_modules/balanced-match/README.md | 91 + node_modules/balanced-match/index.js | 59 + node_modules/balanced-match/package.json | 49 + node_modules/before-after-hook/LICENSE | 201 + node_modules/before-after-hook/README.md | 574 + node_modules/before-after-hook/index.d.ts | 96 + node_modules/before-after-hook/index.js | 57 + node_modules/before-after-hook/lib/add.js | 46 + .../before-after-hook/lib/register.js | 28 + node_modules/before-after-hook/lib/remove.js | 17 + node_modules/before-after-hook/package.json | 70 + node_modules/bottleneck/.babelrc.es5 | 5 + node_modules/bottleneck/.babelrc.lib | 9 + node_modules/bottleneck/.env | 2 + node_modules/bottleneck/.travis.yml | 25 + node_modules/bottleneck/LICENSE | 20 + node_modules/bottleneck/README.md | 1027 + node_modules/bottleneck/bottleneck.d.ts | 629 + node_modules/bottleneck/bottleneck.d.ts.ejs | 588 + node_modules/bottleneck/bower.json | 30 + node_modules/bottleneck/es5.js | 5064 +++ node_modules/bottleneck/lib/Batcher.js | 66 + node_modules/bottleneck/lib/Bottleneck.js | 594 + .../bottleneck/lib/BottleneckError.js | 5 + node_modules/bottleneck/lib/DLList.js | 107 + node_modules/bottleneck/lib/Events.js | 128 + node_modules/bottleneck/lib/Group.js | 198 + .../bottleneck/lib/IORedisConnection.js | 186 + node_modules/bottleneck/lib/Job.js | 215 + node_modules/bottleneck/lib/LocalDatastore.js | 287 + node_modules/bottleneck/lib/Queues.js | 77 + .../bottleneck/lib/RedisConnection.js | 193 + node_modules/bottleneck/lib/RedisDatastore.js | 352 + node_modules/bottleneck/lib/Scripts.js | 162 + node_modules/bottleneck/lib/States.js | 88 + node_modules/bottleneck/lib/Sync.js | 80 + node_modules/bottleneck/lib/es5.js | 5 + node_modules/bottleneck/lib/index.js | 3 + node_modules/bottleneck/lib/lua.json | 24 + node_modules/bottleneck/lib/parser.js | 26 + node_modules/bottleneck/lib/version.json | 1 + node_modules/bottleneck/light.js | 1524 + node_modules/bottleneck/package.json | 56 + node_modules/bottleneck/rollup.config.es5.js | 34 + .../bottleneck/rollup.config.light.js | 44 + .../bottleneck/scripts/assemble_lua.js | 25 + node_modules/bottleneck/scripts/build.sh | 82 + node_modules/bottleneck/scripts/test_all.sh | 20 + node_modules/bottleneck/scripts/version.js | 3 + node_modules/bottleneck/src/Batcher.coffee | 39 + node_modules/bottleneck/src/Bottleneck.coffee | 298 + .../bottleneck/src/BottleneckError.coffee | 3 + node_modules/bottleneck/src/DLList.coffee | 38 + node_modules/bottleneck/src/Events.coffee | 38 + node_modules/bottleneck/src/Group.coffee | 80 + .../bottleneck/src/IORedisConnection.coffee | 84 + node_modules/bottleneck/src/Job.coffee | 98 + .../bottleneck/src/LocalDatastore.coffee | 140 + node_modules/bottleneck/src/Queues.coffee | 28 + .../bottleneck/src/RedisConnection.coffee | 91 + .../bottleneck/src/RedisDatastore.coffee | 158 + node_modules/bottleneck/src/Scripts.coffee | 151 + node_modules/bottleneck/src/States.coffee | 43 + node_modules/bottleneck/src/Sync.coffee | 28 + node_modules/bottleneck/src/es5.coffee | 3 + node_modules/bottleneck/src/index.coffee | 1 + node_modules/bottleneck/src/parser.coffee | 10 + .../bottleneck/src/redis/blacklist_client.lua | 8 + node_modules/bottleneck/src/redis/check.lua | 6 + .../bottleneck/src/redis/conditions_check.lua | 3 + .../src/redis/current_reservoir.lua | 1 + node_modules/bottleneck/src/redis/done.lua | 3 + node_modules/bottleneck/src/redis/free.lua | 5 + .../bottleneck/src/redis/get_time.lua | 7 + .../bottleneck/src/redis/group_check.lua | 1 + .../bottleneck/src/redis/heartbeat.lua | 1 + .../src/redis/increment_reservoir.lua | 10 + node_modules/bottleneck/src/redis/init.lua | 105 + .../bottleneck/src/redis/process_tick.lua | 214 + node_modules/bottleneck/src/redis/queued.lua | 10 + .../src/redis/refresh_expiration.lua | 11 + node_modules/bottleneck/src/redis/refs.lua | 13 + .../bottleneck/src/redis/register.lua | 51 + .../bottleneck/src/redis/register_client.lua | 12 + node_modules/bottleneck/src/redis/running.lua | 1 + node_modules/bottleneck/src/redis/submit.lua | 74 + .../bottleneck/src/redis/update_settings.lua | 14 + .../bottleneck/src/redis/validate_client.lua | 5 + .../bottleneck/src/redis/validate_keys.lua | 3 + node_modules/bottleneck/test.ts | 335 + node_modules/bottleneck/test/DLList.js | 148 + node_modules/bottleneck/test/batcher.js | 209 + node_modules/bottleneck/test/bottleneck.js | 7 + node_modules/bottleneck/test/cluster.js | 1549 + node_modules/bottleneck/test/context.js | 142 + node_modules/bottleneck/test/general.js | 867 + node_modules/bottleneck/test/group.js | 255 + node_modules/bottleneck/test/ioredis.js | 135 + node_modules/bottleneck/test/node_redis.js | 100 + node_modules/bottleneck/test/priority.js | 184 + node_modules/bottleneck/test/promises.js | 202 + node_modules/bottleneck/test/retries.js | 237 + .../test/spawn/increaseKeepAlive.js | 17 + .../bottleneck/test/spawn/refreshKeepAlive.js | 17 + node_modules/bottleneck/test/states.js | 103 + node_modules/bottleneck/test/stop.js | 208 + node_modules/brace-expansion/LICENSE | 21 + node_modules/brace-expansion/README.md | 129 + node_modules/brace-expansion/index.js | 201 + node_modules/brace-expansion/package.json | 47 + node_modules/btoa-lite/.npmignore | 6 + node_modules/btoa-lite/LICENSE.md | 18 + node_modules/btoa-lite/README.md | 37 + node_modules/btoa-lite/btoa-browser.js | 3 + node_modules/btoa-lite/btoa-node.js | 3 + node_modules/btoa-lite/package.json | 41 + node_modules/concat-map/.travis.yml | 4 + node_modules/concat-map/LICENSE | 18 + node_modules/concat-map/README.markdown | 62 + node_modules/concat-map/example/map.js | 6 + node_modules/concat-map/index.js | 13 + node_modules/concat-map/package.json | 43 + node_modules/concat-map/test/map.js | 39 + node_modules/cross-spawn/CHANGELOG.md | 100 + node_modules/cross-spawn/LICENSE | 21 + node_modules/cross-spawn/README.md | 94 + node_modules/cross-spawn/index.js | 39 + node_modules/cross-spawn/lib/enoent.js | 59 + node_modules/cross-spawn/lib/parse.js | 125 + node_modules/cross-spawn/lib/util/escape.js | 45 + .../cross-spawn/lib/util/readShebang.js | 32 + .../cross-spawn/lib/util/resolveCommand.js | 47 + node_modules/cross-spawn/package.json | 76 + node_modules/deprecation/LICENSE | 15 + node_modules/deprecation/README.md | 77 + node_modules/deprecation/dist-node/index.js | 20 + node_modules/deprecation/dist-src/index.js | 14 + .../deprecation/dist-types/index.d.ts | 3 + node_modules/deprecation/dist-web/index.js | 16 + node_modules/deprecation/package.json | 34 + node_modules/end-of-stream/LICENSE | 21 + node_modules/end-of-stream/README.md | 52 + node_modules/end-of-stream/index.js | 87 + node_modules/end-of-stream/package.json | 34 + node_modules/execa/index.js | 361 + node_modules/execa/lib/errname.js | 39 + node_modules/execa/lib/stdio.js | 41 + node_modules/execa/license | 9 + node_modules/execa/package.json | 69 + node_modules/execa/readme.md | 327 + node_modules/fs.realpath/LICENSE | 43 + node_modules/fs.realpath/README.md | 33 + node_modules/fs.realpath/index.js | 66 + node_modules/fs.realpath/old.js | 303 + node_modules/fs.realpath/package.json | 26 + node_modules/get-stream/buffer-stream.js | 51 + node_modules/get-stream/index.js | 50 + node_modules/get-stream/license | 9 + node_modules/get-stream/package.json | 46 + node_modules/get-stream/readme.md | 123 + node_modules/glob/LICENSE | 21 + node_modules/glob/README.md | 375 + node_modules/glob/changelog.md | 67 + node_modules/glob/common.js | 240 + node_modules/glob/glob.js | 790 + node_modules/glob/package.json | 46 + node_modules/glob/sync.js | 486 + node_modules/inflight/LICENSE | 15 + node_modules/inflight/README.md | 37 + node_modules/inflight/inflight.js | 54 + node_modules/inflight/package.json | 29 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/is-stream/index.js | 21 + node_modules/is-stream/license | 21 + node_modules/is-stream/package.json | 38 + node_modules/is-stream/readme.md | 42 + node_modules/isexe/.npmignore | 2 + node_modules/isexe/LICENSE | 15 + node_modules/isexe/README.md | 51 + node_modules/isexe/index.js | 57 + node_modules/isexe/mode.js | 41 + node_modules/isexe/package.json | 31 + node_modules/isexe/test/basic.js | 221 + node_modules/isexe/windows.js | 42 + node_modules/lodash.get/LICENSE | 47 + node_modules/lodash.get/README.md | 18 + node_modules/lodash.get/index.js | 931 + node_modules/lodash.get/package.json | 17 + node_modules/lodash.set/LICENSE | 47 + node_modules/lodash.set/README.md | 18 + node_modules/lodash.set/index.js | 990 + node_modules/lodash.set/package.json | 17 + node_modules/lodash.uniq/LICENSE | 47 + node_modules/lodash.uniq/README.md | 18 + node_modules/lodash.uniq/index.js | 896 + node_modules/lodash.uniq/package.json | 17 + node_modules/macos-release/index.d.ts | 36 + node_modules/macos-release/index.js | 32 + node_modules/macos-release/license | 9 + node_modules/macos-release/package.json | 39 + node_modules/macos-release/readme.md | 57 + node_modules/mime/.eslintrc.json | 51 + node_modules/mime/.github/ISSUE_TEMPLATE.md | 6 + .../mime/.github/PULL_REQUEST_TEMPLATE.md | 6 + node_modules/mime/.travis.yml | 5 + node_modules/mime/CHANGELOG.md | 262 + node_modules/mime/CONTRIBUTING.md | 5 + node_modules/mime/LICENSE | 21 + node_modules/mime/Mime.js | 95 + node_modules/mime/README.md | 193 + node_modules/mime/cli.js | 10 + node_modules/mime/index.js | 4 + node_modules/mime/lite.js | 4 + node_modules/mime/package.json | 45 + node_modules/mime/src/README_js.md | 184 + node_modules/mime/src/benchmark.js | 26 + node_modules/mime/src/build.js | 71 + node_modules/mime/src/test.js | 256 + node_modules/mime/types/other.js | 1 + node_modules/mime/types/standard.js | 1 + node_modules/minimatch/LICENSE | 15 + node_modules/minimatch/README.md | 209 + node_modules/minimatch/minimatch.js | 923 + node_modules/minimatch/package.json | 30 + node_modules/nice-try/CHANGELOG.md | 21 + node_modules/nice-try/LICENSE | 21 + node_modules/nice-try/README.md | 32 + node_modules/nice-try/package.json | 33 + node_modules/nice-try/src/index.js | 12 + node_modules/node-fetch/CHANGELOG.md | 272 + node_modules/node-fetch/LICENSE.md | 22 + node_modules/node-fetch/README.md | 590 + node_modules/node-fetch/browser.js | 25 + node_modules/node-fetch/lib/index.es.js | 1640 + node_modules/node-fetch/lib/index.js | 1649 + node_modules/node-fetch/lib/index.mjs | 1638 + node_modules/node-fetch/package.json | 66 + node_modules/npm-run-path/index.js | 39 + node_modules/npm-run-path/license | 21 + node_modules/npm-run-path/package.json | 45 + node_modules/npm-run-path/readme.md | 81 + .../octokit-pagination-methods/.travis.yml | 36 + .../CODE_OF_CONDUCT.md | 46 + .../octokit-pagination-methods/LICENSE | 22 + .../octokit-pagination-methods/README.md | 42 + .../octokit-pagination-methods/index.js | 12 + .../lib/deprecate.js | 12 + .../lib/get-first-page.js | 7 + .../lib/get-last-page.js | 7 + .../lib/get-next-page.js | 7 + .../lib/get-page-links.js | 15 + .../lib/get-page.js | 38 + .../lib/get-previous-page.js | 7 + .../lib/has-first-page.js | 9 + .../lib/has-last-page.js | 9 + .../lib/has-next-page.js | 9 + .../lib/has-previous-page.js | 9 + .../lib/http-error.js | 15 + .../octokit-pagination-methods/package.json | 48 + .../octokit-pagination-methods/test.js | 93 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/os-name/index.d.ts | 37 + node_modules/os-name/index.js | 46 + node_modules/os-name/license | 9 + node_modules/os-name/package.json | 45 + node_modules/os-name/readme.md | 64 + node_modules/p-finally/index.js | 15 + node_modules/p-finally/license | 21 + node_modules/p-finally/package.json | 42 + node_modules/p-finally/readme.md | 47 + node_modules/path-is-absolute/index.js | 20 + node_modules/path-is-absolute/license | 21 + node_modules/path-is-absolute/package.json | 43 + node_modules/path-is-absolute/readme.md | 59 + node_modules/path-key/index.js | 13 + node_modules/path-key/license | 21 + node_modules/path-key/package.json | 39 + node_modules/path-key/readme.md | 51 + node_modules/pump/.travis.yml | 5 + node_modules/pump/LICENSE | 21 + node_modules/pump/README.md | 65 + node_modules/pump/index.js | 82 + node_modules/pump/package.json | 24 + node_modules/pump/test-browser.js | 66 + node_modules/pump/test-node.js | 53 + node_modules/semver/CHANGELOG.md | 39 + node_modules/semver/LICENSE | 15 + node_modules/semver/README.md | 412 + node_modules/semver/bin/semver | 160 + node_modules/semver/package.json | 28 + node_modules/semver/range.bnf | 16 + node_modules/semver/semver.js | 1483 + node_modules/shebang-command/index.js | 19 + node_modules/shebang-command/license | 21 + node_modules/shebang-command/package.json | 39 + node_modules/shebang-command/readme.md | 39 + node_modules/shebang-regex/index.js | 2 + node_modules/shebang-regex/license | 21 + node_modules/shebang-regex/package.json | 32 + node_modules/shebang-regex/readme.md | 29 + node_modules/signal-exit/CHANGELOG.md | 27 + node_modules/signal-exit/LICENSE.txt | 16 + node_modules/signal-exit/README.md | 40 + node_modules/signal-exit/index.js | 157 + node_modules/signal-exit/package.json | 38 + node_modules/signal-exit/signals.js | 53 + node_modules/strip-eof/index.js | 15 + node_modules/strip-eof/license | 21 + node_modules/strip-eof/package.json | 39 + node_modules/strip-eof/readme.md | 28 + node_modules/universal-user-agent/LICENSE.md | 7 + node_modules/universal-user-agent/README.md | 25 + .../universal-user-agent/dist-node/index.js | 22 + .../dist-node/index.js.map | 1 + .../universal-user-agent/dist-src/browser.js | 3 + .../universal-user-agent/dist-src/index.js | 1 + .../universal-user-agent/dist-src/node.js | 12 + .../dist-types/browser.d.ts | 1 + .../dist-types/index.d.ts | 1 + .../universal-user-agent/dist-types/node.d.ts | 1 + .../universal-user-agent/dist-web/index.js | 6 + .../dist-web/index.js.map | 1 + .../universal-user-agent/package.json | 33 + node_modules/which/CHANGELOG.md | 152 + node_modules/which/LICENSE | 15 + node_modules/which/README.md | 51 + node_modules/which/bin/which | 52 + node_modules/which/package.json | 30 + node_modules/which/which.js | 135 + node_modules/windows-release/index.d.ts | 30 + node_modules/windows-release/index.js | 44 + node_modules/windows-release/license | 9 + node_modules/windows-release/package.json | 43 + node_modules/windows-release/readme.md | 56 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + 734 files changed, 224451 insertions(+) create mode 120000 node_modules/.bin/mime create mode 120000 node_modules/.bin/semver create mode 120000 node_modules/.bin/which create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@actions/core/LICENSE.md create mode 100644 node_modules/@actions/core/README.md create mode 100644 node_modules/@actions/core/lib/command.d.ts create mode 100644 node_modules/@actions/core/lib/command.js create mode 100644 node_modules/@actions/core/lib/command.js.map create mode 100644 node_modules/@actions/core/lib/core.d.ts create mode 100644 node_modules/@actions/core/lib/core.js create mode 100644 node_modules/@actions/core/lib/core.js.map create mode 100644 node_modules/@actions/core/lib/file-command.d.ts create mode 100644 node_modules/@actions/core/lib/file-command.js create mode 100644 node_modules/@actions/core/lib/file-command.js.map create mode 100644 node_modules/@actions/core/lib/utils.d.ts create mode 100644 node_modules/@actions/core/lib/utils.js create mode 100644 node_modules/@actions/core/lib/utils.js.map create mode 100644 node_modules/@actions/core/package.json create mode 100644 node_modules/@actions/github/README.md create mode 100644 node_modules/@actions/github/lib/context.d.ts create mode 100644 node_modules/@actions/github/lib/context.js create mode 100644 node_modules/@actions/github/lib/context.js.map create mode 100644 node_modules/@actions/github/lib/github.d.ts create mode 100644 node_modules/@actions/github/lib/github.js create mode 100644 node_modules/@actions/github/lib/github.js.map create mode 100644 node_modules/@actions/github/lib/interfaces.d.ts create mode 100644 node_modules/@actions/github/lib/interfaces.js create mode 100644 node_modules/@actions/github/lib/interfaces.js.map create mode 100644 node_modules/@actions/github/package.json create mode 100644 node_modules/@octokit/endpoint/LICENSE create mode 100644 node_modules/@octokit/endpoint/README.md create mode 100644 node_modules/@octokit/endpoint/dist-node/index.js create mode 100644 node_modules/@octokit/endpoint/dist-node/index.js.map create mode 100644 node_modules/@octokit/endpoint/dist-src/defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-src/index.js create mode 100644 node_modules/@octokit/endpoint/dist-src/merge.js create mode 100644 node_modules/@octokit/endpoint/dist-src/parse.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/merge-deep.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/omit.js create mode 100644 node_modules/@octokit/endpoint/dist-src/util/url-template.js create mode 100644 node_modules/@octokit/endpoint/dist-src/version.js create mode 100644 node_modules/@octokit/endpoint/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/endpoint/dist-types/defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/index.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/merge.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/parse.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/omit.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/version.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/endpoint/dist-web/index.js create mode 100644 node_modules/@octokit/endpoint/dist-web/index.js.map create mode 100644 node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE create mode 100644 node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md create mode 100644 node_modules/@octokit/endpoint/node_modules/is-plain-object/index.cjs.js create mode 100644 node_modules/@octokit/endpoint/node_modules/is-plain-object/index.d.ts create mode 100644 node_modules/@octokit/endpoint/node_modules/is-plain-object/index.js create mode 100644 node_modules/@octokit/endpoint/node_modules/is-plain-object/package.json create mode 100644 node_modules/@octokit/endpoint/node_modules/isobject/LICENSE create mode 100644 node_modules/@octokit/endpoint/node_modules/isobject/README.md create mode 100644 node_modules/@octokit/endpoint/node_modules/isobject/index.cjs.js create mode 100644 node_modules/@octokit/endpoint/node_modules/isobject/index.d.ts create mode 100644 node_modules/@octokit/endpoint/node_modules/isobject/index.js create mode 100644 node_modules/@octokit/endpoint/node_modules/isobject/package.json create mode 100644 node_modules/@octokit/endpoint/package.json create mode 100644 node_modules/@octokit/graphql/LICENSE create mode 100644 node_modules/@octokit/graphql/README.md create mode 100644 node_modules/@octokit/graphql/dist-node/index.js create mode 100644 node_modules/@octokit/graphql/dist-node/index.js.map create mode 100644 node_modules/@octokit/graphql/dist-src/error.js create mode 100644 node_modules/@octokit/graphql/dist-src/graphql.js create mode 100644 node_modules/@octokit/graphql/dist-src/index.js create mode 100644 node_modules/@octokit/graphql/dist-src/types.js create mode 100644 node_modules/@octokit/graphql/dist-src/version.js create mode 100644 node_modules/@octokit/graphql/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/graphql/dist-types/error.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/graphql.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/index.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/types.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/version.d.ts create mode 100644 node_modules/@octokit/graphql/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/graphql/dist-web/index.js create mode 100644 node_modules/@octokit/graphql/dist-web/index.js.map create mode 100644 node_modules/@octokit/graphql/package.json create mode 100644 node_modules/@octokit/plugin-retry/LICENSE create mode 100644 node_modules/@octokit/plugin-retry/README.md create mode 100644 node_modules/@octokit/plugin-retry/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-retry/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-retry/dist-src/error-request.js create mode 100644 node_modules/@octokit/plugin-retry/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-retry/dist-src/version.js create mode 100644 node_modules/@octokit/plugin-retry/dist-src/wrap-request.js create mode 100644 node_modules/@octokit/plugin-retry/dist-types/error-request.d.ts create mode 100644 node_modules/@octokit/plugin-retry/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-retry/dist-types/version.d.ts create mode 100644 node_modules/@octokit/plugin-retry/dist-types/wrap-request.d.ts create mode 100644 node_modules/@octokit/plugin-retry/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-retry/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/LICENSE create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/README.md create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/AuthInterface.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointDefaults.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointInterface.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointOptions.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Fetch.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/OctokitResponse.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestHeaders.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestInterface.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestMethod.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestOptions.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestParameters.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestRequestOptions.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/ResponseHeaders.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Route.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Signal.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/StrategyInterface.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Url.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/VERSION.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/generated/Endpoints.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/AuthInterface.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Fetch.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestInterface.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestMethod.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestParameters.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Route.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Signal.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Url.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/VERSION.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-retry/node_modules/@octokit/types/package.json create mode 100644 node_modules/@octokit/plugin-retry/package.json create mode 100644 node_modules/@octokit/plugin-throttling/LICENSE create mode 100644 node_modules/@octokit/plugin-throttling/README.md create mode 100644 node_modules/@octokit/plugin-throttling/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-throttling/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-throttling/dist-src/generated/triggers-notification-paths.js create mode 100644 node_modules/@octokit/plugin-throttling/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-throttling/dist-src/route-matcher.js create mode 100644 node_modules/@octokit/plugin-throttling/dist-src/version.js create mode 100644 node_modules/@octokit/plugin-throttling/dist-src/wrap-request.js create mode 100644 node_modules/@octokit/plugin-throttling/dist-types/generated/triggers-notification-paths.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/dist-types/route-matcher.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/dist-types/version.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/dist-types/wrap-request.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-throttling/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/LICENSE create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/README.md create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js.map create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/AuthInterface.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointDefaults.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointInterface.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointOptions.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Fetch.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/OctokitResponse.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestHeaders.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestInterface.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestMethod.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestOptions.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestParameters.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestRequestOptions.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/ResponseHeaders.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Route.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Signal.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/StrategyInterface.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Url.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/VERSION.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/generated/Endpoints.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/index.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/AuthInterface.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Fetch.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestInterface.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestMethod.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestParameters.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Route.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Signal.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Url.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/VERSION.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/index.d.ts create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js.map create mode 100644 node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/package.json create mode 100644 node_modules/@octokit/plugin-throttling/package.json create mode 100644 node_modules/@octokit/request-error/LICENSE create mode 100644 node_modules/@octokit/request-error/README.md create mode 100644 node_modules/@octokit/request-error/dist-node/index.js create mode 100644 node_modules/@octokit/request-error/dist-node/index.js.map create mode 100644 node_modules/@octokit/request-error/dist-src/index.js create mode 100644 node_modules/@octokit/request-error/dist-src/types.js create mode 100644 node_modules/@octokit/request-error/dist-types/index.d.ts create mode 100644 node_modules/@octokit/request-error/dist-types/types.d.ts create mode 100644 node_modules/@octokit/request-error/dist-web/index.js create mode 100644 node_modules/@octokit/request-error/dist-web/index.js.map create mode 100644 node_modules/@octokit/request-error/package.json create mode 100644 node_modules/@octokit/request/LICENSE create mode 100644 node_modules/@octokit/request/README.md create mode 100644 node_modules/@octokit/request/dist-node/index.js create mode 100644 node_modules/@octokit/request/dist-node/index.js.map create mode 100644 node_modules/@octokit/request/dist-src/fetch-wrapper.js create mode 100644 node_modules/@octokit/request/dist-src/get-buffer-response.js create mode 100644 node_modules/@octokit/request/dist-src/index.js create mode 100644 node_modules/@octokit/request/dist-src/version.js create mode 100644 node_modules/@octokit/request/dist-src/with-defaults.js create mode 100644 node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts create mode 100644 node_modules/@octokit/request/dist-types/get-buffer-response.d.ts create mode 100644 node_modules/@octokit/request/dist-types/index.d.ts create mode 100644 node_modules/@octokit/request/dist-types/version.d.ts create mode 100644 node_modules/@octokit/request/dist-types/with-defaults.d.ts create mode 100644 node_modules/@octokit/request/dist-web/index.js create mode 100644 node_modules/@octokit/request/dist-web/index.js.map create mode 100644 node_modules/@octokit/request/node_modules/is-plain-object/LICENSE create mode 100644 node_modules/@octokit/request/node_modules/is-plain-object/README.md create mode 100644 node_modules/@octokit/request/node_modules/is-plain-object/index.cjs.js create mode 100644 node_modules/@octokit/request/node_modules/is-plain-object/index.d.ts create mode 100644 node_modules/@octokit/request/node_modules/is-plain-object/index.js create mode 100644 node_modules/@octokit/request/node_modules/is-plain-object/package.json create mode 100644 node_modules/@octokit/request/node_modules/isobject/LICENSE create mode 100644 node_modules/@octokit/request/node_modules/isobject/README.md create mode 100644 node_modules/@octokit/request/node_modules/isobject/index.cjs.js create mode 100644 node_modules/@octokit/request/node_modules/isobject/index.d.ts create mode 100644 node_modules/@octokit/request/node_modules/isobject/index.js create mode 100644 node_modules/@octokit/request/node_modules/isobject/package.json create mode 100644 node_modules/@octokit/request/package.json create mode 100644 node_modules/@octokit/rest/LICENSE create mode 100644 node_modules/@octokit/rest/README.md create mode 100644 node_modules/@octokit/rest/index.d.ts create mode 100644 node_modules/@octokit/rest/index.js create mode 100644 node_modules/@octokit/rest/lib/constructor.js create mode 100644 node_modules/@octokit/rest/lib/core.js create mode 100644 node_modules/@octokit/rest/lib/factory.js create mode 100644 node_modules/@octokit/rest/lib/parse-client-options.js create mode 100644 node_modules/@octokit/rest/lib/register-plugin.js create mode 100644 node_modules/@octokit/rest/package.json create mode 100644 node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js create mode 100644 node_modules/@octokit/rest/plugins/authentication-deprecated/before-request.js create mode 100644 node_modules/@octokit/rest/plugins/authentication-deprecated/index.js create mode 100644 node_modules/@octokit/rest/plugins/authentication-deprecated/request-error.js create mode 100644 node_modules/@octokit/rest/plugins/authentication/before-request.js create mode 100644 node_modules/@octokit/rest/plugins/authentication/index.js create mode 100644 node_modules/@octokit/rest/plugins/authentication/request-error.js create mode 100644 node_modules/@octokit/rest/plugins/authentication/validate.js create mode 100644 node_modules/@octokit/rest/plugins/authentication/with-authorization-prefix.js create mode 100644 node_modules/@octokit/rest/plugins/log/index.js create mode 100644 node_modules/@octokit/rest/plugins/pagination/index.js create mode 100644 node_modules/@octokit/rest/plugins/pagination/iterator.js create mode 100644 node_modules/@octokit/rest/plugins/pagination/normalize-paginated-list-response.js create mode 100644 node_modules/@octokit/rest/plugins/pagination/paginate.js create mode 100644 node_modules/@octokit/rest/plugins/register-endpoints/index.js create mode 100644 node_modules/@octokit/rest/plugins/register-endpoints/register-endpoints.js create mode 100644 node_modules/@octokit/rest/plugins/rest-api-endpoints/index.js create mode 100644 node_modules/@octokit/rest/plugins/rest-api-endpoints/routes.json create mode 100644 node_modules/@octokit/rest/plugins/validate/index.js create mode 100644 node_modules/@octokit/rest/plugins/validate/validate.js create mode 100644 node_modules/@octokit/types/.github/ISSUE_TEMPLATE/01_help.md create mode 100644 node_modules/@octokit/types/.github/ISSUE_TEMPLATE/02_bug.md create mode 100644 node_modules/@octokit/types/.github/ISSUE_TEMPLATE/03_feature_request.md create mode 100644 node_modules/@octokit/types/.github/ISSUE_TEMPLATE/04_thanks.md create mode 100644 node_modules/@octokit/types/.github/workflows/release.yml create mode 100644 node_modules/@octokit/types/.github/workflows/routes-update.yml create mode 100644 node_modules/@octokit/types/.github/workflows/test.yml create mode 100644 node_modules/@octokit/types/CODE_OF_CONDUCT.md create mode 100644 node_modules/@octokit/types/CONTRIBUTING.md create mode 100644 node_modules/@octokit/types/LICENSE create mode 100644 node_modules/@octokit/types/README.md create mode 100644 node_modules/@octokit/types/package.json create mode 100644 node_modules/@octokit/types/scripts/update-endpoints/fetch-json.js create mode 100644 node_modules/@octokit/types/scripts/update-endpoints/generated/README.md create mode 100644 node_modules/@octokit/types/scripts/update-endpoints/generated/endpoints.json create mode 100644 node_modules/@octokit/types/scripts/update-endpoints/templates/endpoints.ts.template create mode 100644 node_modules/@octokit/types/scripts/update-endpoints/typescript.js create mode 100644 node_modules/@octokit/types/src/AuthInterface.ts create mode 100644 node_modules/@octokit/types/src/EndpointDefaults.ts create mode 100644 node_modules/@octokit/types/src/EndpointInterface.ts create mode 100644 node_modules/@octokit/types/src/EndpointOptions.ts create mode 100644 node_modules/@octokit/types/src/Fetch.ts create mode 100644 node_modules/@octokit/types/src/OctokitResponse.ts create mode 100644 node_modules/@octokit/types/src/RequestHeaders.ts create mode 100644 node_modules/@octokit/types/src/RequestInterface.ts create mode 100644 node_modules/@octokit/types/src/RequestMethod.ts create mode 100644 node_modules/@octokit/types/src/RequestOptions.ts create mode 100644 node_modules/@octokit/types/src/RequestParameters.ts create mode 100644 node_modules/@octokit/types/src/RequestRequestOptions.ts create mode 100644 node_modules/@octokit/types/src/ResponseHeaders.ts create mode 100644 node_modules/@octokit/types/src/Route.ts create mode 100644 node_modules/@octokit/types/src/Signal.ts create mode 100644 node_modules/@octokit/types/src/StrategyInterface.ts create mode 100644 node_modules/@octokit/types/src/Url.ts create mode 100644 node_modules/@octokit/types/src/VERSION.ts create mode 100644 node_modules/@octokit/types/src/generated/Endpoints.ts create mode 100644 node_modules/@octokit/types/src/generated/README.md create mode 100644 node_modules/@octokit/types/src/index.ts create mode 100644 node_modules/@types/node/LICENSE create mode 100644 node_modules/@types/node/README.md create mode 100644 node_modules/@types/node/assert.d.ts create mode 100644 node_modules/@types/node/async_hooks.d.ts create mode 100644 node_modules/@types/node/base.d.ts create mode 100644 node_modules/@types/node/buffer.d.ts create mode 100644 node_modules/@types/node/child_process.d.ts create mode 100644 node_modules/@types/node/cluster.d.ts create mode 100644 node_modules/@types/node/console.d.ts create mode 100644 node_modules/@types/node/constants.d.ts create mode 100644 node_modules/@types/node/crypto.d.ts create mode 100644 node_modules/@types/node/dgram.d.ts create mode 100644 node_modules/@types/node/dns.d.ts create mode 100644 node_modules/@types/node/domain.d.ts create mode 100644 node_modules/@types/node/events.d.ts create mode 100644 node_modules/@types/node/fs.d.ts create mode 100644 node_modules/@types/node/globals.d.ts create mode 100644 node_modules/@types/node/http.d.ts create mode 100644 node_modules/@types/node/http2.d.ts create mode 100644 node_modules/@types/node/https.d.ts create mode 100644 node_modules/@types/node/index.d.ts create mode 100644 node_modules/@types/node/inspector.d.ts create mode 100644 node_modules/@types/node/module.d.ts create mode 100644 node_modules/@types/node/net.d.ts create mode 100644 node_modules/@types/node/os.d.ts create mode 100644 node_modules/@types/node/package.json create mode 100644 node_modules/@types/node/path.d.ts create mode 100644 node_modules/@types/node/perf_hooks.d.ts create mode 100644 node_modules/@types/node/process.d.ts create mode 100644 node_modules/@types/node/punycode.d.ts create mode 100644 node_modules/@types/node/querystring.d.ts create mode 100644 node_modules/@types/node/readline.d.ts create mode 100644 node_modules/@types/node/repl.d.ts create mode 100644 node_modules/@types/node/stream.d.ts create mode 100644 node_modules/@types/node/string_decoder.d.ts create mode 100644 node_modules/@types/node/timers.d.ts create mode 100644 node_modules/@types/node/tls.d.ts create mode 100644 node_modules/@types/node/trace_events.d.ts create mode 100644 node_modules/@types/node/ts3.2/fs.d.ts create mode 100644 node_modules/@types/node/ts3.2/globals.d.ts create mode 100644 node_modules/@types/node/ts3.2/index.d.ts create mode 100644 node_modules/@types/node/ts3.2/util.d.ts create mode 100644 node_modules/@types/node/tty.d.ts create mode 100644 node_modules/@types/node/url.d.ts create mode 100644 node_modules/@types/node/util.d.ts create mode 100644 node_modules/@types/node/v8.d.ts create mode 100644 node_modules/@types/node/vm.d.ts create mode 100644 node_modules/@types/node/worker_threads.d.ts create mode 100644 node_modules/@types/node/zlib.d.ts create mode 100644 node_modules/atob-lite/.npmignore create mode 100644 node_modules/atob-lite/LICENSE.md create mode 100644 node_modules/atob-lite/README.md create mode 100644 node_modules/atob-lite/atob-browser.js create mode 100644 node_modules/atob-lite/atob-node.js create mode 100644 node_modules/atob-lite/package.json create mode 100644 node_modules/balanced-match/.npmignore create mode 100644 node_modules/balanced-match/LICENSE.md create mode 100644 node_modules/balanced-match/README.md create mode 100644 node_modules/balanced-match/index.js create mode 100644 node_modules/balanced-match/package.json create mode 100644 node_modules/before-after-hook/LICENSE create mode 100644 node_modules/before-after-hook/README.md create mode 100644 node_modules/before-after-hook/index.d.ts create mode 100644 node_modules/before-after-hook/index.js create mode 100644 node_modules/before-after-hook/lib/add.js create mode 100644 node_modules/before-after-hook/lib/register.js create mode 100644 node_modules/before-after-hook/lib/remove.js create mode 100644 node_modules/before-after-hook/package.json create mode 100644 node_modules/bottleneck/.babelrc.es5 create mode 100644 node_modules/bottleneck/.babelrc.lib create mode 100644 node_modules/bottleneck/.env create mode 100644 node_modules/bottleneck/.travis.yml create mode 100644 node_modules/bottleneck/LICENSE create mode 100644 node_modules/bottleneck/README.md create mode 100644 node_modules/bottleneck/bottleneck.d.ts create mode 100644 node_modules/bottleneck/bottleneck.d.ts.ejs create mode 100644 node_modules/bottleneck/bower.json create mode 100644 node_modules/bottleneck/es5.js create mode 100644 node_modules/bottleneck/lib/Batcher.js create mode 100644 node_modules/bottleneck/lib/Bottleneck.js create mode 100644 node_modules/bottleneck/lib/BottleneckError.js create mode 100644 node_modules/bottleneck/lib/DLList.js create mode 100644 node_modules/bottleneck/lib/Events.js create mode 100644 node_modules/bottleneck/lib/Group.js create mode 100644 node_modules/bottleneck/lib/IORedisConnection.js create mode 100644 node_modules/bottleneck/lib/Job.js create mode 100644 node_modules/bottleneck/lib/LocalDatastore.js create mode 100644 node_modules/bottleneck/lib/Queues.js create mode 100644 node_modules/bottleneck/lib/RedisConnection.js create mode 100644 node_modules/bottleneck/lib/RedisDatastore.js create mode 100644 node_modules/bottleneck/lib/Scripts.js create mode 100644 node_modules/bottleneck/lib/States.js create mode 100644 node_modules/bottleneck/lib/Sync.js create mode 100644 node_modules/bottleneck/lib/es5.js create mode 100644 node_modules/bottleneck/lib/index.js create mode 100644 node_modules/bottleneck/lib/lua.json create mode 100644 node_modules/bottleneck/lib/parser.js create mode 100644 node_modules/bottleneck/lib/version.json create mode 100644 node_modules/bottleneck/light.js create mode 100644 node_modules/bottleneck/package.json create mode 100644 node_modules/bottleneck/rollup.config.es5.js create mode 100644 node_modules/bottleneck/rollup.config.light.js create mode 100644 node_modules/bottleneck/scripts/assemble_lua.js create mode 100755 node_modules/bottleneck/scripts/build.sh create mode 100755 node_modules/bottleneck/scripts/test_all.sh create mode 100644 node_modules/bottleneck/scripts/version.js create mode 100644 node_modules/bottleneck/src/Batcher.coffee create mode 100644 node_modules/bottleneck/src/Bottleneck.coffee create mode 100644 node_modules/bottleneck/src/BottleneckError.coffee create mode 100644 node_modules/bottleneck/src/DLList.coffee create mode 100644 node_modules/bottleneck/src/Events.coffee create mode 100644 node_modules/bottleneck/src/Group.coffee create mode 100644 node_modules/bottleneck/src/IORedisConnection.coffee create mode 100644 node_modules/bottleneck/src/Job.coffee create mode 100644 node_modules/bottleneck/src/LocalDatastore.coffee create mode 100644 node_modules/bottleneck/src/Queues.coffee create mode 100644 node_modules/bottleneck/src/RedisConnection.coffee create mode 100644 node_modules/bottleneck/src/RedisDatastore.coffee create mode 100644 node_modules/bottleneck/src/Scripts.coffee create mode 100644 node_modules/bottleneck/src/States.coffee create mode 100644 node_modules/bottleneck/src/Sync.coffee create mode 100644 node_modules/bottleneck/src/es5.coffee create mode 100644 node_modules/bottleneck/src/index.coffee create mode 100644 node_modules/bottleneck/src/parser.coffee create mode 100644 node_modules/bottleneck/src/redis/blacklist_client.lua create mode 100644 node_modules/bottleneck/src/redis/check.lua create mode 100644 node_modules/bottleneck/src/redis/conditions_check.lua create mode 100644 node_modules/bottleneck/src/redis/current_reservoir.lua create mode 100644 node_modules/bottleneck/src/redis/done.lua create mode 100644 node_modules/bottleneck/src/redis/free.lua create mode 100644 node_modules/bottleneck/src/redis/get_time.lua create mode 100644 node_modules/bottleneck/src/redis/group_check.lua create mode 100644 node_modules/bottleneck/src/redis/heartbeat.lua create mode 100644 node_modules/bottleneck/src/redis/increment_reservoir.lua create mode 100644 node_modules/bottleneck/src/redis/init.lua create mode 100644 node_modules/bottleneck/src/redis/process_tick.lua create mode 100644 node_modules/bottleneck/src/redis/queued.lua create mode 100644 node_modules/bottleneck/src/redis/refresh_expiration.lua create mode 100644 node_modules/bottleneck/src/redis/refs.lua create mode 100644 node_modules/bottleneck/src/redis/register.lua create mode 100644 node_modules/bottleneck/src/redis/register_client.lua create mode 100644 node_modules/bottleneck/src/redis/running.lua create mode 100644 node_modules/bottleneck/src/redis/submit.lua create mode 100644 node_modules/bottleneck/src/redis/update_settings.lua create mode 100644 node_modules/bottleneck/src/redis/validate_client.lua create mode 100644 node_modules/bottleneck/src/redis/validate_keys.lua create mode 100644 node_modules/bottleneck/test.ts create mode 100644 node_modules/bottleneck/test/DLList.js create mode 100644 node_modules/bottleneck/test/batcher.js create mode 100644 node_modules/bottleneck/test/bottleneck.js create mode 100644 node_modules/bottleneck/test/cluster.js create mode 100644 node_modules/bottleneck/test/context.js create mode 100644 node_modules/bottleneck/test/general.js create mode 100644 node_modules/bottleneck/test/group.js create mode 100644 node_modules/bottleneck/test/ioredis.js create mode 100644 node_modules/bottleneck/test/node_redis.js create mode 100644 node_modules/bottleneck/test/priority.js create mode 100644 node_modules/bottleneck/test/promises.js create mode 100644 node_modules/bottleneck/test/retries.js create mode 100644 node_modules/bottleneck/test/spawn/increaseKeepAlive.js create mode 100644 node_modules/bottleneck/test/spawn/refreshKeepAlive.js create mode 100644 node_modules/bottleneck/test/states.js create mode 100644 node_modules/bottleneck/test/stop.js create mode 100644 node_modules/brace-expansion/LICENSE create mode 100644 node_modules/brace-expansion/README.md create mode 100644 node_modules/brace-expansion/index.js create mode 100644 node_modules/brace-expansion/package.json create mode 100644 node_modules/btoa-lite/.npmignore create mode 100644 node_modules/btoa-lite/LICENSE.md create mode 100644 node_modules/btoa-lite/README.md create mode 100644 node_modules/btoa-lite/btoa-browser.js create mode 100644 node_modules/btoa-lite/btoa-node.js create mode 100644 node_modules/btoa-lite/package.json create mode 100644 node_modules/concat-map/.travis.yml create mode 100644 node_modules/concat-map/LICENSE create mode 100644 node_modules/concat-map/README.markdown create mode 100644 node_modules/concat-map/example/map.js create mode 100644 node_modules/concat-map/index.js create mode 100644 node_modules/concat-map/package.json create mode 100644 node_modules/concat-map/test/map.js create mode 100644 node_modules/cross-spawn/CHANGELOG.md create mode 100644 node_modules/cross-spawn/LICENSE create mode 100644 node_modules/cross-spawn/README.md create mode 100644 node_modules/cross-spawn/index.js create mode 100644 node_modules/cross-spawn/lib/enoent.js create mode 100644 node_modules/cross-spawn/lib/parse.js create mode 100644 node_modules/cross-spawn/lib/util/escape.js create mode 100644 node_modules/cross-spawn/lib/util/readShebang.js create mode 100644 node_modules/cross-spawn/lib/util/resolveCommand.js create mode 100644 node_modules/cross-spawn/package.json create mode 100644 node_modules/deprecation/LICENSE create mode 100644 node_modules/deprecation/README.md create mode 100644 node_modules/deprecation/dist-node/index.js create mode 100644 node_modules/deprecation/dist-src/index.js create mode 100644 node_modules/deprecation/dist-types/index.d.ts create mode 100644 node_modules/deprecation/dist-web/index.js create mode 100644 node_modules/deprecation/package.json create mode 100644 node_modules/end-of-stream/LICENSE create mode 100644 node_modules/end-of-stream/README.md create mode 100644 node_modules/end-of-stream/index.js create mode 100644 node_modules/end-of-stream/package.json create mode 100644 node_modules/execa/index.js create mode 100644 node_modules/execa/lib/errname.js create mode 100644 node_modules/execa/lib/stdio.js create mode 100644 node_modules/execa/license create mode 100644 node_modules/execa/package.json create mode 100644 node_modules/execa/readme.md create mode 100644 node_modules/fs.realpath/LICENSE create mode 100644 node_modules/fs.realpath/README.md create mode 100644 node_modules/fs.realpath/index.js create mode 100644 node_modules/fs.realpath/old.js create mode 100644 node_modules/fs.realpath/package.json create mode 100644 node_modules/get-stream/buffer-stream.js create mode 100644 node_modules/get-stream/index.js create mode 100644 node_modules/get-stream/license create mode 100644 node_modules/get-stream/package.json create mode 100644 node_modules/get-stream/readme.md create mode 100644 node_modules/glob/LICENSE create mode 100644 node_modules/glob/README.md create mode 100644 node_modules/glob/changelog.md create mode 100644 node_modules/glob/common.js create mode 100644 node_modules/glob/glob.js create mode 100644 node_modules/glob/package.json create mode 100644 node_modules/glob/sync.js create mode 100644 node_modules/inflight/LICENSE create mode 100644 node_modules/inflight/README.md create mode 100644 node_modules/inflight/inflight.js create mode 100644 node_modules/inflight/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/is-stream/index.js create mode 100644 node_modules/is-stream/license create mode 100644 node_modules/is-stream/package.json create mode 100644 node_modules/is-stream/readme.md create mode 100644 node_modules/isexe/.npmignore create mode 100644 node_modules/isexe/LICENSE create mode 100644 node_modules/isexe/README.md create mode 100644 node_modules/isexe/index.js create mode 100644 node_modules/isexe/mode.js create mode 100644 node_modules/isexe/package.json create mode 100644 node_modules/isexe/test/basic.js create mode 100644 node_modules/isexe/windows.js create mode 100644 node_modules/lodash.get/LICENSE create mode 100644 node_modules/lodash.get/README.md create mode 100644 node_modules/lodash.get/index.js create mode 100644 node_modules/lodash.get/package.json create mode 100644 node_modules/lodash.set/LICENSE create mode 100644 node_modules/lodash.set/README.md create mode 100644 node_modules/lodash.set/index.js create mode 100644 node_modules/lodash.set/package.json create mode 100644 node_modules/lodash.uniq/LICENSE create mode 100644 node_modules/lodash.uniq/README.md create mode 100644 node_modules/lodash.uniq/index.js create mode 100644 node_modules/lodash.uniq/package.json create mode 100644 node_modules/macos-release/index.d.ts create mode 100644 node_modules/macos-release/index.js create mode 100644 node_modules/macos-release/license create mode 100644 node_modules/macos-release/package.json create mode 100644 node_modules/macos-release/readme.md create mode 100644 node_modules/mime/.eslintrc.json create mode 100644 node_modules/mime/.github/ISSUE_TEMPLATE.md create mode 100644 node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 node_modules/mime/.travis.yml create mode 100644 node_modules/mime/CHANGELOG.md create mode 100644 node_modules/mime/CONTRIBUTING.md create mode 100644 node_modules/mime/LICENSE create mode 100644 node_modules/mime/Mime.js create mode 100644 node_modules/mime/README.md create mode 100755 node_modules/mime/cli.js create mode 100644 node_modules/mime/index.js create mode 100644 node_modules/mime/lite.js create mode 100644 node_modules/mime/package.json create mode 100644 node_modules/mime/src/README_js.md create mode 100644 node_modules/mime/src/benchmark.js create mode 100755 node_modules/mime/src/build.js create mode 100644 node_modules/mime/src/test.js create mode 100644 node_modules/mime/types/other.js create mode 100644 node_modules/mime/types/standard.js create mode 100644 node_modules/minimatch/LICENSE create mode 100644 node_modules/minimatch/README.md create mode 100644 node_modules/minimatch/minimatch.js create mode 100644 node_modules/minimatch/package.json create mode 100644 node_modules/nice-try/CHANGELOG.md create mode 100644 node_modules/nice-try/LICENSE create mode 100644 node_modules/nice-try/README.md create mode 100644 node_modules/nice-try/package.json create mode 100644 node_modules/nice-try/src/index.js create mode 100644 node_modules/node-fetch/CHANGELOG.md create mode 100644 node_modules/node-fetch/LICENSE.md create mode 100644 node_modules/node-fetch/README.md create mode 100644 node_modules/node-fetch/browser.js create mode 100644 node_modules/node-fetch/lib/index.es.js create mode 100644 node_modules/node-fetch/lib/index.js create mode 100644 node_modules/node-fetch/lib/index.mjs create mode 100644 node_modules/node-fetch/package.json create mode 100644 node_modules/npm-run-path/index.js create mode 100644 node_modules/npm-run-path/license create mode 100644 node_modules/npm-run-path/package.json create mode 100644 node_modules/npm-run-path/readme.md create mode 100644 node_modules/octokit-pagination-methods/.travis.yml create mode 100644 node_modules/octokit-pagination-methods/CODE_OF_CONDUCT.md create mode 100644 node_modules/octokit-pagination-methods/LICENSE create mode 100644 node_modules/octokit-pagination-methods/README.md create mode 100644 node_modules/octokit-pagination-methods/index.js create mode 100644 node_modules/octokit-pagination-methods/lib/deprecate.js create mode 100644 node_modules/octokit-pagination-methods/lib/get-first-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/get-last-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/get-next-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/get-page-links.js create mode 100644 node_modules/octokit-pagination-methods/lib/get-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/get-previous-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/has-first-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/has-last-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/has-next-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/has-previous-page.js create mode 100644 node_modules/octokit-pagination-methods/lib/http-error.js create mode 100644 node_modules/octokit-pagination-methods/package.json create mode 100644 node_modules/octokit-pagination-methods/test.js create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/os-name/index.d.ts create mode 100644 node_modules/os-name/index.js create mode 100644 node_modules/os-name/license create mode 100644 node_modules/os-name/package.json create mode 100644 node_modules/os-name/readme.md create mode 100644 node_modules/p-finally/index.js create mode 100644 node_modules/p-finally/license create mode 100644 node_modules/p-finally/package.json create mode 100644 node_modules/p-finally/readme.md create mode 100644 node_modules/path-is-absolute/index.js create mode 100644 node_modules/path-is-absolute/license create mode 100644 node_modules/path-is-absolute/package.json create mode 100644 node_modules/path-is-absolute/readme.md create mode 100644 node_modules/path-key/index.js create mode 100644 node_modules/path-key/license create mode 100644 node_modules/path-key/package.json create mode 100644 node_modules/path-key/readme.md create mode 100644 node_modules/pump/.travis.yml create mode 100644 node_modules/pump/LICENSE create mode 100644 node_modules/pump/README.md create mode 100644 node_modules/pump/index.js create mode 100644 node_modules/pump/package.json create mode 100644 node_modules/pump/test-browser.js create mode 100644 node_modules/pump/test-node.js create mode 100644 node_modules/semver/CHANGELOG.md create mode 100644 node_modules/semver/LICENSE create mode 100644 node_modules/semver/README.md create mode 100755 node_modules/semver/bin/semver create mode 100644 node_modules/semver/package.json create mode 100644 node_modules/semver/range.bnf create mode 100644 node_modules/semver/semver.js create mode 100644 node_modules/shebang-command/index.js create mode 100644 node_modules/shebang-command/license create mode 100644 node_modules/shebang-command/package.json create mode 100644 node_modules/shebang-command/readme.md create mode 100644 node_modules/shebang-regex/index.js create mode 100644 node_modules/shebang-regex/license create mode 100644 node_modules/shebang-regex/package.json create mode 100644 node_modules/shebang-regex/readme.md create mode 100644 node_modules/signal-exit/CHANGELOG.md create mode 100644 node_modules/signal-exit/LICENSE.txt create mode 100644 node_modules/signal-exit/README.md create mode 100644 node_modules/signal-exit/index.js create mode 100644 node_modules/signal-exit/package.json create mode 100644 node_modules/signal-exit/signals.js create mode 100644 node_modules/strip-eof/index.js create mode 100644 node_modules/strip-eof/license create mode 100644 node_modules/strip-eof/package.json create mode 100644 node_modules/strip-eof/readme.md create mode 100644 node_modules/universal-user-agent/LICENSE.md create mode 100644 node_modules/universal-user-agent/README.md create mode 100644 node_modules/universal-user-agent/dist-node/index.js create mode 100644 node_modules/universal-user-agent/dist-node/index.js.map create mode 100644 node_modules/universal-user-agent/dist-src/browser.js create mode 100644 node_modules/universal-user-agent/dist-src/index.js create mode 100644 node_modules/universal-user-agent/dist-src/node.js create mode 100644 node_modules/universal-user-agent/dist-types/browser.d.ts create mode 100644 node_modules/universal-user-agent/dist-types/index.d.ts create mode 100644 node_modules/universal-user-agent/dist-types/node.d.ts create mode 100644 node_modules/universal-user-agent/dist-web/index.js create mode 100644 node_modules/universal-user-agent/dist-web/index.js.map create mode 100644 node_modules/universal-user-agent/package.json create mode 100644 node_modules/which/CHANGELOG.md create mode 100644 node_modules/which/LICENSE create mode 100644 node_modules/which/README.md create mode 100755 node_modules/which/bin/which create mode 100644 node_modules/which/package.json create mode 100644 node_modules/which/which.js create mode 100644 node_modules/windows-release/index.d.ts create mode 100644 node_modules/windows-release/index.js create mode 100644 node_modules/windows-release/license create mode 100644 node_modules/windows-release/package.json create mode 100644 node_modules/windows-release/readme.md create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js diff --git a/node_modules/.bin/mime b/node_modules/.bin/mime new file mode 120000 index 0000000..fbb7ee0 --- /dev/null +++ b/node_modules/.bin/mime @@ -0,0 +1 @@ +../mime/cli.js \ No newline at end of file diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver new file mode 120000 index 0000000..317eb29 --- /dev/null +++ b/node_modules/.bin/semver @@ -0,0 +1 @@ +../semver/bin/semver \ No newline at end of file diff --git a/node_modules/.bin/which b/node_modules/.bin/which new file mode 120000 index 0000000..f62471c --- /dev/null +++ b/node_modules/.bin/which @@ -0,0 +1 @@ +../which/bin/which \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..9ded957 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,519 @@ +{ + "name": "action-gh-release", + "version": "0.1.5", + "lockfileVersion": 2, + "requires": true, + "packages": { + "node_modules/@actions/core": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.6.tgz", + "integrity": "sha512-ZQYitnqiyBc3D+k7LsgSBmMDVkOVidaagDG7j3fOym77jNunWRuYx7VSHa9GNfFZh+zh61xsCjRj4JxMZlDqTA==" + }, + "node_modules/@actions/github": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-2.0.0.tgz", + "integrity": "sha512-sNpZ5dJyJyfJIO5lNYx8r/Gha4Tlm8R0MLO2cBkGdOnAAEn3t1M/MHVcoBhY/VPfjGVe5RNAUPz+6INrViiUPA==", + "dependencies": { + "@octokit/graphql": "^4.3.1", + "@octokit/rest": "^16.15.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", + "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==", + "dependencies": { + "@octokit/types": "^2.0.0", + "is-plain-object": "^3.0.0", + "universal-user-agent": "^4.0.0" + } + }, + "node_modules/@octokit/endpoint/node_modules/is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dependencies": { + "isobject": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/endpoint/node_modules/isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.3.1.tgz", + "integrity": "sha512-hCdTjfvrK+ilU2keAdqNBWOk+gm1kai1ZcdjRfB30oA3/T6n53UVJb7w0L5cR3/rhU91xT3HSqCd+qbvH06yxA==", + "dependencies": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^2.0.0", + "universal-user-agent": "^4.0.0" + } + }, + "node_modules/@octokit/plugin-retry": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-3.0.2.tgz", + "integrity": "sha512-k7xl2WLfLP7WirRXRHtCq5xGAIXBZHV9X3HVUJhPwe8/N8vVzxPcnnnBL5NpEep/+GQqFRdYxrkgz68VY3z2wA==", + "dependencies": { + "@octokit/types": "^4.0.1", + "bottleneck": "^2.15.3" + } + }, + "node_modules/@octokit/plugin-retry/node_modules/@octokit/types": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-4.0.1.tgz", + "integrity": "sha512-Ho6h7w2h9y8RRE8r656hIj1oiSbwbIHJGF5r9G5FOwS2VdDPq8QLGvsG4x6pKHpvyGK7j+43sAc2cJKMiFoIJw==", + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@octokit/plugin-throttling": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.2.1.tgz", + "integrity": "sha512-CGr3IagYZLLV3pFgpTQUthQSS5K3BkHLlG8yXK+Op3UKBkYrTf+Y9pCebrDxt60d+VTQ1oxXCx+LVLYY3IhBZQ==", + "dependencies": { + "@octokit/types": "^4.0.1", + "bottleneck": "^2.15.3" + } + }, + "node_modules/@octokit/plugin-throttling/node_modules/@octokit/types": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-4.0.1.tgz", + "integrity": "sha512-Ho6h7w2h9y8RRE8r656hIj1oiSbwbIHJGF5r9G5FOwS2VdDPq8QLGvsG4x6pKHpvyGK7j+43sAc2cJKMiFoIJw==", + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@octokit/request": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", + "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==", + "dependencies": { + "@octokit/endpoint": "^5.5.0", + "@octokit/request-error": "^1.0.1", + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "is-plain-object": "^3.0.0", + "node-fetch": "^2.3.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.0.tgz", + "integrity": "sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg==", + "dependencies": { + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/request/node_modules/is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "dependencies": { + "isobject": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/request/node_modules/isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@octokit/rest": { + "version": "16.36.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.36.0.tgz", + "integrity": "sha512-zoZj7Ya4vWBK4fjTwK2Cnmu7XBB1p9ygSvTk2TthN6DVJXM4hQZQoAiknWFLJWSTix4dnA3vuHtjPZbExYoCZA==", + "dependencies": { + "@octokit/request": "^5.2.0", + "@octokit/request-error": "^1.0.2", + "atob-lite": "^2.0.0", + "before-after-hook": "^2.0.0", + "btoa-lite": "^1.0.0", + "deprecation": "^2.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" + } + }, + "node_modules/@octokit/types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.2.tgz", + "integrity": "sha512-StASIL2lgT3TRjxv17z9pAqbnI7HGu9DrJlg3sEBFfCLaMEqp+O3IQPUF6EZtQ4xkAu2ml6kMBBCtGxjvmtmuQ==", + "dependencies": { + "@types/node": ">= 8" + } + }, + "node_modules/@types/node": { + "version": "12.12.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.24.tgz", + "integrity": "sha512-1Ciqv9pqwVtW6FsIUKSZNB82E5Cu1I2bBTj1xuIHXLe/1zYLl3956Nbhg2MzSYHVfl9/rmanjbQIb7LibfCnug==" + }, + "node_modules/atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=" + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/before-after-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "node_modules/lodash.set": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", + "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "node_modules/macos-release": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/octokit-pagination-methods": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz", + "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "dependencies": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "engines": { + "node": ">=4" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universal-user-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.0.tgz", + "integrity": "sha512-eM8knLpev67iBDizr/YtqkJsF3GK8gzDc6st/WKzrTuPtcsOKW/0IdL4cnMBsU69pOx0otavLWBDGTwg+dB0aA==", + "dependencies": { + "os-name": "^3.1.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/windows-release": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz", + "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==", + "dependencies": { + "execa": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + } +} diff --git a/node_modules/@actions/core/LICENSE.md b/node_modules/@actions/core/LICENSE.md new file mode 100644 index 0000000..dbae2ed --- /dev/null +++ b/node_modules/@actions/core/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright 2019 GitHub + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/@actions/core/README.md b/node_modules/@actions/core/README.md new file mode 100644 index 0000000..95428cf --- /dev/null +++ b/node_modules/@actions/core/README.md @@ -0,0 +1,147 @@ +# `@actions/core` + +> Core functions for setting results, logging, registering secrets and exporting variables across actions + +## Usage + +### Import the package + +```js +// javascript +const core = require('@actions/core'); + +// typescript +import * as core from '@actions/core'; +``` + +#### Inputs/Outputs + +Action inputs can be read with `getInput`. Outputs can be set with `setOutput` which makes them available to be mapped into inputs of other actions to ensure they are decoupled. + +```js +const myInput = core.getInput('inputName', { required: true }); + +core.setOutput('outputKey', 'outputVal'); +``` + +#### Exporting variables + +Since each step runs in a separate process, you can use `exportVariable` to add it to this step and future steps environment blocks. + +```js +core.exportVariable('envVar', 'Val'); +``` + +#### Setting a secret + +Setting a secret registers the secret with the runner to ensure it is masked in logs. + +```js +core.setSecret('myPassword'); +``` + +#### PATH Manipulation + +To make a tool's path available in the path for the remainder of the job (without altering the machine or containers state), use `addPath`. The runner will prepend the path given to the jobs PATH. + +```js +core.addPath('/path/to/mytool'); +``` + +#### Exit codes + +You should use this library to set the failing exit code for your action. If status is not set and the script runs to completion, that will lead to a success. + +```js +const core = require('@actions/core'); + +try { + // Do stuff +} +catch (err) { + // setFailed logs the message and sets a failing exit code + core.setFailed(`Action failed with error ${err}`); +} + +Note that `setNeutral` is not yet implemented in actions V2 but equivalent functionality is being planned. + +``` + +#### Logging + +Finally, this library provides some utilities for logging. Note that debug logging is hidden from the logs by default. This behavior can be toggled by enabling the [Step Debug Logs](../../docs/action-debugging.md#step-debug-logs). + +```js +const core = require('@actions/core'); + +const myInput = core.getInput('input'); +try { + core.debug('Inside try block'); + + if (!myInput) { + core.warning('myInput was not set'); + } + + if (core.isDebug()) { + // curl -v https://github.com + } else { + // curl https://github.com + } + + // Do stuff + core.info('Output to the actions build log') +} +catch (err) { + core.error(`Error ${err}, action may still succeed though`); +} +``` + +This library can also wrap chunks of output in foldable groups. + +```js +const core = require('@actions/core') + +// Manually wrap output +core.startGroup('Do some function') +doSomeFunction() +core.endGroup() + +// Wrap an asynchronous function call +const result = await core.group('Do something async', async () => { + const response = await doSomeHTTPRequest() + return response +}) +``` + +#### Action state + +You can use this library to save state and get state for sharing information between a given wrapper action: + +**action.yml** +```yaml +name: 'Wrapper action sample' +inputs: + name: + default: 'GitHub' +runs: + using: 'node12' + main: 'main.js' + post: 'cleanup.js' +``` + +In action's `main.js`: + +```js +const core = require('@actions/core'); + +core.saveState("pidToKill", 12345); +``` + +In action's `cleanup.js`: +```js +const core = require('@actions/core'); + +var pid = core.getState("pidToKill"); + +process.kill(pid); +``` diff --git a/node_modules/@actions/core/lib/command.d.ts b/node_modules/@actions/core/lib/command.d.ts new file mode 100644 index 0000000..89eff66 --- /dev/null +++ b/node_modules/@actions/core/lib/command.d.ts @@ -0,0 +1,16 @@ +interface CommandProperties { + [key: string]: any; +} +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +export declare function issueCommand(command: string, properties: CommandProperties, message: any): void; +export declare function issue(name: string, message?: string): void; +export {}; diff --git a/node_modules/@actions/core/lib/command.js b/node_modules/@actions/core/lib/command.js new file mode 100644 index 0000000..10bf3eb --- /dev/null +++ b/node_modules/@actions/core/lib/command.js @@ -0,0 +1,79 @@ +"use strict"; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const os = __importStar(require("os")); +const utils_1 = require("./utils"); +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); +} +exports.issueCommand = issueCommand; +function issue(name, message = '') { + issueCommand(name, {}, message); +} +exports.issue = issue; +const CMD_STRING = '::'; +class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command'; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } + else { + cmdStr += ','; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +function escapeData(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); +} +//# sourceMappingURL=command.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/command.js.map b/node_modules/@actions/core/lib/command.js.map new file mode 100644 index 0000000..a95b303 --- /dev/null +++ b/node_modules/@actions/core/lib/command.js.map @@ -0,0 +1 @@ +{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAwB;AACxB,mCAAsC;AAWtC;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAY;IAEZ,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,UAAkB,EAAE;IACtD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,IAAI,KAAK,EAAE;4BACT,KAAK,GAAG,KAAK,CAAA;yBACd;6BAAM;4BACL,MAAM,IAAI,GAAG,CAAA;yBACd;wBAED,MAAM,IAAI,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;qBAC1C;iBACF;aACF;SACF;QAED,MAAM,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAM;IACxB,OAAO,sBAAc,CAAC,CAAC,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,CAAM;IAC5B,OAAO,sBAAc,CAAC,CAAC,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/core.d.ts b/node_modules/@actions/core/lib/core.d.ts new file mode 100644 index 0000000..8bb5093 --- /dev/null +++ b/node_modules/@actions/core/lib/core.d.ts @@ -0,0 +1,122 @@ +/** + * Interface for getInput options + */ +export interface InputOptions { + /** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */ + required?: boolean; +} +/** + * The code to exit an action + */ +export declare enum ExitCode { + /** + * A code indicating that the action was successful + */ + Success = 0, + /** + * A code indicating that the action was a failure + */ + Failure = 1 +} +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +export declare function exportVariable(name: string, val: any): void; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +export declare function setSecret(secret: string): void; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +export declare function addPath(inputPath: string): void; +/** + * Gets the value of an input. The value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +export declare function getInput(name: string, options?: InputOptions): string; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +export declare function setOutput(name: string, value: any): void; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +export declare function setCommandEcho(enabled: boolean): void; +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +export declare function setFailed(message: string | Error): void; +/** + * Gets whether Actions Step Debug is on or not + */ +export declare function isDebug(): boolean; +/** + * Writes debug message to user log + * @param message debug message + */ +export declare function debug(message: string): void; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + */ +export declare function error(message: string | Error): void; +/** + * Adds an warning issue + * @param message warning issue message. Errors will be converted to string via toString() + */ +export declare function warning(message: string | Error): void; +/** + * Writes info to log with console.log. + * @param message info message + */ +export declare function info(message: string): void; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +export declare function startGroup(name: string): void; +/** + * End an output group. + */ +export declare function endGroup(): void; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +export declare function group(name: string, fn: () => Promise): Promise; +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +export declare function saveState(name: string, value: any): void; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +export declare function getState(name: string): string; diff --git a/node_modules/@actions/core/lib/core.js b/node_modules/@actions/core/lib/core.js new file mode 100644 index 0000000..8b33110 --- /dev/null +++ b/node_modules/@actions/core/lib/core.js @@ -0,0 +1,238 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const command_1 = require("./command"); +const file_command_1 = require("./file-command"); +const utils_1 = require("./utils"); +const os = __importStar(require("os")); +const path = __importStar(require("path")); +/** + * The code to exit an action + */ +var ExitCode; +(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); + } +} +exports.exportVariable = exportVariable; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +function setSecret(secret) { + command_1.issueCommand('add-mask', {}, secret); +} +exports.setSecret = setSecret; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +function addPath(inputPath) { + const filePath = process.env['GITHUB_PATH'] || ''; + if (filePath) { + file_command_1.issueCommand('PATH', inputPath); + } + else { + command_1.issueCommand('add-path', {}, inputPath); + } + process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; +} +exports.addPath = addPath; +/** + * Gets the value of an input. The value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + return val.trim(); +} +exports.getInput = getInput; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOutput(name, value) { + command_1.issueCommand('set-output', { name }, value); +} +exports.setOutput = setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off'); +} +exports.setCommandEcho = setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); +} +exports.setFailed = setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +exports.isDebug = isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ +function debug(message) { + command_1.issueCommand('debug', {}, message); +} +exports.debug = debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + */ +function error(message) { + command_1.issue('error', message instanceof Error ? message.toString() : message); +} +exports.error = error; +/** + * Adds an warning issue + * @param message warning issue message. Errors will be converted to string via toString() + */ +function warning(message) { + command_1.issue('warning', message instanceof Error ? message.toString() : message); +} +exports.warning = warning; +/** + * Writes info to log with console.log. + * @param message info message + */ +function info(message) { + process.stdout.write(message + os.EOL); +} +exports.info = info; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +function startGroup(name) { + command_1.issue('group', name); +} +exports.startGroup = startGroup; +/** + * End an output group. + */ +function endGroup() { + command_1.issue('endgroup'); +} +exports.endGroup = endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +function group(name, fn) { + return __awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } + finally { + endGroup(); + } + return result; + }); +} +exports.group = group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function saveState(name, value) { + command_1.issueCommand('save-state', { name }, value); +} +exports.saveState = saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +function getState(name) { + return process.env[`STATE_${name}`] || ''; +} +exports.getState = getState; +//# sourceMappingURL=core.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/core.js.map b/node_modules/@actions/core/lib/core.js.map new file mode 100644 index 0000000..7e7cbcc --- /dev/null +++ b/node_modules/@actions/core/lib/core.js.map @@ -0,0 +1 @@ +{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAA6C;AAC7C,iDAA+D;AAC/D,mCAAsC;AAEtC,uCAAwB;AACxB,2CAA4B;AAU5B;;GAEG;AACH,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB;;OAEG;IACH,6CAAW,CAAA;IAEX;;OAEG;IACH,6CAAW,CAAA;AACb,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,yEAAyE;AACzE,YAAY;AACZ,yEAAyE;AAEzE;;;;GAIG;AACH,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAQ;IACnD,MAAM,YAAY,GAAG,sBAAc,CAAC,GAAG,CAAC,CAAA;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAA;IAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IAChD,IAAI,QAAQ,EAAE;QACZ,MAAM,SAAS,GAAG,qCAAqC,CAAA;QACvD,MAAM,YAAY,GAAG,GAAG,IAAI,KAAK,SAAS,GAAG,EAAE,CAAC,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,GAAG,GAAG,SAAS,EAAE,CAAA;QACzF,2BAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;KACtC;SAAM;QACL,sBAAY,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,EAAE,YAAY,CAAC,CAAA;KAC9C;AACH,CAAC;AAZD,wCAYC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,MAAc;IACtC,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;AACtC,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,SAAiB;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;IACjD,IAAI,QAAQ,EAAE;QACZ,2BAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KACpC;SAAM;QACL,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;KACxC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AAC7E,CAAC;AARD,0BAQC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAsB;IAC3D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACrE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAA;KAC5D;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AARD,4BAQC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAU;IAChD,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAFD,8BAEC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,OAAgB;IAC7C,eAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACvC,CAAC;AAFD,wCAEC;AAED,yEAAyE;AACzE,UAAU;AACV,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAAuB;IAC/C,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;IAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;AAChB,CAAC;AAJD,8BAIC;AAED,yEAAyE;AACzE,mBAAmB;AACnB,yEAAyE;AAEzE;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,CAAA;AAC5C,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,sBAAY,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAuB;IAC3C,eAAK,CAAC,OAAO,EAAE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AACzE,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,OAAuB;IAC7C,eAAK,CAAC,SAAS,EAAE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AAC3E,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAFD,oBAEC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,eAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACtB,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,QAAQ;IACtB,eAAK,CAAC,UAAU,CAAC,CAAA;AACnB,CAAC;AAFD,4BAEC;AAED;;;;;;;GAOG;AACH,SAAsB,KAAK,CAAI,IAAY,EAAE,EAAoB;;QAC/D,UAAU,CAAC,IAAI,CAAC,CAAA;QAEhB,IAAI,MAAS,CAAA;QAEb,IAAI;YACF,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;SACpB;gBAAS;YACR,QAAQ,EAAE,CAAA;SACX;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CAAA;AAZD,sBAYC;AAED,yEAAyE;AACzE,uBAAuB;AACvB,yEAAyE;AAEzE;;;;;GAKG;AACH,8DAA8D;AAC9D,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAU;IAChD,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAFD,8BAEC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;AAC3C,CAAC;AAFD,4BAEC"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/file-command.d.ts b/node_modules/@actions/core/lib/file-command.d.ts new file mode 100644 index 0000000..ed408eb --- /dev/null +++ b/node_modules/@actions/core/lib/file-command.d.ts @@ -0,0 +1 @@ +export declare function issueCommand(command: string, message: any): void; diff --git a/node_modules/@actions/core/lib/file-command.js b/node_modules/@actions/core/lib/file-command.js new file mode 100644 index 0000000..10783c0 --- /dev/null +++ b/node_modules/@actions/core/lib/file-command.js @@ -0,0 +1,29 @@ +"use strict"; +// For internal use, subject to change. +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +const fs = __importStar(require("fs")); +const os = __importStar(require("os")); +const utils_1 = require("./utils"); +function issueCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { + encoding: 'utf8' + }); +} +exports.issueCommand = issueCommand; +//# sourceMappingURL=file-command.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/file-command.js.map b/node_modules/@actions/core/lib/file-command.js.map new file mode 100644 index 0000000..45fd8c4 --- /dev/null +++ b/node_modules/@actions/core/lib/file-command.js.map @@ -0,0 +1 @@ +{"version":3,"file":"file-command.js","sourceRoot":"","sources":["../src/file-command.ts"],"names":[],"mappings":";AAAA,uCAAuC;;;;;;;;;AAEvC,mCAAmC;AACnC,uDAAuD;AAEvD,uCAAwB;AACxB,uCAAwB;AACxB,mCAAsC;AAEtC,SAAgB,YAAY,CAAC,OAAe,EAAE,OAAY;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CACb,wDAAwD,OAAO,EAAE,CAClE,CAAA;KACF;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;KACrD;IAED,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,sBAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QACjE,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAA;AACJ,CAAC;AAdD,oCAcC"} \ No newline at end of file diff --git a/node_modules/@actions/core/lib/utils.d.ts b/node_modules/@actions/core/lib/utils.d.ts new file mode 100644 index 0000000..b39c9be --- /dev/null +++ b/node_modules/@actions/core/lib/utils.d.ts @@ -0,0 +1,5 @@ +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +export declare function toCommandValue(input: any): string; diff --git a/node_modules/@actions/core/lib/utils.js b/node_modules/@actions/core/lib/utils.js new file mode 100644 index 0000000..97cea33 --- /dev/null +++ b/node_modules/@actions/core/lib/utils.js @@ -0,0 +1,19 @@ +"use strict"; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +exports.toCommandValue = toCommandValue; +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/node_modules/@actions/core/lib/utils.js.map b/node_modules/@actions/core/lib/utils.js.map new file mode 100644 index 0000000..ce43f03 --- /dev/null +++ b/node_modules/@actions/core/lib/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA,mCAAmC;AACnC,uDAAuD;;AAEvD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAU;IACvC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;QACzC,OAAO,EAAE,CAAA;KACV;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,MAAM,EAAE;QAC/D,OAAO,KAAe,CAAA;KACvB;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAPD,wCAOC"} \ No newline at end of file diff --git a/node_modules/@actions/core/package.json b/node_modules/@actions/core/package.json new file mode 100644 index 0000000..ffcced4 --- /dev/null +++ b/node_modules/@actions/core/package.json @@ -0,0 +1,41 @@ +{ + "name": "@actions/core", + "version": "1.2.6", + "description": "Actions core lib", + "keywords": [ + "github", + "actions", + "core" + ], + "homepage": "https://github.com/actions/toolkit/tree/main/packages/core", + "license": "MIT", + "main": "lib/core.js", + "types": "lib/core.d.ts", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib", + "!.DS_Store" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/actions/toolkit.git", + "directory": "packages/core" + }, + "scripts": { + "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", + "test": "echo \"Error: run tests from root\" && exit 1", + "tsc": "tsc" + }, + "bugs": { + "url": "https://github.com/actions/toolkit/issues" + }, + "devDependencies": { + "@types/node": "^12.0.2" + } +} diff --git a/node_modules/@actions/github/README.md b/node_modules/@actions/github/README.md new file mode 100644 index 0000000..8f2cbe3 --- /dev/null +++ b/node_modules/@actions/github/README.md @@ -0,0 +1,57 @@ +# `@actions/github` + +> A hydrated Octokit client. + +## Usage + +Returns an Octokit client. See https://octokit.github.io/rest.js for the API. + +```js +const github = require('@actions/github'); +const core = require('@actions/core'); + +async function run() { + // This should be a token with access to your repository scoped in as a secret. + // The YML workflow will need to set myToken with the GitHub Secret Token + // myToken: ${{ secrets.GITHUB_TOKEN }} + // https://help.github.com/en/articles/virtual-environments-for-github-actions#github_token-secret + const myToken = core.getInput('myToken'); + + const octokit = new github.GitHub(myToken); + + const { data: pullRequest } = await octokit.pulls.get({ + owner: 'octokit', + repo: 'rest.js', + pull_number: 123, + mediaType: { + format: 'diff' + } + }); + + console.log(pullRequest); +} + +run(); +``` + +You can pass client options (except `auth`, which is handled by the token argument), as specified by [Octokit](https://octokit.github.io/rest.js/), as a second argument to the `GitHub` constructor. + +You can also make GraphQL requests. See https://github.com/octokit/graphql.js for the API. + +```js +const result = await octokit.graphql(query, variables); +``` + +Finally, you can get the context of the current action: + +```js +const github = require('@actions/github'); + +const context = github.context; + +const newIssue = await octokit.issues.create({ + ...context.repo, + title: 'New issue!', + body: 'Hello Universe!' +}); +``` diff --git a/node_modules/@actions/github/lib/context.d.ts b/node_modules/@actions/github/lib/context.d.ts new file mode 100644 index 0000000..3ee7583 --- /dev/null +++ b/node_modules/@actions/github/lib/context.d.ts @@ -0,0 +1,26 @@ +import { WebhookPayload } from './interfaces'; +export declare class Context { + /** + * Webhook payload object that triggered the workflow + */ + payload: WebhookPayload; + eventName: string; + sha: string; + ref: string; + workflow: string; + action: string; + actor: string; + /** + * Hydrate the context from the environment + */ + constructor(); + readonly issue: { + owner: string; + repo: string; + number: number; + }; + readonly repo: { + owner: string; + repo: string; + }; +} diff --git a/node_modules/@actions/github/lib/context.js b/node_modules/@actions/github/lib/context.js new file mode 100644 index 0000000..7f5e7da --- /dev/null +++ b/node_modules/@actions/github/lib/context.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs_1 = require("fs"); +const os_1 = require("os"); +class Context { + /** + * Hydrate the context from the environment + */ + constructor() { + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) { + if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) { + this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); + } + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); + } + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pullRequest || payload).number }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { owner, repo }; + } + if (this.payload.repository) { + return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name + }; + } + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } +} +exports.Context = Context; +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/context.js.map b/node_modules/@actions/github/lib/context.js.map new file mode 100644 index 0000000..903040c --- /dev/null +++ b/node_modules/@actions/github/lib/context.js.map @@ -0,0 +1 @@ +{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;AAEA,2BAA2C;AAC3C,2BAAsB;AAEtB,MAAa,OAAO;IAalB;;OAEG;IACH;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACjB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,IAAI,eAAU,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;gBAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CACvB,iBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAChE,CAAA;aACF;iBAAM;gBACL,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA;gBAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,kBAAkB,QAAG,EAAE,CAAC,CAAA;aACvE;SACF;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAA;QACxD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAoB,CAAA;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAyB,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAuB,CAAA;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAsB,CAAA;IACjD,CAAC;IAED,IAAI,KAAK;QACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAE5B,uCACK,IAAI,CAAC,IAAI,KACZ,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,MAAM,IACjE;IACH,CAAC;IAED,IAAI,IAAI;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;YACjC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9D,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAA;SACrB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YAC3B,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;gBAC1C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;aACnC,CAAA;SACF;QAED,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;CACF;AA9DD,0BA8DC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/github.d.ts b/node_modules/@actions/github/lib/github.d.ts new file mode 100644 index 0000000..5926486 --- /dev/null +++ b/node_modules/@actions/github/lib/github.d.ts @@ -0,0 +1,8 @@ +import { graphql as GraphQL } from '@octokit/graphql/dist-types/types'; +import Octokit from '@octokit/rest'; +import * as Context from './context'; +export declare const context: Context.Context; +export declare class GitHub extends Octokit { + graphql: GraphQL; + constructor(token: string, opts?: Omit); +} diff --git a/node_modules/@actions/github/lib/github.js b/node_modules/@actions/github/lib/github.js new file mode 100644 index 0000000..f5e5769 --- /dev/null +++ b/node_modules/@actions/github/lib/github.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// Originally pulled from https://github.com/JasonEtco/actions-toolkit/blob/master/src/github.ts +const graphql_1 = require("@octokit/graphql"); +const rest_1 = __importDefault(require("@octokit/rest")); +const Context = __importStar(require("./context")); +// We need this in order to extend Octokit +rest_1.default.prototype = new rest_1.default(); +exports.context = new Context.Context(); +class GitHub extends rest_1.default { + constructor(token, opts = {}) { + super(Object.assign(Object.assign({}, opts), { auth: `token ${token}` })); + this.graphql = graphql_1.graphql.defaults({ + headers: { authorization: `token ${token}` } + }); + } +} +exports.GitHub = GitHub; +//# sourceMappingURL=github.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/github.js.map b/node_modules/@actions/github/lib/github.js.map new file mode 100644 index 0000000..7ed3a7d --- /dev/null +++ b/node_modules/@actions/github/lib/github.js.map @@ -0,0 +1 @@ +{"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gGAAgG;AAChG,8CAAwC;AAOxC,yDAAmC;AACnC,mDAAoC;AAEpC,0CAA0C;AAC1C,cAAO,CAAC,SAAS,GAAG,IAAI,cAAO,EAAE,CAAA;AAEpB,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAA;AAE5C,MAAa,MAAO,SAAQ,cAAO;IAGjC,YAAY,KAAa,EAAE,OAAsC,EAAE;QACjE,KAAK,iCAAK,IAAI,KAAE,IAAI,EAAE,SAAS,KAAK,EAAE,IAAE,CAAA;QAExC,IAAI,CAAC,OAAO,GAAG,iBAAO,CAAC,QAAQ,CAAC;YAC9B,OAAO,EAAE,EAAC,aAAa,EAAE,SAAS,KAAK,EAAE,EAAC;SAC3C,CAAC,CAAA;IACJ,CAAC;CACF;AAVD,wBAUC"} \ No newline at end of file diff --git a/node_modules/@actions/github/lib/interfaces.d.ts b/node_modules/@actions/github/lib/interfaces.d.ts new file mode 100644 index 0000000..23788cc --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.d.ts @@ -0,0 +1,36 @@ +export interface PayloadRepository { + [key: string]: any; + full_name?: string; + name: string; + owner: { + [key: string]: any; + login: string; + name?: string; + }; + html_url?: string; +} +export interface WebhookPayload { + [key: string]: any; + repository?: PayloadRepository; + issue?: { + [key: string]: any; + number: number; + html_url?: string; + body?: string; + }; + pull_request?: { + [key: string]: any; + number: number; + html_url?: string; + body?: string; + }; + sender?: { + [key: string]: any; + type: string; + }; + action?: string; + installation?: { + id: number; + [key: string]: any; + }; +} diff --git a/node_modules/@actions/github/lib/interfaces.js b/node_modules/@actions/github/lib/interfaces.js new file mode 100644 index 0000000..a660b5e --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.js @@ -0,0 +1,4 @@ +"use strict"; +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=interfaces.js.map \ No newline at end of file diff --git a/node_modules/@actions/github/lib/interfaces.js.map b/node_modules/@actions/github/lib/interfaces.js.map new file mode 100644 index 0000000..dc2c960 --- /dev/null +++ b/node_modules/@actions/github/lib/interfaces.js.map @@ -0,0 +1 @@ +{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,uDAAuD"} \ No newline at end of file diff --git a/node_modules/@actions/github/package.json b/node_modules/@actions/github/package.json new file mode 100644 index 0000000..36aeea4 --- /dev/null +++ b/node_modules/@actions/github/package.json @@ -0,0 +1,44 @@ +{ + "name": "@actions/github", + "version": "2.0.0", + "description": "Actions github lib", + "keywords": [ + "github", + "actions" + ], + "homepage": "https://github.com/actions/toolkit/tree/master/packages/github", + "license": "MIT", + "main": "lib/github.js", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "files": [ + "lib" + ], + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/actions/toolkit.git", + "directory": "packages/github" + }, + "scripts": { + "test": "jest", + "build": "tsc", + "format": "prettier --write **/*.ts", + "format-check": "prettier --check **/*.ts", + "tsc": "tsc" + }, + "bugs": { + "url": "https://github.com/actions/toolkit/issues" + }, + "dependencies": { + "@octokit/graphql": "^4.3.1", + "@octokit/rest": "^16.15.0" + }, + "devDependencies": { + "jest": "^24.7.1" + } +} diff --git a/node_modules/@octokit/endpoint/LICENSE b/node_modules/@octokit/endpoint/LICENSE new file mode 100644 index 0000000..af5366d --- /dev/null +++ b/node_modules/@octokit/endpoint/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/endpoint/README.md b/node_modules/@octokit/endpoint/README.md new file mode 100644 index 0000000..5ac8429 --- /dev/null +++ b/node_modules/@octokit/endpoint/README.md @@ -0,0 +1,421 @@ +# endpoint.js + +> Turns GitHub REST API endpoints into generic request options + +[![@latest](https://img.shields.io/npm/v/@octokit/endpoint.svg)](https://www.npmjs.com/package/@octokit/endpoint) +![Build Status](https://github.com/octokit/endpoint.js/workflows/Test/badge.svg) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/endpoint.js.svg)](https://greenkeeper.io/) + +`@octokit/endpoint` combines [GitHub REST API routes](https://developer.github.com/v3/) with your parameters and turns them into generic request options that can be used in any request library. + + + + +- [Usage](#usage) +- [API](#api) + - [endpoint()](#endpointroute-options-or-endpointoptions) + - [endpoint.defaults()](#endpointdefaults) + - [endpoint.DEFAULTS](#endpointdefaults-1) + - [endpoint.merge()](#endpointmergeroute-options-or-endpointmergeoptions) + - [endpoint.parse()](#endpointparse) +- [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter--set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) +- [LICENSE](#license) + + + +## Usage + + + + + + +
+Browsers + +Load @octokit/endpoint directly from cdn.pika.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/endpoint + +```js +const { endpoint } = require("@octokit/endpoint"); +// or: import { endpoint } from "@octokit/endpoint"; +``` + +
+ +Example for [List organization repositories](https://developer.github.com/v3/repos/#list-organization-repositories) + +```js +const requestOptions = endpoint("GET /orgs/:org/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001" + }, + org: "octokit", + type: "private" +}); +``` + +The resulting `requestOptions` looks as follows + +```json +{ + "method": "GET", + "url": "https://api.github.com/orgs/octokit/repos?type=private", + "headers": { + "accept": "application/vnd.github.v3+json", + "authorization": "token 0000000000000000000000000000000000000001", + "user-agent": "octokit/endpoint.js v1.2.3" + } +} +``` + +You can pass `requestOptions` to common request libraries + +```js +const { url, ...options } = requestOptions; +// using with fetch (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +fetch(url, options); +// using with request (https://github.com/request/request) +request(requestOptions); +// using with got (https://github.com/sindresorhus/got) +got[options.method](url, options); +// using with axios +axios(requestOptions); +``` + +## API + +### `endpoint(route, options)` or `endpoint(options)` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + If set, it has to be a string consisting of URL and the request method, e.g., GET /orgs/:org. If it’s set to a URL, only the method defaults to GET. +
+ options.method + + String + + Required unless route is set. Any supported http verb. Defaults to GET. +
+ options.url + + String + + Required unless route is set. A path or full URL which may contain :variable or {variable} placeholders, + e.g., /orgs/:org/repos. The url is parsed using url-template. +
+ options.baseUrl + + String + + Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-endpoint.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
+
+ options.mediaType.format + + String + + Media type param, such as raw, diff, or text+json. See Media Types. Setting options.mediaType.format will amend the headers.accept value. +
+ options.mediaType.previews + + Array of Strings + + Name of previews, such as mercy, symmetra, or scarlet-witch. See API Previews. If options.mediaType.previews was set as default, the new previews will be merged into the default ones. Setting options.mediaType.previews will amend the headers.accept value. options.mediaType.previews will be merged with an existing array set using .defaults(). +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The data parameter" below. +
+ options.request + + Object + + Pass custom meta information for the request. The request object will be returned as is. +
+ +All other options will be passed depending on the `method` and `url` options. + +1. If the option key has a placeholder in the `url`, it will be used as the replacement. For example, if the passed options are `{url: '/orgs/:org/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos`. +2. If the `method` is `GET` or `HEAD`, the option is passed as a query parameter. +3. Otherwise, the parameter is passed in the request body as a JSON key. + +**Result** + +`endpoint()` is a synchronous method and returns an object with the following keys: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
methodStringThe http method. Always lowercase.
urlStringThe url with placeholders replaced with passed parameters.
headersObjectAll header names are lowercased.
bodyAnyThe request body if one is present. Only for PATCH, POST, PUT, DELETE requests.
requestObjectRequest meta option, it will be returned as it was passed into endpoint()
+ +### `endpoint.defaults()` + +Override or set default options. Example: + +```js +const request = require("request"); +const myEndpoint = require("@octokit/endpoint").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001` + }, + org: "my-project", + per_page: 100 +}); + +request(myEndpoint(`GET /orgs/:org/repos`)); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3" + }, + org: "my-project" +}); +const myProjectEndpointWithAuth = myProjectEndpoint.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001` + } +}); +``` + +`myProjectEndpointWithAuth` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +### `endpoint.DEFAULTS` + +The current default options. + +```js +endpoint.DEFAULTS.baseUrl; // https://api.github.com +const myEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3" +}); +myEndpoint.DEFAULTS.baseUrl; // https://github-enterprise.acme-inc.com/api/v3 +``` + +### `endpoint.merge(route, options)` or `endpoint.merge(options)` + +Get the defaulted endpoint options, but without parsing them into request options: + +```js +const myProjectEndpoint = endpoint.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3" + }, + org: "my-project" +}); +myProjectEndpoint.merge("GET /orgs/:org/repos", { + headers: { + authorization: `token 0000000000000000000000000000000000000001` + }, + org: "my-secret-project", + type: "private" +}); + +// { +// baseUrl: 'https://github-enterprise.acme-inc.com/api/v3', +// method: 'GET', +// url: '/orgs/:org/repos', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: `token 0000000000000000000000000000000000000001`, +// 'user-agent': 'myApp/1.2.3' +// }, +// org: 'my-secret-project', +// type: 'private' +// } +``` + +### `endpoint.parse()` + +Stateless method to turn endpoint options into request options. Calling +`endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + +## Special cases + + + +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead, the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const options = endpoint("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain" + } +}); + +// options is +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case, you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +endpoint( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001` + }, + data: "Hello, world!" + } +); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/endpoint/dist-node/index.js b/node_modules/@octokit/endpoint/dist-node/index.js new file mode 100644 index 0000000..9218ced --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-node/index.js @@ -0,0 +1,379 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var isPlainObject = _interopDefault(require('is-plain-object')); +var universalUserAgent = require('universal-user-agent'); + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) Object.assign(result, { + [key]: options[key] + });else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { + [key]: options[key] + }); + } + }); + return result; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else { + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates + + + options.headers = lowercaseKeys(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + } + + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + + if (names.length === 0) { + return url; + } + + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +const urlVariableRegex = /\{[^}]+\}/g; + +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} + +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; + } + + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* istanbul ignore file */ +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + + return part; + }).join(""); +} + +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} + +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} + +function isDefined(value) { + return value !== undefined && value !== null; +} + +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} + +function getValues(context, operator, key, modifier) { + var value = context[key], + result = []; + + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + + return result; +} + +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} + +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + + if (operator && operator !== "+") { + var separator = ","; + + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{+$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + + const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequset = /application\/octet-stream/i.test(headers.accept); + + if (!isBinaryRequset) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } + + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } + } + } // default content-type for JSON if body is set + + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "5.5.1"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/endpoint/dist-node/index.js.map b/node_modules/@octokit/endpoint/dist-node/index.js.map new file mode 100644 index 0000000..d84c1b7 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n","import isPlainObject from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter(preview => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map(name => {\n if (name === \"q\") {\n return (\"q=\" +\n parameters\n .q.split(\"+\")\n .map(encodeURIComponent)\n .join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter(option => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part)\n .replace(/%5B/g, \"[\")\n .replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return (\"%\" +\n c\n .charCodeAt(0)\n .toString(16)\n .toUpperCase());\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{+$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\"\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter(option => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequset = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequset) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map(preview => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n","export const VERSION = \"5.5.1\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":["lowercaseKeys","object","Object","keys","reduce","newObj","key","toLowerCase","mergeDeep","defaults","options","result","assign","forEach","isPlainObject","merge","route","method","url","split","headers","mergedOptions","mediaType","previews","length","filter","preview","includes","concat","map","replace","addQueryParameters","parameters","separator","test","names","name","q","encodeURIComponent","join","urlVariableRegex","removeNonChars","variableName","extractUrlVariableNames","matches","match","a","b","omit","keysToOmit","option","obj","encodeReserved","str","part","encodeURI","encodeUnreserved","c","charCodeAt","toString","toUpperCase","encodeValue","operator","value","isDefined","undefined","isKeyOperator","getValues","context","modifier","substring","parseInt","push","Array","isArray","k","tmp","parseUrl","template","expand","bind","operators","_","expression","literal","values","indexOf","charAt","substr","variable","exec","parse","body","urlVariableNames","baseUrl","omittedParameters","remainingParameters","isBinaryRequset","accept","format","previewsFromAcceptHeader","data","request","endpointWithDefaults","withDefaults","oldDefaults","newDefaults","DEFAULTS","endpoint","VERSION","userAgent","getUserAgent"],"mappings":";;;;;;;;;AAAO,SAASA,aAAT,CAAuBC,MAAvB,EAA+B;MAC9B,CAACA,MAAL,EAAa;WACF,EAAP;;;SAEGC,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBG,MAApB,CAA2B,CAACC,MAAD,EAASC,GAAT,KAAiB;IAC/CD,MAAM,CAACC,GAAG,CAACC,WAAJ,EAAD,CAAN,GAA4BN,MAAM,CAACK,GAAD,CAAlC;WACOD,MAAP;GAFG,EAGJ,EAHI,CAAP;;;ACHG,SAASG,SAAT,CAAmBC,QAAnB,EAA6BC,OAA7B,EAAsC;QACnCC,MAAM,GAAGT,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBH,QAAlB,CAAf;EACAP,MAAM,CAACC,IAAP,CAAYO,OAAZ,EAAqBG,OAArB,CAA6BP,GAAG,IAAI;QAC5BQ,aAAa,CAACJ,OAAO,CAACJ,GAAD,CAAR,CAAjB,EAAiC;UACzB,EAAEA,GAAG,IAAIG,QAAT,CAAJ,EACIP,MAAM,CAACU,MAAP,CAAcD,MAAd,EAAsB;SAAGL,GAAD,GAAOI,OAAO,CAACJ,GAAD;OAAtC,EADJ,KAGIK,MAAM,CAACL,GAAD,CAAN,GAAcE,SAAS,CAACC,QAAQ,CAACH,GAAD,CAAT,EAAgBI,OAAO,CAACJ,GAAD,CAAvB,CAAvB;KAJR,MAMK;MACDJ,MAAM,CAACU,MAAP,CAAcD,MAAd,EAAsB;SAAGL,GAAD,GAAOI,OAAO,CAACJ,GAAD;OAAtC;;GARR;SAWOK,MAAP;;;ACZG,SAASI,KAAT,CAAeN,QAAf,EAAyBO,KAAzB,EAAgCN,OAAhC,EAAyC;MACxC,OAAOM,KAAP,KAAiB,QAArB,EAA+B;QACvB,CAACC,MAAD,EAASC,GAAT,IAAgBF,KAAK,CAACG,KAAN,CAAY,GAAZ,CAApB;IACAT,OAAO,GAAGR,MAAM,CAACU,MAAP,CAAcM,GAAG,GAAG;MAAED,MAAF;MAAUC;KAAb,GAAqB;MAAEA,GAAG,EAAED;KAA7C,EAAuDP,OAAvD,CAAV;GAFJ,MAIK;IACDA,OAAO,GAAGR,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBI,KAAlB,CAAV;GANwC;;;EAS5CN,OAAO,CAACU,OAAR,GAAkBpB,aAAa,CAACU,OAAO,CAACU,OAAT,CAA/B;QACMC,aAAa,GAAGb,SAAS,CAACC,QAAQ,IAAI,EAAb,EAAiBC,OAAjB,CAA/B,CAV4C;;MAYxCD,QAAQ,IAAIA,QAAQ,CAACa,SAAT,CAAmBC,QAAnB,CAA4BC,MAA5C,EAAoD;IAChDH,aAAa,CAACC,SAAd,CAAwBC,QAAxB,GAAmCd,QAAQ,CAACa,SAAT,CAAmBC,QAAnB,CAC9BE,MAD8B,CACvBC,OAAO,IAAI,CAACL,aAAa,CAACC,SAAd,CAAwBC,QAAxB,CAAiCI,QAAjC,CAA0CD,OAA1C,CADW,EAE9BE,MAF8B,CAEvBP,aAAa,CAACC,SAAd,CAAwBC,QAFD,CAAnC;;;EAIJF,aAAa,CAACC,SAAd,CAAwBC,QAAxB,GAAmCF,aAAa,CAACC,SAAd,CAAwBC,QAAxB,CAAiCM,GAAjC,CAAsCH,OAAD,IAAaA,OAAO,CAACI,OAAR,CAAgB,UAAhB,EAA4B,EAA5B,CAAlD,CAAnC;SACOT,aAAP;;;ACpBG,SAASU,kBAAT,CAA4Bb,GAA5B,EAAiCc,UAAjC,EAA6C;QAC1CC,SAAS,GAAG,KAAKC,IAAL,CAAUhB,GAAV,IAAiB,GAAjB,GAAuB,GAAzC;QACMiB,KAAK,GAAGjC,MAAM,CAACC,IAAP,CAAY6B,UAAZ,CAAd;;MACIG,KAAK,CAACX,MAAN,KAAiB,CAArB,EAAwB;WACbN,GAAP;;;SAEIA,GAAG,GACPe,SADI,GAEJE,KAAK,CACAN,GADL,CACSO,IAAI,IAAI;QACTA,IAAI,KAAK,GAAb,EAAkB;aACN,OACJJ,UAAU,CACLK,CADL,CACOlB,KADP,CACa,GADb,EAEKU,GAFL,CAESS,kBAFT,EAGKC,IAHL,CAGU,GAHV,CADJ;;;WAMI,GAAEH,IAAK,IAAGE,kBAAkB,CAACN,UAAU,CAACI,IAAD,CAAX,CAAmB,EAAvD;GATJ,EAWKG,IAXL,CAWU,GAXV,CAFJ;;;ACNJ,MAAMC,gBAAgB,GAAG,YAAzB;;AACA,SAASC,cAAT,CAAwBC,YAAxB,EAAsC;SAC3BA,YAAY,CAACZ,OAAb,CAAqB,YAArB,EAAmC,EAAnC,EAAuCX,KAAvC,CAA6C,GAA7C,CAAP;;;AAEJ,AAAO,SAASwB,uBAAT,CAAiCzB,GAAjC,EAAsC;QACnC0B,OAAO,GAAG1B,GAAG,CAAC2B,KAAJ,CAAUL,gBAAV,CAAhB;;MACI,CAACI,OAAL,EAAc;WACH,EAAP;;;SAEGA,OAAO,CAACf,GAAR,CAAYY,cAAZ,EAA4BrC,MAA5B,CAAmC,CAAC0C,CAAD,EAAIC,CAAJ,KAAUD,CAAC,CAAClB,MAAF,CAASmB,CAAT,CAA7C,EAA0D,EAA1D,CAAP;;;ACTG,SAASC,IAAT,CAAc/C,MAAd,EAAsBgD,UAAtB,EAAkC;SAC9B/C,MAAM,CAACC,IAAP,CAAYF,MAAZ,EACFwB,MADE,CACKyB,MAAM,IAAI,CAACD,UAAU,CAACtB,QAAX,CAAoBuB,MAApB,CADhB,EAEF9C,MAFE,CAEK,CAAC+C,GAAD,EAAM7C,GAAN,KAAc;IACtB6C,GAAG,CAAC7C,GAAD,CAAH,GAAWL,MAAM,CAACK,GAAD,CAAjB;WACO6C,GAAP;GAJG,EAKJ,EALI,CAAP;;;ACDJ;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,SAASC,cAAT,CAAwBC,GAAxB,EAA6B;SAClBA,GAAG,CACLlC,KADE,CACI,oBADJ,EAEFU,GAFE,CAEE,UAAUyB,IAAV,EAAgB;QACjB,CAAC,eAAepB,IAAf,CAAoBoB,IAApB,CAAL,EAAgC;MAC5BA,IAAI,GAAGC,SAAS,CAACD,IAAD,CAAT,CACFxB,OADE,CACM,MADN,EACc,GADd,EAEFA,OAFE,CAEM,MAFN,EAEc,GAFd,CAAP;;;WAIGwB,IAAP;GARG,EAUFf,IAVE,CAUG,EAVH,CAAP;;;AAYJ,SAASiB,gBAAT,CAA0BH,GAA1B,EAA+B;SACpBf,kBAAkB,CAACe,GAAD,CAAlB,CAAwBvB,OAAxB,CAAgC,UAAhC,EAA4C,UAAU2B,CAAV,EAAa;WACpD,MACJA,CAAC,CACIC,UADL,CACgB,CADhB,EAEKC,QAFL,CAEc,EAFd,EAGKC,WAHL,EADJ;GADG,CAAP;;;AAQJ,SAASC,WAAT,CAAqBC,QAArB,EAA+BC,KAA/B,EAAsCzD,GAAtC,EAA2C;EACvCyD,KAAK,GACDD,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAjC,GACMV,cAAc,CAACW,KAAD,CADpB,GAEMP,gBAAgB,CAACO,KAAD,CAH1B;;MAIIzD,GAAJ,EAAS;WACEkD,gBAAgB,CAAClD,GAAD,CAAhB,GAAwB,GAAxB,GAA8ByD,KAArC;GADJ,MAGK;WACMA,KAAP;;;;AAGR,SAASC,SAAT,CAAmBD,KAAnB,EAA0B;SACfA,KAAK,KAAKE,SAAV,IAAuBF,KAAK,KAAK,IAAxC;;;AAEJ,SAASG,aAAT,CAAuBJ,QAAvB,EAAiC;SACtBA,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAjC,IAAwCA,QAAQ,KAAK,GAA5D;;;AAEJ,SAASK,SAAT,CAAmBC,OAAnB,EAA4BN,QAA5B,EAAsCxD,GAAtC,EAA2C+D,QAA3C,EAAqD;MAC7CN,KAAK,GAAGK,OAAO,CAAC9D,GAAD,CAAnB;MAA0BK,MAAM,GAAG,EAAnC;;MACIqD,SAAS,CAACD,KAAD,CAAT,IAAoBA,KAAK,KAAK,EAAlC,EAAsC;QAC9B,OAAOA,KAAP,KAAiB,QAAjB,IACA,OAAOA,KAAP,KAAiB,QADjB,IAEA,OAAOA,KAAP,KAAiB,SAFrB,EAEgC;MAC5BA,KAAK,GAAGA,KAAK,CAACJ,QAAN,EAAR;;UACIU,QAAQ,IAAIA,QAAQ,KAAK,GAA7B,EAAkC;QAC9BN,KAAK,GAAGA,KAAK,CAACO,SAAN,CAAgB,CAAhB,EAAmBC,QAAQ,CAACF,QAAD,EAAW,EAAX,CAA3B,CAAR;;;MAEJ1D,MAAM,CAAC6D,IAAP,CAAYX,WAAW,CAACC,QAAD,EAAWC,KAAX,EAAkBG,aAAa,CAACJ,QAAD,CAAb,GAA0BxD,GAA1B,GAAgC,EAAlD,CAAvB;KAPJ,MASK;UACG+D,QAAQ,KAAK,GAAjB,EAAsB;YACdI,KAAK,CAACC,OAAN,CAAcX,KAAd,CAAJ,EAA0B;UACtBA,KAAK,CAACtC,MAAN,CAAauC,SAAb,EAAwBnD,OAAxB,CAAgC,UAAUkD,KAAV,EAAiB;YAC7CpD,MAAM,CAAC6D,IAAP,CAAYX,WAAW,CAACC,QAAD,EAAWC,KAAX,EAAkBG,aAAa,CAACJ,QAAD,CAAb,GAA0BxD,GAA1B,GAAgC,EAAlD,CAAvB;WADJ;SADJ,MAKK;UACDJ,MAAM,CAACC,IAAP,CAAY4D,KAAZ,EAAmBlD,OAAnB,CAA2B,UAAU8D,CAAV,EAAa;gBAChCX,SAAS,CAACD,KAAK,CAACY,CAAD,CAAN,CAAb,EAAyB;cACrBhE,MAAM,CAAC6D,IAAP,CAAYX,WAAW,CAACC,QAAD,EAAWC,KAAK,CAACY,CAAD,CAAhB,EAAqBA,CAArB,CAAvB;;WAFR;;OAPR,MAcK;cACKC,GAAG,GAAG,EAAZ;;YACIH,KAAK,CAACC,OAAN,CAAcX,KAAd,CAAJ,EAA0B;UACtBA,KAAK,CAACtC,MAAN,CAAauC,SAAb,EAAwBnD,OAAxB,CAAgC,UAAUkD,KAAV,EAAiB;YAC7Ca,GAAG,CAACJ,IAAJ,CAASX,WAAW,CAACC,QAAD,EAAWC,KAAX,CAApB;WADJ;SADJ,MAKK;UACD7D,MAAM,CAACC,IAAP,CAAY4D,KAAZ,EAAmBlD,OAAnB,CAA2B,UAAU8D,CAAV,EAAa;gBAChCX,SAAS,CAACD,KAAK,CAACY,CAAD,CAAN,CAAb,EAAyB;cACrBC,GAAG,CAACJ,IAAJ,CAAShB,gBAAgB,CAACmB,CAAD,CAAzB;cACAC,GAAG,CAACJ,IAAJ,CAASX,WAAW,CAACC,QAAD,EAAWC,KAAK,CAACY,CAAD,CAAL,CAAShB,QAAT,EAAX,CAApB;;WAHR;;;YAOAO,aAAa,CAACJ,QAAD,CAAjB,EAA6B;UACzBnD,MAAM,CAAC6D,IAAP,CAAYhB,gBAAgB,CAAClD,GAAD,CAAhB,GAAwB,GAAxB,GAA8BsE,GAAG,CAACrC,IAAJ,CAAS,GAAT,CAA1C;SADJ,MAGK,IAAIqC,GAAG,CAACpD,MAAJ,KAAe,CAAnB,EAAsB;UACvBb,MAAM,CAAC6D,IAAP,CAAYI,GAAG,CAACrC,IAAJ,CAAS,GAAT,CAAZ;;;;GA5ChB,MAiDK;QACGuB,QAAQ,KAAK,GAAjB,EAAsB;UACdE,SAAS,CAACD,KAAD,CAAb,EAAsB;QAClBpD,MAAM,CAAC6D,IAAP,CAAYhB,gBAAgB,CAAClD,GAAD,CAA5B;;KAFR,MAKK,IAAIyD,KAAK,KAAK,EAAV,KAAiBD,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAlD,CAAJ,EAA4D;MAC7DnD,MAAM,CAAC6D,IAAP,CAAYhB,gBAAgB,CAAClD,GAAD,CAAhB,GAAwB,GAApC;KADC,MAGA,IAAIyD,KAAK,KAAK,EAAd,EAAkB;MACnBpD,MAAM,CAAC6D,IAAP,CAAY,EAAZ;;;;SAGD7D,MAAP;;;AAEJ,AAAO,SAASkE,QAAT,CAAkBC,QAAlB,EAA4B;SACxB;IACHC,MAAM,EAAEA,MAAM,CAACC,IAAP,CAAY,IAAZ,EAAkBF,QAAlB;GADZ;;;AAIJ,SAASC,MAAT,CAAgBD,QAAhB,EAA0BV,OAA1B,EAAmC;MAC3Ba,SAAS,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAhB;SACOH,QAAQ,CAAChD,OAAT,CAAiB,4BAAjB,EAA+C,UAAUoD,CAAV,EAAaC,UAAb,EAAyBC,OAAzB,EAAkC;QAChFD,UAAJ,EAAgB;UACRrB,QAAQ,GAAG,EAAf;YACMuB,MAAM,GAAG,EAAf;;UACIJ,SAAS,CAACK,OAAV,CAAkBH,UAAU,CAACI,MAAX,CAAkB,CAAlB,CAAlB,MAA4C,CAAC,CAAjD,EAAoD;QAChDzB,QAAQ,GAAGqB,UAAU,CAACI,MAAX,CAAkB,CAAlB,CAAX;QACAJ,UAAU,GAAGA,UAAU,CAACK,MAAX,CAAkB,CAAlB,CAAb;;;MAEJL,UAAU,CAAChE,KAAX,CAAiB,IAAjB,EAAuBN,OAAvB,CAA+B,UAAU4E,QAAV,EAAoB;YAC3Cb,GAAG,GAAG,4BAA4Bc,IAA5B,CAAiCD,QAAjC,CAAV;QACAJ,MAAM,CAACb,IAAP,CAAYL,SAAS,CAACC,OAAD,EAAUN,QAAV,EAAoBc,GAAG,CAAC,CAAD,CAAvB,EAA4BA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAG,CAAC,CAAD,CAAzC,CAArB;OAFJ;;UAIId,QAAQ,IAAIA,QAAQ,KAAK,GAA7B,EAAkC;YAC1B7B,SAAS,GAAG,GAAhB;;YACI6B,QAAQ,KAAK,GAAjB,EAAsB;UAClB7B,SAAS,GAAG,GAAZ;SADJ,MAGK,IAAI6B,QAAQ,KAAK,GAAjB,EAAsB;UACvB7B,SAAS,GAAG6B,QAAZ;;;eAEG,CAACuB,MAAM,CAAC7D,MAAP,KAAkB,CAAlB,GAAsBsC,QAAtB,GAAiC,EAAlC,IAAwCuB,MAAM,CAAC9C,IAAP,CAAYN,SAAZ,CAA/C;OARJ,MAUK;eACMoD,MAAM,CAAC9C,IAAP,CAAY,GAAZ,CAAP;;KAtBR,MAyBK;aACMa,cAAc,CAACgC,OAAD,CAArB;;GA3BD,CAAP;;;ACvIG,SAASO,KAAT,CAAejF,OAAf,EAAwB;;MAEvBO,MAAM,GAAGP,OAAO,CAACO,MAAR,CAAe2C,WAAf,EAAb,CAF2B;;MAIvB1C,GAAG,GAAG,CAACR,OAAO,CAACQ,GAAR,IAAe,GAAhB,EAAqBY,OAArB,CAA6B,cAA7B,EAA6C,OAA7C,CAAV;MACIV,OAAO,GAAGlB,MAAM,CAACU,MAAP,CAAc,EAAd,EAAkBF,OAAO,CAACU,OAA1B,CAAd;MACIwE,IAAJ;MACI5D,UAAU,GAAGgB,IAAI,CAACtC,OAAD,EAAU,CAC3B,QAD2B,EAE3B,SAF2B,EAG3B,KAH2B,EAI3B,SAJ2B,EAK3B,SAL2B,EAM3B,WAN2B,CAAV,CAArB,CAP2B;;QAgBrBmF,gBAAgB,GAAGlD,uBAAuB,CAACzB,GAAD,CAAhD;EACAA,GAAG,GAAG2D,QAAQ,CAAC3D,GAAD,CAAR,CAAc6D,MAAd,CAAqB/C,UAArB,CAAN;;MACI,CAAC,QAAQE,IAAR,CAAahB,GAAb,CAAL,EAAwB;IACpBA,GAAG,GAAGR,OAAO,CAACoF,OAAR,GAAkB5E,GAAxB;;;QAEE6E,iBAAiB,GAAG7F,MAAM,CAACC,IAAP,CAAYO,OAAZ,EACrBe,MADqB,CACdyB,MAAM,IAAI2C,gBAAgB,CAAClE,QAAjB,CAA0BuB,MAA1B,CADI,EAErBtB,MAFqB,CAEd,SAFc,CAA1B;QAGMoE,mBAAmB,GAAGhD,IAAI,CAAChB,UAAD,EAAa+D,iBAAb,CAAhC;QACME,eAAe,GAAG,6BAA6B/D,IAA7B,CAAkCd,OAAO,CAAC8E,MAA1C,CAAxB;;MACI,CAACD,eAAL,EAAsB;QACdvF,OAAO,CAACY,SAAR,CAAkB6E,MAAtB,EAA8B;;MAE1B/E,OAAO,CAAC8E,MAAR,GAAiB9E,OAAO,CAAC8E,MAAR,CACZ/E,KADY,CACN,GADM,EAEZU,GAFY,CAERH,OAAO,IAAIA,OAAO,CAACI,OAAR,CAAgB,kDAAhB,EAAqE,uBAAsBpB,OAAO,CAACY,SAAR,CAAkB6E,MAAO,EAApH,CAFH,EAGZ5D,IAHY,CAGP,GAHO,CAAjB;;;QAKA7B,OAAO,CAACY,SAAR,CAAkBC,QAAlB,CAA2BC,MAA/B,EAAuC;YAC7B4E,wBAAwB,GAAGhF,OAAO,CAAC8E,MAAR,CAAerD,KAAf,CAAqB,qBAArB,KAA+C,EAAhF;MACAzB,OAAO,CAAC8E,MAAR,GAAiBE,wBAAwB,CACpCxE,MADY,CACLlB,OAAO,CAACY,SAAR,CAAkBC,QADb,EAEZM,GAFY,CAERH,OAAO,IAAI;cACVyE,MAAM,GAAGzF,OAAO,CAACY,SAAR,CAAkB6E,MAAlB,GACR,IAAGzF,OAAO,CAACY,SAAR,CAAkB6E,MAAO,EADpB,GAET,OAFN;eAGQ,0BAAyBzE,OAAQ,WAAUyE,MAAO,EAA1D;OANa,EAQZ5D,IARY,CAQP,GARO,CAAjB;;GApCmB;;;;MAiDvB,CAAC,KAAD,EAAQ,MAAR,EAAgBZ,QAAhB,CAAyBV,MAAzB,CAAJ,EAAsC;IAClCC,GAAG,GAAGa,kBAAkB,CAACb,GAAD,EAAM8E,mBAAN,CAAxB;GADJ,MAGK;QACG,UAAUA,mBAAd,EAAmC;MAC/BJ,IAAI,GAAGI,mBAAmB,CAACK,IAA3B;KADJ,MAGK;UACGnG,MAAM,CAACC,IAAP,CAAY6F,mBAAZ,EAAiCxE,MAArC,EAA6C;QACzCoE,IAAI,GAAGI,mBAAP;OADJ,MAGK;QACD5E,OAAO,CAAC,gBAAD,CAAP,GAA4B,CAA5B;;;GA7De;;;MAkEvB,CAACA,OAAO,CAAC,cAAD,CAAR,IAA4B,OAAOwE,IAAP,KAAgB,WAAhD,EAA6D;IACzDxE,OAAO,CAAC,cAAD,CAAP,GAA0B,iCAA1B;GAnEuB;;;;MAuEvB,CAAC,OAAD,EAAU,KAAV,EAAiBO,QAAjB,CAA0BV,MAA1B,KAAqC,OAAO2E,IAAP,KAAgB,WAAzD,EAAsE;IAClEA,IAAI,GAAG,EAAP;GAxEuB;;;SA2EpB1F,MAAM,CAACU,MAAP,CAAc;IAAEK,MAAF;IAAUC,GAAV;IAAeE;GAA7B,EAAwC,OAAOwE,IAAP,KAAgB,WAAhB,GAA8B;IAAEA;GAAhC,GAAyC,IAAjF,EAAuFlF,OAAO,CAAC4F,OAAR,GAAkB;IAAEA,OAAO,EAAE5F,OAAO,CAAC4F;GAArC,GAAiD,IAAxI,CAAP;;;AC7EG,SAASC,oBAAT,CAA8B9F,QAA9B,EAAwCO,KAAxC,EAA+CN,OAA/C,EAAwD;SACpDiF,KAAK,CAAC5E,KAAK,CAACN,QAAD,EAAWO,KAAX,EAAkBN,OAAlB,CAAN,CAAZ;;;ACAG,SAAS8F,YAAT,CAAsBC,WAAtB,EAAmCC,WAAnC,EAAgD;QAC7CC,QAAQ,GAAG5F,KAAK,CAAC0F,WAAD,EAAcC,WAAd,CAAtB;QACME,QAAQ,GAAGL,oBAAoB,CAACvB,IAArB,CAA0B,IAA1B,EAAgC2B,QAAhC,CAAjB;SACOzG,MAAM,CAACU,MAAP,CAAcgG,QAAd,EAAwB;IAC3BD,QAD2B;IAE3BlG,QAAQ,EAAE+F,YAAY,CAACxB,IAAb,CAAkB,IAAlB,EAAwB2B,QAAxB,CAFiB;IAG3B5F,KAAK,EAAEA,KAAK,CAACiE,IAAN,CAAW,IAAX,EAAiB2B,QAAjB,CAHoB;IAI3BhB;GAJG,CAAP;;;ACNG,MAAMkB,OAAO,GAAG,mBAAhB;;ACEP,MAAMC,SAAS,GAAI,uBAAsBD,OAAQ,IAAGE,+BAAY,EAAG,EAAnE;;;AAGA,AAAO,MAAMJ,QAAQ,GAAG;EACpB1F,MAAM,EAAE,KADY;EAEpB6E,OAAO,EAAE,wBAFW;EAGpB1E,OAAO,EAAE;IACL8E,MAAM,EAAE,gCADH;kBAESY;GALE;EAOpBxF,SAAS,EAAE;IACP6E,MAAM,EAAE,EADD;IAEP5E,QAAQ,EAAE;;CATX;;MCHMqF,QAAQ,GAAGJ,YAAY,CAAC,IAAD,EAAOG,QAAP,CAA7B;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/endpoint/dist-src/defaults.js b/node_modules/@octokit/endpoint/dist-src/defaults.js new file mode 100644 index 0000000..e1e53fb --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/defaults.js @@ -0,0 +1,17 @@ +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +// DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. +export const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; diff --git a/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js b/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js new file mode 100644 index 0000000..5763758 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/endpoint-with-defaults.js @@ -0,0 +1,5 @@ +import { merge } from "./merge"; +import { parse } from "./parse"; +export function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} diff --git a/node_modules/@octokit/endpoint/dist-src/index.js b/node_modules/@octokit/endpoint/dist-src/index.js new file mode 100644 index 0000000..599917f --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/index.js @@ -0,0 +1,3 @@ +import { withDefaults } from "./with-defaults"; +import { DEFAULTS } from "./defaults"; +export const endpoint = withDefaults(null, DEFAULTS); diff --git a/node_modules/@octokit/endpoint/dist-src/merge.js b/node_modules/@octokit/endpoint/dist-src/merge.js new file mode 100644 index 0000000..a209ffa --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/merge.js @@ -0,0 +1,22 @@ +import { lowercaseKeys } from "./util/lowercase-keys"; +import { mergeDeep } from "./util/merge-deep"; +export function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } + else { + options = Object.assign({}, route); + } + // lowercase header names before merging with defaults to avoid duplicates + options.headers = lowercaseKeys(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + // mediaType.previews arrays are merged, instead of overwritten + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews + .filter(preview => !mergedOptions.mediaType.previews.includes(preview)) + .concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, "")); + return mergedOptions; +} diff --git a/node_modules/@octokit/endpoint/dist-src/parse.js b/node_modules/@octokit/endpoint/dist-src/parse.js new file mode 100644 index 0000000..ca68ca9 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/parse.js @@ -0,0 +1,81 @@ +import { addQueryParameters } from "./util/add-query-parameters"; +import { extractUrlVariableNames } from "./util/extract-url-variable-names"; +import { omit } from "./util/omit"; +import { parseUrl } from "./util/url-template"; +export function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); + // replace :varname with {varname} to make it RFC 6570 compatible + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{+$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + // extract variable names from URL to calculate remaining variables later + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options) + .filter(option => urlVariableNames.includes(option)) + .concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequset = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequset) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept + .split(/,/) + .map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)) + .join(","); + } + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader + .concat(options.mediaType.previews) + .map(preview => { + const format = options.mediaType.format + ? `.${options.mediaType.format}` + : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }) + .join(","); + } + } + // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } + else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } + else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + else { + headers["content-length"] = 0; + } + } + } + // default content-type for JSON if body is set + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + // Only return body/request keys if present + return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js b/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js new file mode 100644 index 0000000..a78812f --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/add-query-parameters.js @@ -0,0 +1,21 @@ +export function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return (url + + separator + + names + .map(name => { + if (name === "q") { + return ("q=" + + parameters + .q.split("+") + .map(encodeURIComponent) + .join("+")); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }) + .join("&")); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js b/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js new file mode 100644 index 0000000..3e75db2 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/extract-url-variable-names.js @@ -0,0 +1,11 @@ +const urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +export function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js b/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js new file mode 100644 index 0000000..0780642 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/lowercase-keys.js @@ -0,0 +1,9 @@ +export function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js b/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js new file mode 100644 index 0000000..d1c5402 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js @@ -0,0 +1,16 @@ +import isPlainObject from "is-plain-object"; +export function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } + else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/omit.js b/node_modules/@octokit/endpoint/dist-src/util/omit.js new file mode 100644 index 0000000..7e1aa6b --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/omit.js @@ -0,0 +1,8 @@ +export function omit(object, keysToOmit) { + return Object.keys(object) + .filter(option => !keysToOmit.includes(option)) + .reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} diff --git a/node_modules/@octokit/endpoint/dist-src/util/url-template.js b/node_modules/@octokit/endpoint/dist-src/util/url-template.js new file mode 100644 index 0000000..f6d9885 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/util/url-template.js @@ -0,0 +1,170 @@ +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* istanbul ignore file */ +function encodeReserved(str) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part) + .replace(/%5B/g, "[") + .replace(/%5D/g, "]"); + } + return part; + }) + .join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return ("%" + + c + .charCodeAt(0) + .toString(16) + .toUpperCase()); + }); +} +function encodeValue(operator, value, key) { + value = + operator === "+" || operator === "#" + ? encodeReserved(value) + : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } + else { + return value; + } +} +function isDefined(value) { + return value !== undefined && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } + else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } + else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } + else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } + else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } + else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } + else if (value === "") { + result.push(""); + } + } + return result; +} +export function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } + else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } + else { + return values.join(","); + } + } + else { + return encodeReserved(literal); + } + }); +} diff --git a/node_modules/@octokit/endpoint/dist-src/version.js b/node_modules/@octokit/endpoint/dist-src/version.js new file mode 100644 index 0000000..ef91397 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "5.5.1"; diff --git a/node_modules/@octokit/endpoint/dist-src/with-defaults.js b/node_modules/@octokit/endpoint/dist-src/with-defaults.js new file mode 100644 index 0000000..9a1c886 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-src/with-defaults.js @@ -0,0 +1,13 @@ +import { endpointWithDefaults } from "./endpoint-with-defaults"; +import { merge } from "./merge"; +import { parse } from "./parse"; +export function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} diff --git a/node_modules/@octokit/endpoint/dist-types/defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/defaults.d.ts new file mode 100644 index 0000000..30fcd20 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults } from "@octokit/types"; +export declare const DEFAULTS: EndpointDefaults; diff --git a/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts new file mode 100644 index 0000000..ff39e5e --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/endpoint-with-defaults.d.ts @@ -0,0 +1,3 @@ +import { EndpointOptions, RequestParameters, Route } from "@octokit/types"; +import { DEFAULTS } from "./defaults"; +export declare function endpointWithDefaults(defaults: typeof DEFAULTS, route: Route | EndpointOptions, options?: RequestParameters): import("@octokit/types").RequestOptions; diff --git a/node_modules/@octokit/endpoint/dist-types/index.d.ts b/node_modules/@octokit/endpoint/dist-types/index.d.ts new file mode 100644 index 0000000..17be855 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const endpoint: import("@octokit/types").EndpointInterface; diff --git a/node_modules/@octokit/endpoint/dist-types/merge.d.ts b/node_modules/@octokit/endpoint/dist-types/merge.d.ts new file mode 100644 index 0000000..b75a15e --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/merge.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults, RequestParameters, Route } from "@octokit/types"; +export declare function merge(defaults: EndpointDefaults | null, route?: Route | RequestParameters, options?: RequestParameters): EndpointDefaults; diff --git a/node_modules/@octokit/endpoint/dist-types/parse.d.ts b/node_modules/@octokit/endpoint/dist-types/parse.d.ts new file mode 100644 index 0000000..fbe2144 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/parse.d.ts @@ -0,0 +1,2 @@ +import { EndpointDefaults, RequestOptions } from "@octokit/types"; +export declare function parse(options: EndpointDefaults): RequestOptions; diff --git a/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts b/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts new file mode 100644 index 0000000..4b192ac --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/add-query-parameters.d.ts @@ -0,0 +1,4 @@ +export declare function addQueryParameters(url: string, parameters: { + [x: string]: string | undefined; + q?: string; +}): string; diff --git a/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts b/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts new file mode 100644 index 0000000..93586d4 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/extract-url-variable-names.d.ts @@ -0,0 +1 @@ +export declare function extractUrlVariableNames(url: string): string[]; diff --git a/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts b/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts new file mode 100644 index 0000000..1daf307 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/lowercase-keys.d.ts @@ -0,0 +1,5 @@ +export declare function lowercaseKeys(object?: { + [key: string]: any; +}): { + [key: string]: any; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts b/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts new file mode 100644 index 0000000..914411c --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/merge-deep.d.ts @@ -0,0 +1 @@ +export declare function mergeDeep(defaults: any, options: any): object; diff --git a/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts b/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts new file mode 100644 index 0000000..06927d6 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/omit.d.ts @@ -0,0 +1,5 @@ +export declare function omit(object: { + [key: string]: any; +}, keysToOmit: string[]): { + [key: string]: any; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts b/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts new file mode 100644 index 0000000..5d967ca --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/util/url-template.d.ts @@ -0,0 +1,3 @@ +export declare function parseUrl(template: string): { + expand: (context: object) => string; +}; diff --git a/node_modules/@octokit/endpoint/dist-types/version.d.ts b/node_modules/@octokit/endpoint/dist-types/version.d.ts new file mode 100644 index 0000000..809d28a --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "5.5.1"; diff --git a/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts b/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts new file mode 100644 index 0000000..6f5afd1 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointInterface, RequestParameters, EndpointDefaults } from "@octokit/types"; +export declare function withDefaults(oldDefaults: EndpointDefaults | null, newDefaults: RequestParameters): EndpointInterface; diff --git a/node_modules/@octokit/endpoint/dist-web/index.js b/node_modules/@octokit/endpoint/dist-web/index.js new file mode 100644 index 0000000..a327238 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-web/index.js @@ -0,0 +1,379 @@ +import isPlainObject from 'is-plain-object'; +import { getUserAgent } from 'universal-user-agent'; + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { [key]: options[key] }); + else + result[key] = mergeDeep(defaults[key], options[key]); + } + else { + Object.assign(result, { [key]: options[key] }); + } + }); + return result; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { method, url } : { url: method }, options); + } + else { + options = Object.assign({}, route); + } + // lowercase header names before merging with defaults to avoid duplicates + options.headers = lowercaseKeys(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + // mediaType.previews arrays are merged, instead of overwritten + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews + .filter(preview => !mergedOptions.mediaType.previews.includes(preview)) + .concat(mergedOptions.mediaType.previews); + } + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + if (names.length === 0) { + return url; + } + return (url + + separator + + names + .map(name => { + if (name === "q") { + return ("q=" + + parameters + .q.split("+") + .map(encodeURIComponent) + .join("+")); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }) + .join("&")); +} + +const urlVariableRegex = /\{[^}]+\}/g; +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object) + .filter(option => !keysToOmit.includes(option)) + .reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* istanbul ignore file */ +function encodeReserved(str) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part) + .replace(/%5B/g, "[") + .replace(/%5D/g, "]"); + } + return part; + }) + .join(""); +} +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return ("%" + + c + .charCodeAt(0) + .toString(16) + .toUpperCase()); + }); +} +function encodeValue(operator, value, key) { + value = + operator === "+" || operator === "#" + ? encodeReserved(value) + : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } + else { + return value; + } +} +function isDefined(value) { + return value !== undefined && value !== null; +} +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} +function getValues(context, operator, key, modifier) { + var value = context[key], result = []; + if (isDefined(value) && value !== "") { + if (typeof value === "string" || + typeof value === "number" || + typeof value === "boolean") { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } + else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } + else { + const tmp = []; + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } + else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } + else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } + else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } + else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } + else if (value === "") { + result.push(""); + } + } + return result; +} +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } + else if (operator !== "#") { + separator = operator; + } + return (values.length !== 0 ? operator : "") + values.join(separator); + } + else { + return values.join(","); + } + } + else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); + // replace :varname with {varname} to make it RFC 6570 compatible + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{+$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, [ + "method", + "baseUrl", + "url", + "headers", + "request", + "mediaType" + ]); + // extract variable names from URL to calculate remaining variables later + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + const omittedParameters = Object.keys(options) + .filter(option => urlVariableNames.includes(option)) + .concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequset = /application\/octet-stream/i.test(headers.accept); + if (!isBinaryRequset) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept + .split(/,/) + .map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)) + .join(","); + } + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader + .concat(options.mediaType.previews) + .map(preview => { + const format = options.mediaType.format + ? `.${options.mediaType.format}` + : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }) + .join(","); + } + } + // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } + else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } + else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } + else { + headers["content-length"] = 0; + } + } + } + // default content-type for JSON if body is set + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + // Only return body/request keys if present + return Object.assign({ method, url, headers }, typeof body !== "undefined" ? { body } : null, options.request ? { request: options.request } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "5.5.1"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`; +// DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +export { endpoint }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/endpoint/dist-web/index.js.map b/node_modules/@octokit/endpoint/dist-web/index.js.map new file mode 100644 index 0000000..6890009 --- /dev/null +++ b/node_modules/@octokit/endpoint/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/util/lowercase-keys.js","../dist-src/util/merge-deep.js","../dist-src/merge.js","../dist-src/util/add-query-parameters.js","../dist-src/util/extract-url-variable-names.js","../dist-src/util/omit.js","../dist-src/util/url-template.js","../dist-src/parse.js","../dist-src/endpoint-with-defaults.js","../dist-src/with-defaults.js","../dist-src/version.js","../dist-src/defaults.js","../dist-src/index.js"],"sourcesContent":["export function lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n","import isPlainObject from \"is-plain-object\";\nexport function mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject(options[key])) {\n if (!(key in defaults))\n Object.assign(result, { [key]: options[key] });\n else\n result[key] = mergeDeep(defaults[key], options[key]);\n }\n else {\n Object.assign(result, { [key]: options[key] });\n }\n });\n return result;\n}\n","import { lowercaseKeys } from \"./util/lowercase-keys\";\nimport { mergeDeep } from \"./util/merge-deep\";\nexport function merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? { method, url } : { url: method }, options);\n }\n else {\n options = Object.assign({}, route);\n }\n // lowercase header names before merging with defaults to avoid duplicates\n options.headers = lowercaseKeys(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options);\n // mediaType.previews arrays are merged, instead of overwritten\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews\n .filter(preview => !mergedOptions.mediaType.previews.includes(preview))\n .concat(mergedOptions.mediaType.previews);\n }\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map((preview) => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n","export function addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n if (names.length === 0) {\n return url;\n }\n return (url +\n separator +\n names\n .map(name => {\n if (name === \"q\") {\n return (\"q=\" +\n parameters\n .q.split(\"+\")\n .map(encodeURIComponent)\n .join(\"+\"));\n }\n return `${name}=${encodeURIComponent(parameters[name])}`;\n })\n .join(\"&\"));\n}\n","const urlVariableRegex = /\\{[^}]+\\}/g;\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\nexport function extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n if (!matches) {\n return [];\n }\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n","export function omit(object, keysToOmit) {\n return Object.keys(object)\n .filter(option => !keysToOmit.includes(option))\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n","// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str\n .split(/(%[0-9A-Fa-f]{2})/g)\n .map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part)\n .replace(/%5B/g, \"[\")\n .replace(/%5D/g, \"]\");\n }\n return part;\n })\n .join(\"\");\n}\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return (\"%\" +\n c\n .charCodeAt(0)\n .toString(16)\n .toUpperCase());\n });\n}\nfunction encodeValue(operator, value, key) {\n value =\n operator === \"+\" || operator === \"#\"\n ? encodeReserved(value)\n : encodeUnreserved(value);\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n }\n else {\n return value;\n }\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\nfunction getValues(context, operator, key, modifier) {\n var value = context[key], result = [];\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\") {\n value = value.toString();\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n }\n else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n }\n else {\n const tmp = [];\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n }\n else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n }\n else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n }\n else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n }\n else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n }\n else if (value === \"\") {\n result.push(\"\");\n }\n }\n return result;\n}\nexport function parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n if (operator && operator !== \"+\") {\n var separator = \",\";\n if (operator === \"?\") {\n separator = \"&\";\n }\n else if (operator !== \"#\") {\n separator = operator;\n }\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n }\n else {\n return values.join(\",\");\n }\n }\n else {\n return encodeReserved(literal);\n }\n });\n}\n","import { addQueryParameters } from \"./util/add-query-parameters\";\nimport { extractUrlVariableNames } from \"./util/extract-url-variable-names\";\nimport { omit } from \"./util/omit\";\nimport { parseUrl } from \"./util/url-template\";\nexport function parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase();\n // replace :varname with {varname} to make it RFC 6570 compatible\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{+$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"mediaType\"\n ]);\n // extract variable names from URL to calculate remaining variables later\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n const omittedParameters = Object.keys(options)\n .filter(option => urlVariableNames.includes(option))\n .concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequset = /application\\/octet-stream/i.test(headers.accept);\n if (!isBinaryRequset) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept\n .split(/,/)\n .map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`))\n .join(\",\");\n }\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader\n .concat(options.mediaType.previews)\n .map(preview => {\n const format = options.mediaType.format\n ? `.${options.mediaType.format}`\n : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n })\n .join(\",\");\n }\n }\n // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n }\n else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n }\n else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n }\n else {\n headers[\"content-length\"] = 0;\n }\n }\n }\n // default content-type for JSON if body is set\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n }\n // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n }\n // Only return body/request keys if present\n return Object.assign({ method, url, headers }, typeof body !== \"undefined\" ? { body } : null, options.request ? { request: options.request } : null);\n}\n","import { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n","import { endpointWithDefaults } from \"./endpoint-with-defaults\";\nimport { merge } from \"./merge\";\nimport { parse } from \"./parse\";\nexport function withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n","export const VERSION = \"5.5.1\";\n","import { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nconst userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;\n// DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\nexport const DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n","import { withDefaults } from \"./with-defaults\";\nimport { DEFAULTS } from \"./defaults\";\nexport const endpoint = withDefaults(null, DEFAULTS);\n"],"names":[],"mappings":";;;AAAO,SAAS,aAAa,CAAC,MAAM,EAAE;IAClC,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,EAAE,CAAC;KACb;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;QAC/C,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,MAAM,CAAC;KACjB,EAAE,EAAE,CAAC,CAAC;CACV;;ACPM,SAAS,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;QAChC,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;YAC7B,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC;gBAClB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;gBAE/C,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5D;aACI;YACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAClD;KACJ,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;CACjB;;ACbM,SAAS,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;KAC7E;SACI;QACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KACtC;;IAED,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;;IAEzD,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;QAChD,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ;aACzD,MAAM,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aACtE,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACjD;IACD,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;IACtH,OAAO,aAAa,CAAC;CACxB;;ACrBM,SAAS,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC;KACd;IACD,QAAQ,GAAG;QACP,SAAS;QACT,KAAK;aACA,GAAG,CAAC,IAAI,IAAI;YACb,IAAI,IAAI,KAAK,GAAG,EAAE;gBACd,QAAQ,IAAI;oBACR,UAAU;yBACL,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;yBACZ,GAAG,CAAC,kBAAkB,CAAC;yBACvB,IAAI,CAAC,GAAG,CAAC,EAAE;aACvB;YACD,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D,CAAC;aACG,IAAI,CAAC,GAAG,CAAC,EAAE;CACvB;;ACpBD,MAAM,gBAAgB,GAAG,YAAY,CAAC;AACtC,SAAS,cAAc,CAAC,YAAY,EAAE;IAClC,OAAO,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CAC5D;AACD,AAAO,SAAS,uBAAuB,CAAC,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,EAAE,CAAC;KACb;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACxE;;ACVM,SAAS,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACrB,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;QACtB,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;KACd,EAAE,EAAE,CAAC,CAAC;CACV;;ACPD;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,SAAS,cAAc,CAAC,GAAG,EAAE;IACzB,OAAO,GAAG;SACL,KAAK,CAAC,oBAAoB,CAAC;SAC3B,GAAG,CAAC,UAAU,IAAI,EAAE;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5B,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;iBACjB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC;KACf,CAAC;SACG,IAAI,CAAC,EAAE,CAAC,CAAC;CACjB;AACD,SAAS,gBAAgB,CAAC,GAAG,EAAE;IAC3B,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE;QAC5D,QAAQ,GAAG;YACP,CAAC;iBACI,UAAU,CAAC,CAAC,CAAC;iBACb,QAAQ,CAAC,EAAE,CAAC;iBACZ,WAAW,EAAE,EAAE;KAC3B,CAAC,CAAC;CACN;AACD,SAAS,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,KAAK;QACD,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG;cAC9B,cAAc,CAAC,KAAK,CAAC;cACrB,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,GAAG,EAAE;QACL,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;KAC9C;SACI;QACD,OAAO,KAAK,CAAC;KAChB;CACJ;AACD,SAAS,SAAS,CAAC,KAAK,EAAE;IACtB,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;CAChD;AACD,SAAS,aAAa,CAAC,QAAQ,EAAE;IAC7B,OAAO,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC;CACnE;AACD,SAAS,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;IACjD,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;IACtC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS,EAAE;YAC5B,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;gBAC9B,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;aACtD;YACD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;SACjF;aACI;YACD,IAAI,QAAQ,KAAK,GAAG,EAAE;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACtB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;wBAC7C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;qBACjF,CAAC,CAAC;iBACN;qBACI;oBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;wBACpC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BACrB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;yBACnD;qBACJ,CAAC,CAAC;iBACN;aACJ;iBACI;gBACD,MAAM,GAAG,GAAG,EAAE,CAAC;gBACf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACtB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;wBAC7C,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;qBAC1C,CAAC,CAAC;iBACN;qBACI;oBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;wBACpC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BACrB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9B,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;yBACxD;qBACJ,CAAC,CAAC;iBACN;gBACD,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;oBACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC5D;qBACI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9B;aACJ;SACJ;KACJ;SACI;QACD,IAAI,QAAQ,KAAK,GAAG,EAAE;YAClB,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;aACtC;SACJ;aACI,IAAI,KAAK,KAAK,EAAE,KAAK,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE;YAC7D,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;SAC5C;aACI,IAAI,KAAK,KAAK,EAAE,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnB;KACJ;IACD,OAAO,MAAM,CAAC;CACjB;AACD,AAAO,SAAS,QAAQ,CAAC,QAAQ,EAAE;IAC/B,OAAO;QACH,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;KACtC,CAAC;CACL;AACD,SAAS,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;IAC/B,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC,OAAO,CAAC,4BAA4B,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;QACpF,IAAI,UAAU,EAAE;YACZ,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,EAAE,CAAC;YAClB,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChD,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAChC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACrC;YACD,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;gBAC/C,IAAI,GAAG,GAAG,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACvE,CAAC,CAAC;YACH,IAAI,QAAQ,IAAI,QAAQ,KAAK,GAAG,EAAE;gBAC9B,IAAI,SAAS,GAAG,GAAG,CAAC;gBACpB,IAAI,QAAQ,KAAK,GAAG,EAAE;oBAClB,SAAS,GAAG,GAAG,CAAC;iBACnB;qBACI,IAAI,QAAQ,KAAK,GAAG,EAAE;oBACvB,SAAS,GAAG,QAAQ,CAAC;iBACxB;gBACD,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACzE;iBACI;gBACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC3B;SACJ;aACI;YACD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;SAClC;KACJ,CAAC,CAAC;CACN;;ACrKM,SAAS,KAAK,CAAC,OAAO,EAAE;;IAE3B,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;;IAE1C,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,IAAI,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC;IACT,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE;QAC3B,QAAQ;QACR,SAAS;QACT,KAAK;QACL,SAAS;QACT,SAAS;QACT,WAAW;KACd,CAAC,CAAC;;IAEH,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACtD,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACpB,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC;KAC/B;IACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SACzC,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACnD,MAAM,CAAC,SAAS,CAAC,CAAC;IACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,eAAe,EAAE;QAClB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE;;YAE1B,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;iBAC1B,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,kDAAkD,EAAE,CAAC,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACtI,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QACD,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE;YACnC,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YACnF,OAAO,CAAC,MAAM,GAAG,wBAAwB;iBACpC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;iBAClC,GAAG,CAAC,OAAO,IAAI;gBAChB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM;sBACjC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;sBAC9B,OAAO,CAAC;gBACd,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;aAC/D,CAAC;iBACG,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;KACJ;;;IAGD,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAClC,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;KACtD;SACI;QACD,IAAI,MAAM,IAAI,mBAAmB,EAAE;YAC/B,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;SACnC;aACI;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE;gBACzC,IAAI,GAAG,mBAAmB,CAAC;aAC9B;iBACI;gBACD,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;aACjC;SACJ;KACJ;;IAED,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QACzD,OAAO,CAAC,cAAc,CAAC,GAAG,iCAAiC,CAAC;KAC/D;;;IAGD,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAClE,IAAI,GAAG,EAAE,CAAC;KACb;;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,IAAI,KAAK,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;CACxJ;;AC9EM,SAAS,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;IAC3D,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD;;ACDM,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QAC3B,QAAQ;QACR,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC3C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;QACjC,KAAK;KACR,CAAC,CAAC;CACN;;ACZM,MAAM,OAAO,GAAG,mBAAmB,CAAC;;ACE3C,MAAM,SAAS,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;;;AAGrE,AAAO,MAAM,QAAQ,GAAG;IACpB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,wBAAwB;IACjC,OAAO,EAAE;QACL,MAAM,EAAE,gCAAgC;QACxC,YAAY,EAAE,SAAS;KAC1B;IACD,SAAS,EAAE;QACP,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;KACf;CACJ,CAAC;;ACdU,MAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE b/node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE new file mode 100644 index 0000000..3f2eca1 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/is-plain-object/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md b/node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md new file mode 100644 index 0000000..60b7b59 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/is-plain-object/README.md @@ -0,0 +1,119 @@ +# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object) + +> Returns true if an object was created by the `Object` constructor. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-plain-object +``` + +Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null. + +## Usage + +```js +import isPlainObject from 'is-plain-object'; +``` + +**true** when created by the `Object` constructor. + +```js +isPlainObject(Object.create({})); +//=> true +isPlainObject(Object.create(Object.prototype)); +//=> true +isPlainObject({foo: 'bar'}); +//=> true +isPlainObject({}); +//=> true +``` + +**false** when not created by the `Object` constructor. + +```js +isPlainObject(1); +//=> false +isPlainObject(['foo', 'bar']); +//=> false +isPlainObject([]); +//=> false +isPlainObject(new Foo); +//=> false +isPlainObject(null); +//=> false +isPlainObject(Object.create(null)); +//=> false +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 19 | [jonschlinkert](https://github.com/jonschlinkert) | +| 6 | [TrySound](https://github.com/TrySound) | +| 6 | [stevenvachon](https://github.com/stevenvachon) | +| 3 | [onokumus](https://github.com/onokumus) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ \ No newline at end of file diff --git a/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.cjs.js b/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.cjs.js new file mode 100644 index 0000000..d7dda95 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.cjs.js @@ -0,0 +1,48 @@ +'use strict'; + +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +} + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObjectObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; + + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +module.exports = isPlainObject; diff --git a/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.d.ts b/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.d.ts new file mode 100644 index 0000000..fd131f0 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.d.ts @@ -0,0 +1,3 @@ +declare function isPlainObject(o: any): boolean; + +export default isPlainObject; diff --git a/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.js b/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.js new file mode 100644 index 0000000..565ce9e --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/is-plain-object/index.js @@ -0,0 +1,35 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +import isObject from 'isobject'; + +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; +} + +export default function isPlainObject(o) { + var ctor,prot; + + if (isObjectObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; + + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +}; diff --git a/node_modules/@octokit/endpoint/node_modules/is-plain-object/package.json b/node_modules/@octokit/endpoint/node_modules/is-plain-object/package.json new file mode 100644 index 0000000..fd2e3a5 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/is-plain-object/package.json @@ -0,0 +1,82 @@ +{ + "name": "is-plain-object", + "description": "Returns true if an object was created by the `Object` constructor.", + "version": "3.0.0", + "homepage": "https://github.com/jonschlinkert/is-plain-object", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Osman Nuri Okumuş (http://onokumus.com)", + "Steven Vachon (https://svachon.com)", + "(https://github.com/wtgtybhertgeghgtwtg)" + ], + "repository": "jonschlinkert/is-plain-object", + "bugs": { + "url": "https://github.com/jonschlinkert/is-plain-object/issues" + }, + "license": "MIT", + "main": "index.cjs.js", + "module": "index.js", + "types": "index.d.ts", + "files": [ + "index.d.ts", + "index.js", + "index.cjs.js" + ], + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "build": "rollup -c", + "test_browser": "mocha-headless-chrome --args=disable-web-security -f test/browser.html", + "test_node": "mocha -r esm", + "test": "npm run test_node && npm run build && npm run test_browser", + "prepare": "rollup -c" + }, + "dependencies": { + "isobject": "^4.0.0" + }, + "devDependencies": { + "chai": "^4.2.0", + "esm": "^3.2.22", + "gulp-format-md": "^1.0.0", + "mocha": "^6.1.4", + "mocha-headless-chrome": "^2.0.2", + "rollup": "^1.10.1", + "rollup-plugin-node-resolve": "^4.2.3" + }, + "keywords": [ + "check", + "is", + "is-object", + "isobject", + "javascript", + "kind", + "kind-of", + "object", + "plain", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "is-number", + "isobject", + "kind-of" + ] + }, + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/@octokit/endpoint/node_modules/isobject/LICENSE b/node_modules/@octokit/endpoint/node_modules/isobject/LICENSE new file mode 100644 index 0000000..943e71d --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/isobject/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/@octokit/endpoint/node_modules/isobject/README.md b/node_modules/@octokit/endpoint/node_modules/isobject/README.md new file mode 100644 index 0000000..1c6e21f --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/isobject/README.md @@ -0,0 +1,127 @@ +# isobject [![NPM version](https://img.shields.io/npm/v/isobject.svg?style=flat)](https://www.npmjs.com/package/isobject) [![NPM monthly downloads](https://img.shields.io/npm/dm/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![NPM total downloads](https://img.shields.io/npm/dt/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/isobject.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/isobject) + +> Returns true if the value is an object and not an array or null. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save isobject +``` + +Use [is-plain-object](https://github.com/jonschlinkert/is-plain-object) if you want only objects that are created by the `Object` constructor. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install isobject +``` + +## Usage + +```js +import isObject from 'isobject'; +``` + +**True** + +All of the following return `true`: + +```js +isObject({}); +isObject(Object.create({})); +isObject(Object.create(Object.prototype)); +isObject(Object.create(null)); +isObject({}); +isObject(new Foo); +isObject(/foo/); +``` + +**False** + +All of the following return `false`: + +```js +isObject(); +isObject(function () {}); +isObject(1); +isObject([]); +isObject(undefined); +isObject(null); +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.") +* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") +* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 30 | [jonschlinkert](https://github.com/jonschlinkert) | +| 8 | [doowb](https://github.com/doowb) | +| 7 | [TrySound](https://github.com/TrySound) | +| 3 | [onokumus](https://github.com/onokumus) | +| 1 | [LeSuisse](https://github.com/LeSuisse) | +| 1 | [tmcw](https://github.com/tmcw) | +| 1 | [ZhouHansen](https://github.com/ZhouHansen) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ \ No newline at end of file diff --git a/node_modules/@octokit/endpoint/node_modules/isobject/index.cjs.js b/node_modules/@octokit/endpoint/node_modules/isobject/index.cjs.js new file mode 100644 index 0000000..49debe7 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/isobject/index.cjs.js @@ -0,0 +1,14 @@ +'use strict'; + +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +} + +module.exports = isObject; diff --git a/node_modules/@octokit/endpoint/node_modules/isobject/index.d.ts b/node_modules/@octokit/endpoint/node_modules/isobject/index.d.ts new file mode 100644 index 0000000..c471c71 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/isobject/index.d.ts @@ -0,0 +1,3 @@ +declare function isObject(val: any): boolean; + +export default isObject; diff --git a/node_modules/@octokit/endpoint/node_modules/isobject/index.js b/node_modules/@octokit/endpoint/node_modules/isobject/index.js new file mode 100644 index 0000000..e9f0382 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/isobject/index.js @@ -0,0 +1,10 @@ +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +export default function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +}; diff --git a/node_modules/@octokit/endpoint/node_modules/isobject/package.json b/node_modules/@octokit/endpoint/node_modules/isobject/package.json new file mode 100644 index 0000000..c5683e8 --- /dev/null +++ b/node_modules/@octokit/endpoint/node_modules/isobject/package.json @@ -0,0 +1,80 @@ +{ + "name": "isobject", + "description": "Returns true if the value is an object and not an array or null.", + "version": "4.0.0", + "homepage": "https://github.com/jonschlinkert/isobject", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "(https://github.com/LeSuisse)", + "Brian Woodward (https://twitter.com/doowb)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Magnús Dæhlen (https://github.com/magnudae)", + "Tom MacWright (https://macwright.org)" + ], + "repository": "jonschlinkert/isobject", + "bugs": { + "url": "https://github.com/jonschlinkert/isobject/issues" + }, + "license": "MIT", + "files": [ + "index.d.ts", + "index.cjs.js", + "index.js" + ], + "main": "index.cjs.js", + "module": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "build": "rollup -i index.js -o index.cjs.js -f cjs", + "test": "mocha -r esm", + "prepublish": "npm run build" + }, + "dependencies": {}, + "devDependencies": { + "esm": "^3.2.22", + "gulp-format-md": "^0.1.9", + "mocha": "^2.4.5", + "rollup": "^1.10.1" + }, + "keywords": [ + "check", + "is", + "is-object", + "isobject", + "kind", + "kind-of", + "kindof", + "native", + "object", + "type", + "typeof", + "value" + ], + "types": "index.d.ts", + "verb": { + "related": { + "list": [ + "extend-shallow", + "is-plain-object", + "kind-of", + "merge-deep" + ] + }, + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "reflinks": [ + "verb" + ] + } +} diff --git a/node_modules/@octokit/endpoint/package.json b/node_modules/@octokit/endpoint/package.json new file mode 100644 index 0000000..eed8745 --- /dev/null +++ b/node_modules/@octokit/endpoint/package.json @@ -0,0 +1,51 @@ +{ + "name": "@octokit/endpoint", + "description": "Turns REST API endpoints into generic request options", + "version": "5.5.1", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "rest" + ], + "homepage": "https://github.com/octokit/endpoint.js#readme", + "bugs": { + "url": "https://github.com/octokit/endpoint.js/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/octokit/endpoint.js.git" + }, + "dependencies": { + "@octokit/types": "^2.0.0", + "is-plain-object": "^3.0.0", + "universal-user-agent": "^4.0.0" + }, + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.7.0", + "@pika/plugin-build-web": "^0.7.0", + "@pika/plugin-ts-standard-pkg": "^0.7.0", + "@types/jest": "^24.0.11", + "jest": "^24.7.1", + "prettier": "1.18.2", + "semantic-release": "^15.13.8", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^24.0.2", + "typescript": "^3.4.5" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "deno": "dist-web/index.js" +} diff --git a/node_modules/@octokit/graphql/LICENSE b/node_modules/@octokit/graphql/LICENSE new file mode 100644 index 0000000..af5366d --- /dev/null +++ b/node_modules/@octokit/graphql/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/graphql/README.md b/node_modules/@octokit/graphql/README.md new file mode 100644 index 0000000..dd797d9 --- /dev/null +++ b/node_modules/@octokit/graphql/README.md @@ -0,0 +1,380 @@ +# graphql.js + +> GitHub GraphQL API client for browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/graphql.svg)](https://www.npmjs.com/package/@octokit/graphql) +[![Build Status](https://travis-ci.com/octokit/graphql.js.svg?branch=master)](https://travis-ci.com/octokit/graphql.js) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/graphql.js.svg)](https://greenkeeper.io/) + + + +- [Usage](#usage) + - [Send a simple query](#send-a-simple-query) + - [Authentication](#authentication) + - [Variables](#variables) + - [Pass query together with headers and variables](#pass-query-together-with-headers-and-variables) + - [Use your own `@octokit/request` instance](#) +- [Errors](#errors) +- [Partial responses](#partial-responses) +- [Writing tests](#writing-tests) +- [License](#license) + + + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/graphql` directly from [cdn.pika.dev](https://cdn.pika.dev) + +```html + +``` + +
+Node + + +Install with npm install @octokit/graphql + +```js +const { graphql } = require("@octokit/graphql"); +// or: import { graphql } from "@octokit/graphql"; +``` + +
+ +### Send a simple query + +```js +const { repository } = await graphql( + ` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } + `, + { + headers: { + authorization: `token secret123` + } + } +); +``` + +### Authentication + +The simplest way to authenticate a request is to set the `Authorization` header, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const graphqlWithAuth = graphql.defaults({ + headers: { + authorization: `token secret123` + } +}); +const { repository } = await graphqlWithAuth(` + { + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + id: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123 +}); +const graphqlWithAuth = graphql.defaults({ + request: { + hook: auth.hook + } +}); + +const { repository } = await graphqlWithAuth( + `{ + repository(owner: "octokit", name: "graphql.js") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + }` +); +``` + +### Variables + +⚠️ Do not use [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) in the query strings as they make your code vulnerable to query injection attacks (see [#2](https://github.com/octokit/graphql.js/issues/2)). Use variables instead: + +```js +const { lastIssues } = await graphql(`query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner:$owner, name:$repo) { + issues(last:$num) { + edges { + node { + title + } + } + } + } + }`, { + owner: 'octokit', + repo: 'graphql.js' + headers: { + authorization: `token secret123` + } + } +}) +``` + +### Pass query together with headers and variables + +```js +const { graphql } = require('@octokit/graphql') +const { lastIssues } = await graphql({ + query: `query lastIssues($owner: String!, $repo: String!, $num: Int = 3) { + repository(owner:$owner, name:$repo) { + issues(last:$num) { + edges { + node { + title + } + } + } + } + }`, + owner: 'octokit', + repo: 'graphql.js' + headers: { + authorization: `token secret123` + } +}) +``` + +### Use with GitHub Enterprise + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api", + headers: { + authorization: `token secret123` + } +}); +const { repository } = await graphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +``` + +### Use custom `@octokit/request` instance + +```js +const { request } = require("@octokit/request"); +const { withCustomRequest } = require("@octokit/graphql"); + +let requestCounter = 0 +const myRequest = request.defaults({ + headers: { + authentication: 'token secret123' + }, + request: { + hook(request, options) { + requestCounter++ + return request(options) + } + } +}) +const myGraphql = withCustomRequest(myRequest) +await request('/') +await myGraphql(` + { + repository(owner: "acme-project", name: "acme-repo") { + issues(last: 3) { + edges { + node { + title + } + } + } + } + } +`); +// requestCounter is now 2 +``` + +## Errors + +In case of a GraphQL error, `error.message` is set to the first error from the response’s `errors` array. All errors can be accessed at `error.errors`. `error.request` has the request options such as query, variables and headers set for easier debugging. + +```js +let { graphql } = require("@octokit/graphql"); +graphqlt = graphql.defaults({ + headers: { + authorization: `token secret123` + } +}); +const query = `{ + viewer { + bioHtml + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + // server responds with + // { + // "data": null, + // "errors": [{ + // "message": "Field 'bioHtml' doesn't exist on type 'User'", + // "locations": [{ + // "line": 3, + // "column": 5 + // }] + // }] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // Field 'bioHtml' doesn't exist on type 'User' +} +``` + +## Partial responses + +A GraphQL query may respond with partial data accompanied by errors. In this case we will throw an error but the partial data will still be accessible through `error.data` + +```js +let { graphql } = require("@octokit/graphql"); +graphql = graphql.defaults({ + headers: { + authorization: `token secret123` + } +}); +const query = `{ + repository(name: "probot", owner: "probot") { + name + ref(qualifiedName: "master") { + target { + ... on Commit { + history(first: 25, after: "invalid cursor") { + nodes { + message + } + } + } + } + } + } +}`; + +try { + const result = await graphql(query); +} catch (error) { + // server responds with + // { + // "data": { + // "repository": { + // "name": "probot", + // "ref": null + // } + // }, + // "errors": [ + // { + // "type": "INVALID_CURSOR_ARGUMENTS", + // "path": [ + // "repository", + // "ref", + // "target", + // "history" + // ], + // "locations": [ + // { + // "line": 7, + // "column": 11 + // } + // ], + // "message": "`invalid cursor` does not appear to be a valid cursor." + // } + // ] + // } + + console.log("Request failed:", error.request); // { query, variables: {}, headers: { authorization: 'token secret123' } } + console.log(error.message); // `invalid cursor` does not appear to be a valid cursor. + console.log(error.data); // { repository: { name: 'probot', ref: null } } +} +``` + +## Writing tests + +You can pass a replacement for [the built-in fetch implementation](https://github.com/bitinn/node-fetch) as `request.fetch` option. For example, using [fetch-mock](http://www.wheresrhys.co.uk/fetch-mock/) works great to write tests + +```js +const assert = require("assert"); +const fetchMock = require("fetch-mock/es5/server"); + +const { graphql } = require("@octokit/graphql"); + +graphql("{ viewer { login } }", { + headers: { + authorization: "token secret123" + }, + request: { + fetch: fetchMock + .sandbox() + .post("https://api.github.com/graphql", (url, options) => { + assert.strictEqual(options.headers.authorization, "token secret123"); + assert.strictEqual( + options.body, + '{"query":"{ viewer { login } }"}', + "Sends correct query" + ); + return { data: {} }; + }) + } +}); +``` + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/graphql/dist-node/index.js b/node_modules/@octokit/graphql/dist-node/index.js new file mode 100644 index 0000000..48bb799 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-node/index.js @@ -0,0 +1,85 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var request = require('@octokit/request'); +var universalUserAgent = require('universal-user-agent'); + +const VERSION = "4.3.1"; + +class GraphqlError extends Error { + constructor(request, response) { + const message = response.data.errors[0].message; + super(message); + Object.assign(this, response.data); + this.name = "GraphqlError"; + this.request = request; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query"]; +function graphql(request, query, options) { + options = typeof query === "string" ? options = Object.assign({ + query + }, options) : options = query; + const requestOptions = Object.keys(options).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = options[key]; + return result; + } + + if (!result.variables) { + result.variables = {}; + } + + result.variables[key] = options[key]; + return result; + }, {}); + return request(requestOptions).then(response => { + if (response.data.errors) { + throw new GraphqlError(requestOptions, { + data: response.data + }); + } + + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/graphql/dist-node/index.js.map b/node_modules/@octokit/graphql/dist-node/index.js.map new file mode 100644 index 0000000..0e967f9 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/error.js","../dist-src/graphql.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"4.3.1\";\n","export class GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n this.name = \"GraphqlError\";\n this.request = request;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n","import { GraphqlError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\"\n];\nexport function graphql(request, query, options) {\n options =\n typeof query === \"string\"\n ? (options = Object.assign({ query }, options))\n : (options = query);\n const requestOptions = Object.keys(options).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = options[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = options[key];\n return result;\n }, {});\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n throw new GraphqlError(requestOptions, {\n data: response.data\n });\n }\n return response.data.data;\n });\n}\n","import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint\n });\n}\n","import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n"],"names":["VERSION","GraphqlError","Error","constructor","request","response","message","data","errors","Object","assign","name","captureStackTrace","NON_VARIABLE_OPTIONS","graphql","query","options","requestOptions","keys","reduce","result","key","includes","variables","then","withDefaults","newDefaults","newRequest","defaults","newApi","bind","endpoint","Request","headers","getUserAgent","method","url","withCustomRequest","customRequest"],"mappings":";;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAA,MAAMC,YAAN,SAA2BC,KAA3B,CAAiC;EACpCC,WAAW,CAACC,OAAD,EAAUC,QAAV,EAAoB;UACrBC,OAAO,GAAGD,QAAQ,CAACE,IAAT,CAAcC,MAAd,CAAqB,CAArB,EAAwBF,OAAxC;UACMA,OAAN;IACAG,MAAM,CAACC,MAAP,CAAc,IAAd,EAAoBL,QAAQ,CAACE,IAA7B;SACKI,IAAL,GAAY,cAAZ;SACKP,OAAL,GAAeA,OAAf,CAL2B;;;;QAQvBF,KAAK,CAACU,iBAAV,EAA6B;MACzBV,KAAK,CAACU,iBAAN,CAAwB,IAAxB,EAA8B,KAAKT,WAAnC;;;;;;ACTZ,MAAMU,oBAAoB,GAAG,CACzB,QADyB,EAEzB,SAFyB,EAGzB,KAHyB,EAIzB,SAJyB,EAKzB,SALyB,EAMzB,OANyB,CAA7B;AAQA,AAAO,SAASC,OAAT,CAAiBV,OAAjB,EAA0BW,KAA1B,EAAiCC,OAAjC,EAA0C;EAC7CA,OAAO,GACH,OAAOD,KAAP,KAAiB,QAAjB,GACOC,OAAO,GAAGP,MAAM,CAACC,MAAP,CAAc;IAAEK;GAAhB,EAAyBC,OAAzB,CADjB,GAEOA,OAAO,GAAGD,KAHrB;QAIME,cAAc,GAAGR,MAAM,CAACS,IAAP,CAAYF,OAAZ,EAAqBG,MAArB,CAA4B,CAACC,MAAD,EAASC,GAAT,KAAiB;QAC5DR,oBAAoB,CAACS,QAArB,CAA8BD,GAA9B,CAAJ,EAAwC;MACpCD,MAAM,CAACC,GAAD,CAAN,GAAcL,OAAO,CAACK,GAAD,CAArB;aACOD,MAAP;;;QAEA,CAACA,MAAM,CAACG,SAAZ,EAAuB;MACnBH,MAAM,CAACG,SAAP,GAAmB,EAAnB;;;IAEJH,MAAM,CAACG,SAAP,CAAiBF,GAAjB,IAAwBL,OAAO,CAACK,GAAD,CAA/B;WACOD,MAAP;GATmB,EAUpB,EAVoB,CAAvB;SAWOhB,OAAO,CAACa,cAAD,CAAP,CAAwBO,IAAxB,CAA6BnB,QAAQ,IAAI;QACxCA,QAAQ,CAACE,IAAT,CAAcC,MAAlB,EAA0B;YAChB,IAAIP,YAAJ,CAAiBgB,cAAjB,EAAiC;QACnCV,IAAI,EAAEF,QAAQ,CAACE;OADb,CAAN;;;WAIGF,QAAQ,CAACE,IAAT,CAAcA,IAArB;GANG,CAAP;;;ACvBG,SAASkB,YAAT,CAAsBrB,SAAtB,EAA+BsB,WAA/B,EAA4C;QACzCC,UAAU,GAAGvB,SAAO,CAACwB,QAAR,CAAiBF,WAAjB,CAAnB;;QACMG,MAAM,GAAG,CAACd,KAAD,EAAQC,OAAR,KAAoB;WACxBF,OAAO,CAACa,UAAD,EAAaZ,KAAb,EAAoBC,OAApB,CAAd;GADJ;;SAGOP,MAAM,CAACC,MAAP,CAAcmB,MAAd,EAAsB;IACzBD,QAAQ,EAAEH,YAAY,CAACK,IAAb,CAAkB,IAAlB,EAAwBH,UAAxB,CADe;IAEzBI,QAAQ,EAAEC,eAAO,CAACD;GAFf,CAAP;;;MCHSjB,SAAO,GAAGW,YAAY,CAACrB,eAAD,EAAU;EACzC6B,OAAO,EAAE;kBACU,sBAAqBjC,OAAQ,IAAGkC,+BAAY,EAAG;GAFzB;EAIzCC,MAAM,EAAE,MAJiC;EAKzCC,GAAG,EAAE;CAL0B,CAA5B;AAOP,AAAO,SAASC,iBAAT,CAA2BC,aAA3B,EAA0C;SACtCb,YAAY,CAACa,aAAD,EAAgB;IAC/BH,MAAM,EAAE,MADuB;IAE/BC,GAAG,EAAE;GAFU,CAAnB;;;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/graphql/dist-src/error.js b/node_modules/@octokit/graphql/dist-src/error.js new file mode 100644 index 0000000..7662b91 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/error.js @@ -0,0 +1,14 @@ +export class GraphqlError extends Error { + constructor(request, response) { + const message = response.data.errors[0].message; + super(message); + Object.assign(this, response.data); + this.name = "GraphqlError"; + this.request = request; + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} diff --git a/node_modules/@octokit/graphql/dist-src/graphql.js b/node_modules/@octokit/graphql/dist-src/graphql.js new file mode 100644 index 0000000..ea20a54 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/graphql.js @@ -0,0 +1,34 @@ +import { GraphqlError } from "./error"; +const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query" +]; +export function graphql(request, query, options) { + options = + typeof query === "string" + ? (options = Object.assign({ query }, options)) + : (options = query); + const requestOptions = Object.keys(options).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = options[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = options[key]; + return result; + }, {}); + return request(requestOptions).then(response => { + if (response.data.errors) { + throw new GraphqlError(requestOptions, { + data: response.data + }); + } + return response.data.data; + }); +} diff --git a/node_modules/@octokit/graphql/dist-src/index.js b/node_modules/@octokit/graphql/dist-src/index.js new file mode 100644 index 0000000..5b01f2c --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/index.js @@ -0,0 +1,17 @@ +import { request } from "@octokit/request"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +import { withDefaults } from "./with-defaults"; +export const graphql = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +export function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} diff --git a/node_modules/@octokit/graphql/dist-src/types.js b/node_modules/@octokit/graphql/dist-src/types.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/graphql/dist-src/version.js b/node_modules/@octokit/graphql/dist-src/version.js new file mode 100644 index 0000000..c51216a --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "4.3.1"; diff --git a/node_modules/@octokit/graphql/dist-src/with-defaults.js b/node_modules/@octokit/graphql/dist-src/with-defaults.js new file mode 100644 index 0000000..3a5b451 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-src/with-defaults.js @@ -0,0 +1,12 @@ +import { request as Request } from "@octokit/request"; +import { graphql } from "./graphql"; +export function withDefaults(request, newDefaults) { + const newRequest = request.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: Request.endpoint + }); +} diff --git a/node_modules/@octokit/graphql/dist-types/error.d.ts b/node_modules/@octokit/graphql/dist-types/error.d.ts new file mode 100644 index 0000000..692dc67 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/error.d.ts @@ -0,0 +1,7 @@ +import { EndpointOptions, GraphQlQueryResponse } from "./types"; +export declare class GraphqlError extends Error { + request: EndpointOptions; + constructor(request: EndpointOptions, response: { + data: Required; + }); +} diff --git a/node_modules/@octokit/graphql/dist-types/graphql.d.ts b/node_modules/@octokit/graphql/dist-types/graphql.d.ts new file mode 100644 index 0000000..47c5800 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/graphql.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import { RequestParameters, GraphQlQueryResponseData } from "./types"; +export declare function graphql(request: typeof Request, query: string | RequestParameters, options?: RequestParameters): Promise; diff --git a/node_modules/@octokit/graphql/dist-types/index.d.ts b/node_modules/@octokit/graphql/dist-types/index.d.ts new file mode 100644 index 0000000..1878fd4 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/index.d.ts @@ -0,0 +1,3 @@ +import { request } from "@octokit/request"; +export declare const graphql: import("./types").graphql; +export declare function withCustomRequest(customRequest: typeof request): import("./types").graphql; diff --git a/node_modules/@octokit/graphql/dist-types/types.d.ts b/node_modules/@octokit/graphql/dist-types/types.d.ts new file mode 100644 index 0000000..2bf164b --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/types.d.ts @@ -0,0 +1,47 @@ +import * as OctokitTypes from "@octokit/types"; +import { graphql } from "./graphql"; +export declare type EndpointOptions = OctokitTypes.EndpointOptions; +export declare type RequestParameters = OctokitTypes.RequestParameters; +export declare type Query = string; +export interface graphql { + /** + * Sends a GraphQL query request based on endpoint options + * The GraphQL query must be specified in `options`. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: OctokitTypes.RequestParameters): GraphQlResponse; + /** + * Sends a GraphQL query request based on endpoint options + * + * @param {string} query GraphQL query. Example: `'query { viewer { login } }'`. + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (query: Query, parameters?: OctokitTypes.RequestParameters): GraphQlResponse; + /** + * Returns a new `endpoint` with updated route and parameters + */ + defaults: (newDefaults: OctokitTypes.RequestParameters) => graphql; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: OctokitTypes.EndpointInterface; +} +export declare type GraphQlResponse = ReturnType; +export declare type GraphQlQueryResponseData = { + [key: string]: any; +} | null; +export declare type GraphQlQueryResponse = { + data: GraphQlQueryResponseData; + errors?: [{ + message: string; + path: [string]; + extensions: { + [key: string]: any; + }; + locations: [{ + line: number; + column: number; + }]; + }]; +}; diff --git a/node_modules/@octokit/graphql/dist-types/version.d.ts b/node_modules/@octokit/graphql/dist-types/version.d.ts new file mode 100644 index 0000000..cd3ef1e --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "4.3.1"; diff --git a/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts b/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts new file mode 100644 index 0000000..03edc32 --- /dev/null +++ b/node_modules/@octokit/graphql/dist-types/with-defaults.d.ts @@ -0,0 +1,3 @@ +import { request as Request } from "@octokit/request"; +import { graphql as ApiInterface, RequestParameters } from "./types"; +export declare function withDefaults(request: typeof Request, newDefaults: RequestParameters): ApiInterface; diff --git a/node_modules/@octokit/graphql/dist-web/index.js b/node_modules/@octokit/graphql/dist-web/index.js new file mode 100644 index 0000000..d4d8c4f --- /dev/null +++ b/node_modules/@octokit/graphql/dist-web/index.js @@ -0,0 +1,81 @@ +import { request } from '@octokit/request'; +import { getUserAgent } from 'universal-user-agent'; + +const VERSION = "4.3.1"; + +class GraphqlError extends Error { + constructor(request, response) { + const message = response.data.errors[0].message; + super(message); + Object.assign(this, response.data); + this.name = "GraphqlError"; + this.request = request; + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } +} + +const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query" +]; +function graphql(request, query, options) { + options = + typeof query === "string" + ? (options = Object.assign({ query }, options)) + : (options = query); + const requestOptions = Object.keys(options).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = options[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = options[key]; + return result; + }, {}); + return request(requestOptions).then(response => { + if (response.data.errors) { + throw new GraphqlError(requestOptions, { + data: response.data + }); + } + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.endpoint + }); +} + +const graphql$1 = withDefaults(request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +export { graphql$1 as graphql, withCustomRequest }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/graphql/dist-web/index.js.map b/node_modules/@octokit/graphql/dist-web/index.js.map new file mode 100644 index 0000000..efa902e --- /dev/null +++ b/node_modules/@octokit/graphql/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/error.js","../dist-src/graphql.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"4.3.1\";\n","export class GraphqlError extends Error {\n constructor(request, response) {\n const message = response.data.errors[0].message;\n super(message);\n Object.assign(this, response.data);\n this.name = \"GraphqlError\";\n this.request = request;\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n","import { GraphqlError } from \"./error\";\nconst NON_VARIABLE_OPTIONS = [\n \"method\",\n \"baseUrl\",\n \"url\",\n \"headers\",\n \"request\",\n \"query\"\n];\nexport function graphql(request, query, options) {\n options =\n typeof query === \"string\"\n ? (options = Object.assign({ query }, options))\n : (options = query);\n const requestOptions = Object.keys(options).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = options[key];\n return result;\n }\n if (!result.variables) {\n result.variables = {};\n }\n result.variables[key] = options[key];\n return result;\n }, {});\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n throw new GraphqlError(requestOptions, {\n data: response.data\n });\n }\n return response.data.data;\n });\n}\n","import { request as Request } from \"@octokit/request\";\nimport { graphql } from \"./graphql\";\nexport function withDefaults(request, newDefaults) {\n const newRequest = request.defaults(newDefaults);\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: Request.endpoint\n });\n}\n","import { request } from \"@octokit/request\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport { withDefaults } from \"./with-defaults\";\nexport const graphql = withDefaults(request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nexport function withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n"],"names":["request","Request","graphql"],"mappings":";;;AAAO,MAAM,OAAO,GAAG,mBAAmB,CAAC;;ACApC,MAAM,YAAY,SAAS,KAAK,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;;QAGvB,IAAI,KAAK,CAAC,iBAAiB,EAAE;YACzB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACnD;KACJ;CACJ;;ACZD,MAAM,oBAAoB,GAAG;IACzB,QAAQ;IACR,SAAS;IACT,KAAK;IACL,SAAS;IACT,SAAS;IACT,OAAO;CACV,CAAC;AACF,AAAO,SAAS,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAC7C,OAAO;QACH,OAAO,KAAK,KAAK,QAAQ;eAClB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC;eAC3C,OAAO,GAAG,KAAK,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;QAChE,IAAI,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACpC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC;SACjB;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;SACzB;QACD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;KACjB,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI;QAC5C,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE;gBACnC,IAAI,EAAE,QAAQ,CAAC,IAAI;aACtB,CAAC,CAAC;SACN;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;KAC7B,CAAC,CAAC;CACN;;AC/BM,SAAS,YAAY,CAACA,SAAO,EAAE,WAAW,EAAE;IAC/C,MAAM,UAAU,GAAGA,SAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;QAC/B,OAAO,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;KAC9C,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;QAC7C,QAAQ,EAAEC,OAAO,CAAC,QAAQ;KAC7B,CAAC,CAAC;CACN;;ACPW,MAACC,SAAO,GAAG,YAAY,CAAC,OAAO,EAAE;IACzC,OAAO,EAAE;QACL,YAAY,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAClE;IACD,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,UAAU;CAClB,CAAC,CAAC;AACH,AAAO,SAAS,iBAAiB,CAAC,aAAa,EAAE;IAC7C,OAAO,YAAY,CAAC,aAAa,EAAE;QAC/B,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,UAAU;KAClB,CAAC,CAAC;CACN;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/graphql/package.json b/node_modules/@octokit/graphql/package.json new file mode 100644 index 0000000..a0db444 --- /dev/null +++ b/node_modules/@octokit/graphql/package.json @@ -0,0 +1,54 @@ +{ + "name": "@octokit/graphql", + "description": "GitHub GraphQL API client for browsers and Node", + "version": "4.3.1", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "graphql" + ], + "homepage": "https://github.com/octokit/graphql.js#readme", + "bugs": { + "url": "https://github.com/octokit/graphql.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/octokit/graphql.js.git" + }, + "dependencies": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^2.0.0", + "universal-user-agent": "^4.0.0" + }, + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.7.0", + "@pika/plugin-build-web": "^0.7.0", + "@pika/plugin-ts-standard-pkg": "^0.7.0", + "@types/fetch-mock": "^7.2.5", + "@types/jest": "^24.0.13", + "@types/node": "^12.0.2", + "fetch-mock": "^7.3.1", + "jest": "^24.8.0", + "prettier": "^1.17.1", + "semantic-release": "^15.13.3", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^24.0.2", + "typescript": "^3.4.5" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "deno": "dist-web/index.js" +} diff --git a/node_modules/@octokit/plugin-retry/LICENSE b/node_modules/@octokit/plugin-retry/LICENSE new file mode 100644 index 0000000..12d45d9 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@octokit/plugin-retry/README.md b/node_modules/@octokit/plugin-retry/README.md new file mode 100644 index 0000000..46ec989 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/README.md @@ -0,0 +1,105 @@ +# plugin-retry.js + +> Retries requests for server 4xx/5xx responses except `400`, `401`, `403` and `404`. + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-retry.svg)](https://www.npmjs.com/package/@octokit/plugin-retry) +[![Build Status](https://github.com/octokit/plugin-retry.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-retry.js/actions?workflow=Test) + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-retry` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [cdn.pika.dev](https://cdn.pika.dev) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-retry`. Optionally replace `@octokit/core` with a core-compatible module + +```js +const { Octokit } = require("@octokit/core"); +const { retry } = require("@octokit/plugin-retry"); +``` + +
+ +**Note**: If you use it with `@octokit/rest` v16, install `@octokit/core` as a devDependency. This is only temporary and will no longer be necessary with `@octokit/rest` v17. + +```js +const MyOctokit = Octokit.plugin(retry); +const octokit = new MyOctokit({ auth: "secret123" }); + +// retries request up to 3 times in case of a 500 response +octokit.request("/").catch((error) => { + if (error.request.request.retryCount) { + console.log( + `request failed after ${error.request.request.retryCount} retries` + ); + } + + console.error(error); +}); +``` + +To override the default `doNotRetry` list: + +```js +const octokit = new MyOctokit({ + auth: "secret123", + retry: { + doNotRetry: [ + /* List of HTTP 4xx/5xx status codes */ + ], + }, +}); +``` + +To override the number of retries: + +```js +const octokit = new MyOctokit({ + auth: "secret123", + request: { retries: 1 }, +}); +``` + +You can manually ask for retries for any request by passing `{ request: { retries: numRetries, retryAfter: delayInSeconds }}` + +```js +octokit + .request("/", { request: { retries: 1, retryAfter: 1 } }) + .catch((error) => { + if (error.request.request.retryCount) { + console.log( + `request failed after ${error.request.request.retryCount} retries` + ); + } + + console.error(error); + }); +``` + +Pass `{ retry: { enabled: false } }` to disable this plugin. + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-retry/dist-node/index.js b/node_modules/@octokit/plugin-retry/dist-node/index.js new file mode 100644 index 0000000..e593bf0 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-node/index.js @@ -0,0 +1,75 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Bottleneck = _interopDefault(require('bottleneck/light')); + +// @ts-ignore +async function errorRequest(octokit, state, error, options) { + if (!error.request || !error.request.request) { + // address https://github.com/octokit/plugin-retry.js/issues/8 + throw error; + } // retry all >= 400 && not doNotRetry + + + if (error.status >= 400 && !state.doNotRetry.includes(error.status)) { + const retries = options.request.retries != null ? options.request.retries : state.retries; + const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2); + throw octokit.retry.retryRequest(error, retries, retryAfter); + } // Maybe eventually there will be more cases here + + + throw error; +} + +// @ts-ignore + +async function wrapRequest(state, request, options) { + const limiter = new Bottleneck(); // @ts-ignore + + limiter.on("failed", function (error, info) { + const maxRetries = ~~error.request.request.retries; + const after = ~~error.request.request.retryAfter; + options.request.retryCount = info.retryCount + 1; + + if (maxRetries > info.retryCount) { + // Returning a number instructs the limiter to retry + // the request after that number of milliseconds have passed + return after * state.retryAfterBaseValue; + } + }); + return limiter.schedule(request, options); +} + +const VERSION = "3.0.2"; +function retry(octokit, octokitOptions = {}) { + const state = Object.assign({ + enabled: true, + retryAfterBaseValue: 1000, + doNotRetry: [400, 401, 403, 404, 422], + retries: 3 + }, octokitOptions.retry); + octokit.retry = { + retryRequest: (error, retries, retryAfter) => { + error.request.request = Object.assign({}, error.request.request, { + retries: retries, + retryAfter: retryAfter + }); + return error; + } + }; + + if (!state.enabled) { + return; + } + + octokit.hook.error("request", errorRequest.bind(null, octokit, state)); + octokit.hook.wrap("request", wrapRequest.bind(null, state)); +} +retry.VERSION = VERSION; + +exports.VERSION = VERSION; +exports.retry = retry; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-retry/dist-node/index.js.map b/node_modules/@octokit/plugin-retry/dist-node/index.js.map new file mode 100644 index 0000000..16cf347 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/error-request.js","../dist-src/wrap-request.js","../dist-src/index.js"],"sourcesContent":["// @ts-ignore\nexport async function errorRequest(octokit, state, error, options) {\n if (!error.request || !error.request.request) {\n // address https://github.com/octokit/plugin-retry.js/issues/8\n throw error;\n }\n // retry all >= 400 && not doNotRetry\n if (error.status >= 400 && !state.doNotRetry.includes(error.status)) {\n const retries = options.request.retries != null ? options.request.retries : state.retries;\n const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2);\n throw octokit.retry.retryRequest(error, retries, retryAfter);\n }\n // Maybe eventually there will be more cases here\n throw error;\n}\n","// @ts-ignore\nimport Bottleneck from \"bottleneck/light\";\n// @ts-ignore\nexport async function wrapRequest(state, request, options) {\n const limiter = new Bottleneck();\n // @ts-ignore\n limiter.on(\"failed\", function (error, info) {\n const maxRetries = ~~error.request.request.retries;\n const after = ~~error.request.request.retryAfter;\n options.request.retryCount = info.retryCount + 1;\n if (maxRetries > info.retryCount) {\n // Returning a number instructs the limiter to retry\n // the request after that number of milliseconds have passed\n return after * state.retryAfterBaseValue;\n }\n });\n return limiter.schedule(request, options);\n}\n","import { errorRequest } from \"./error-request\";\nimport { wrapRequest } from \"./wrap-request\";\nexport const VERSION = \"3.0.2\";\nexport function retry(octokit, octokitOptions = {}) {\n const state = Object.assign({\n enabled: true,\n retryAfterBaseValue: 1000,\n doNotRetry: [400, 401, 403, 404, 422],\n retries: 3,\n }, octokitOptions.retry);\n octokit.retry = {\n retryRequest: (error, retries, retryAfter) => {\n error.request.request = Object.assign({}, error.request.request, {\n retries: retries,\n retryAfter: retryAfter,\n });\n return error;\n },\n };\n if (!state.enabled) {\n return;\n }\n octokit.hook.error(\"request\", errorRequest.bind(null, octokit, state));\n octokit.hook.wrap(\"request\", wrapRequest.bind(null, state));\n}\nretry.VERSION = VERSION;\n"],"names":["errorRequest","octokit","state","error","options","request","status","doNotRetry","includes","retries","retryAfter","Math","pow","retryCount","retry","retryRequest","wrapRequest","limiter","Bottleneck","on","info","maxRetries","after","retryAfterBaseValue","schedule","VERSION","octokitOptions","Object","assign","enabled","hook","bind","wrap"],"mappings":";;;;;;;;AAAA;AACO,eAAeA,YAAf,CAA4BC,OAA5B,EAAqCC,KAArC,EAA4CC,KAA5C,EAAmDC,OAAnD,EAA4D;AAC/D,MAAI,CAACD,KAAK,CAACE,OAAP,IAAkB,CAACF,KAAK,CAACE,OAAN,CAAcA,OAArC,EAA8C;AAC1C;AACA,UAAMF,KAAN;AACH,GAJ8D;;;AAM/D,MAAIA,KAAK,CAACG,MAAN,IAAgB,GAAhB,IAAuB,CAACJ,KAAK,CAACK,UAAN,CAAiBC,QAAjB,CAA0BL,KAAK,CAACG,MAAhC,CAA5B,EAAqE;AACjE,UAAMG,OAAO,GAAGL,OAAO,CAACC,OAAR,CAAgBI,OAAhB,IAA2B,IAA3B,GAAkCL,OAAO,CAACC,OAAR,CAAgBI,OAAlD,GAA4DP,KAAK,CAACO,OAAlF;AACA,UAAMC,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAS,CAACR,OAAO,CAACC,OAAR,CAAgBQ,UAAhB,IAA8B,CAA/B,IAAoC,CAA7C,EAAgD,CAAhD,CAAnB;AACA,UAAMZ,OAAO,CAACa,KAAR,CAAcC,YAAd,CAA2BZ,KAA3B,EAAkCM,OAAlC,EAA2CC,UAA3C,CAAN;AACH,GAV8D;;;AAY/D,QAAMP,KAAN;AACH;;ACdD;AACA;AAEA,AAAO,eAAea,WAAf,CAA2Bd,KAA3B,EAAkCG,OAAlC,EAA2CD,OAA3C,EAAoD;AACvD,QAAMa,OAAO,GAAG,IAAIC,UAAJ,EAAhB,CADuD;;AAGvDD,EAAAA,OAAO,CAACE,EAAR,CAAW,QAAX,EAAqB,UAAUhB,KAAV,EAAiBiB,IAAjB,EAAuB;AACxC,UAAMC,UAAU,GAAG,CAAC,CAAClB,KAAK,CAACE,OAAN,CAAcA,OAAd,CAAsBI,OAA3C;AACA,UAAMa,KAAK,GAAG,CAAC,CAACnB,KAAK,CAACE,OAAN,CAAcA,OAAd,CAAsBK,UAAtC;AACAN,IAAAA,OAAO,CAACC,OAAR,CAAgBQ,UAAhB,GAA6BO,IAAI,CAACP,UAAL,GAAkB,CAA/C;;AACA,QAAIQ,UAAU,GAAGD,IAAI,CAACP,UAAtB,EAAkC;AAC9B;AACA;AACA,aAAOS,KAAK,GAAGpB,KAAK,CAACqB,mBAArB;AACH;AACJ,GATD;AAUA,SAAON,OAAO,CAACO,QAAR,CAAiBnB,OAAjB,EAA0BD,OAA1B,CAAP;AACH;;MCfYqB,OAAO,GAAG,mBAAhB;AACP,AAAO,SAASX,KAAT,CAAeb,OAAf,EAAwByB,cAAc,GAAG,EAAzC,EAA6C;AAChD,QAAMxB,KAAK,GAAGyB,MAAM,CAACC,MAAP,CAAc;AACxBC,IAAAA,OAAO,EAAE,IADe;AAExBN,IAAAA,mBAAmB,EAAE,IAFG;AAGxBhB,IAAAA,UAAU,EAAE,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,CAHY;AAIxBE,IAAAA,OAAO,EAAE;AAJe,GAAd,EAKXiB,cAAc,CAACZ,KALJ,CAAd;AAMAb,EAAAA,OAAO,CAACa,KAAR,GAAgB;AACZC,IAAAA,YAAY,EAAE,CAACZ,KAAD,EAAQM,OAAR,EAAiBC,UAAjB,KAAgC;AAC1CP,MAAAA,KAAK,CAACE,OAAN,CAAcA,OAAd,GAAwBsB,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBzB,KAAK,CAACE,OAAN,CAAcA,OAAhC,EAAyC;AAC7DI,QAAAA,OAAO,EAAEA,OADoD;AAE7DC,QAAAA,UAAU,EAAEA;AAFiD,OAAzC,CAAxB;AAIA,aAAOP,KAAP;AACH;AAPW,GAAhB;;AASA,MAAI,CAACD,KAAK,CAAC2B,OAAX,EAAoB;AAChB;AACH;;AACD5B,EAAAA,OAAO,CAAC6B,IAAR,CAAa3B,KAAb,CAAmB,SAAnB,EAA8BH,YAAY,CAAC+B,IAAb,CAAkB,IAAlB,EAAwB9B,OAAxB,EAAiCC,KAAjC,CAA9B;AACAD,EAAAA,OAAO,CAAC6B,IAAR,CAAaE,IAAb,CAAkB,SAAlB,EAA6BhB,WAAW,CAACe,IAAZ,CAAiB,IAAjB,EAAuB7B,KAAvB,CAA7B;AACH;AACDY,KAAK,CAACW,OAAN,GAAgBA,OAAhB;;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-retry/dist-src/error-request.js b/node_modules/@octokit/plugin-retry/dist-src/error-request.js new file mode 100644 index 0000000..b79b01c --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-src/error-request.js @@ -0,0 +1,15 @@ +// @ts-ignore +export async function errorRequest(octokit, state, error, options) { + if (!error.request || !error.request.request) { + // address https://github.com/octokit/plugin-retry.js/issues/8 + throw error; + } + // retry all >= 400 && not doNotRetry + if (error.status >= 400 && !state.doNotRetry.includes(error.status)) { + const retries = options.request.retries != null ? options.request.retries : state.retries; + const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2); + throw octokit.retry.retryRequest(error, retries, retryAfter); + } + // Maybe eventually there will be more cases here + throw error; +} diff --git a/node_modules/@octokit/plugin-retry/dist-src/index.js b/node_modules/@octokit/plugin-retry/dist-src/index.js new file mode 100644 index 0000000..7849095 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-src/index.js @@ -0,0 +1,26 @@ +import { errorRequest } from "./error-request"; +import { wrapRequest } from "./wrap-request"; +export const VERSION = "0.0.0-development"; +export function retry(octokit, octokitOptions = {}) { + const state = Object.assign({ + enabled: true, + retryAfterBaseValue: 1000, + doNotRetry: [400, 401, 403, 404, 422], + retries: 3, + }, octokitOptions.retry); + octokit.retry = { + retryRequest: (error, retries, retryAfter) => { + error.request.request = Object.assign({}, error.request.request, { + retries: retries, + retryAfter: retryAfter, + }); + return error; + }, + }; + if (!state.enabled) { + return; + } + octokit.hook.error("request", errorRequest.bind(null, octokit, state)); + octokit.hook.wrap("request", wrapRequest.bind(null, state)); +} +retry.VERSION = VERSION; diff --git a/node_modules/@octokit/plugin-retry/dist-src/version.js b/node_modules/@octokit/plugin-retry/dist-src/version.js new file mode 100644 index 0000000..a00c366 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "3.0.2"; diff --git a/node_modules/@octokit/plugin-retry/dist-src/wrap-request.js b/node_modules/@octokit/plugin-retry/dist-src/wrap-request.js new file mode 100644 index 0000000..1454e2f --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-src/wrap-request.js @@ -0,0 +1,18 @@ +// @ts-ignore +import Bottleneck from "bottleneck/light"; +// @ts-ignore +export async function wrapRequest(state, request, options) { + const limiter = new Bottleneck(); + // @ts-ignore + limiter.on("failed", function (error, info) { + const maxRetries = ~~error.request.request.retries; + const after = ~~error.request.request.retryAfter; + options.request.retryCount = info.retryCount + 1; + if (maxRetries > info.retryCount) { + // Returning a number instructs the limiter to retry + // the request after that number of milliseconds have passed + return after * state.retryAfterBaseValue; + } + }); + return limiter.schedule(request, options); +} diff --git a/node_modules/@octokit/plugin-retry/dist-types/error-request.d.ts b/node_modules/@octokit/plugin-retry/dist-types/error-request.d.ts new file mode 100644 index 0000000..220f3ca --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-types/error-request.d.ts @@ -0,0 +1 @@ +export declare function errorRequest(octokit: any, state: any, error: any, options: any): Promise; diff --git a/node_modules/@octokit/plugin-retry/dist-types/index.d.ts b/node_modules/@octokit/plugin-retry/dist-types/index.d.ts new file mode 100644 index 0000000..92d5e4f --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-types/index.d.ts @@ -0,0 +1,6 @@ +import { Octokit } from "@octokit/core"; +export declare const VERSION = "0.0.0-development"; +export declare function retry(octokit: Octokit, octokitOptions?: ConstructorParameters[0]): void; +export declare namespace retry { + var VERSION: string; +} diff --git a/node_modules/@octokit/plugin-retry/dist-types/version.d.ts b/node_modules/@octokit/plugin-retry/dist-types/version.d.ts new file mode 100644 index 0000000..481aea6 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "3.0.2"; diff --git a/node_modules/@octokit/plugin-retry/dist-types/wrap-request.d.ts b/node_modules/@octokit/plugin-retry/dist-types/wrap-request.d.ts new file mode 100644 index 0000000..9333a88 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-types/wrap-request.d.ts @@ -0,0 +1 @@ +export declare function wrapRequest(state: any, request: any, options: any): Promise; diff --git a/node_modules/@octokit/plugin-retry/dist-web/index.js b/node_modules/@octokit/plugin-retry/dist-web/index.js new file mode 100644 index 0000000..f9de876 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-web/index.js @@ -0,0 +1,63 @@ +import Bottleneck from 'bottleneck/light'; + +// @ts-ignore +async function errorRequest(octokit, state, error, options) { + if (!error.request || !error.request.request) { + // address https://github.com/octokit/plugin-retry.js/issues/8 + throw error; + } + // retry all >= 400 && not doNotRetry + if (error.status >= 400 && !state.doNotRetry.includes(error.status)) { + const retries = options.request.retries != null ? options.request.retries : state.retries; + const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2); + throw octokit.retry.retryRequest(error, retries, retryAfter); + } + // Maybe eventually there will be more cases here + throw error; +} + +// @ts-ignore +// @ts-ignore +async function wrapRequest(state, request, options) { + const limiter = new Bottleneck(); + // @ts-ignore + limiter.on("failed", function (error, info) { + const maxRetries = ~~error.request.request.retries; + const after = ~~error.request.request.retryAfter; + options.request.retryCount = info.retryCount + 1; + if (maxRetries > info.retryCount) { + // Returning a number instructs the limiter to retry + // the request after that number of milliseconds have passed + return after * state.retryAfterBaseValue; + } + }); + return limiter.schedule(request, options); +} + +const VERSION = "3.0.2"; +function retry(octokit, octokitOptions = {}) { + const state = Object.assign({ + enabled: true, + retryAfterBaseValue: 1000, + doNotRetry: [400, 401, 403, 404, 422], + retries: 3, + }, octokitOptions.retry); + octokit.retry = { + retryRequest: (error, retries, retryAfter) => { + error.request.request = Object.assign({}, error.request.request, { + retries: retries, + retryAfter: retryAfter, + }); + return error; + }, + }; + if (!state.enabled) { + return; + } + octokit.hook.error("request", errorRequest.bind(null, octokit, state)); + octokit.hook.wrap("request", wrapRequest.bind(null, state)); +} +retry.VERSION = VERSION; + +export { VERSION, retry }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-retry/dist-web/index.js.map b/node_modules/@octokit/plugin-retry/dist-web/index.js.map new file mode 100644 index 0000000..7d0666e --- /dev/null +++ b/node_modules/@octokit/plugin-retry/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/error-request.js","../dist-src/wrap-request.js","../dist-src/index.js"],"sourcesContent":["// @ts-ignore\nexport async function errorRequest(octokit, state, error, options) {\n if (!error.request || !error.request.request) {\n // address https://github.com/octokit/plugin-retry.js/issues/8\n throw error;\n }\n // retry all >= 400 && not doNotRetry\n if (error.status >= 400 && !state.doNotRetry.includes(error.status)) {\n const retries = options.request.retries != null ? options.request.retries : state.retries;\n const retryAfter = Math.pow((options.request.retryCount || 0) + 1, 2);\n throw octokit.retry.retryRequest(error, retries, retryAfter);\n }\n // Maybe eventually there will be more cases here\n throw error;\n}\n","// @ts-ignore\nimport Bottleneck from \"bottleneck/light\";\n// @ts-ignore\nexport async function wrapRequest(state, request, options) {\n const limiter = new Bottleneck();\n // @ts-ignore\n limiter.on(\"failed\", function (error, info) {\n const maxRetries = ~~error.request.request.retries;\n const after = ~~error.request.request.retryAfter;\n options.request.retryCount = info.retryCount + 1;\n if (maxRetries > info.retryCount) {\n // Returning a number instructs the limiter to retry\n // the request after that number of milliseconds have passed\n return after * state.retryAfterBaseValue;\n }\n });\n return limiter.schedule(request, options);\n}\n","import { errorRequest } from \"./error-request\";\nimport { wrapRequest } from \"./wrap-request\";\nexport const VERSION = \"3.0.2\";\nexport function retry(octokit, octokitOptions = {}) {\n const state = Object.assign({\n enabled: true,\n retryAfterBaseValue: 1000,\n doNotRetry: [400, 401, 403, 404, 422],\n retries: 3,\n }, octokitOptions.retry);\n octokit.retry = {\n retryRequest: (error, retries, retryAfter) => {\n error.request.request = Object.assign({}, error.request.request, {\n retries: retries,\n retryAfter: retryAfter,\n });\n return error;\n },\n };\n if (!state.enabled) {\n return;\n }\n octokit.hook.error(\"request\", errorRequest.bind(null, octokit, state));\n octokit.hook.wrap(\"request\", wrapRequest.bind(null, state));\n}\nretry.VERSION = VERSION;\n"],"names":[],"mappings":";;AAAA;AACO,eAAe,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;AACnE,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;AAClD;AACA,QAAQ,MAAM,KAAK,CAAC;AACpB,KAAK;AACL;AACA,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACzE,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAClG,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,QAAQ,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACrE,KAAK;AACL;AACA,IAAI,MAAM,KAAK,CAAC;AAChB;;ACdA;AACA,AACA;AACA,AAAO,eAAe,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAC3D,IAAI,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;AACrC;AACA,IAAI,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3D,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AACzD,QAAQ,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACzD,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAC1C;AACA;AACA,YAAY,OAAO,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC;AACrD,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;;ACfW,MAAC,OAAO,GAAG,mBAAmB,CAAC;AAC3C,AAAO,SAAS,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,EAAE,EAAE;AACpD,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,mBAAmB,EAAE,IAAI;AACjC,QAAQ,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7C,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;AAC7B,IAAI,OAAO,CAAC,KAAK,GAAG;AACpB,QAAQ,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,KAAK;AACtD,YAAY,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7E,gBAAgB,OAAO,EAAE,OAAO;AAChC,gBAAgB,UAAU,EAAE,UAAU;AACtC,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3E,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AACD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/LICENSE b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/LICENSE new file mode 100644 index 0000000..57bee5f --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/README.md b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/README.md new file mode 100644 index 0000000..25b8f03 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/README.md @@ -0,0 +1,65 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/types.ts.svg)](https://greenkeeper.io/) + + + +- [Usage](#usage) +- [Examples](#examples) + - [Get parameter and response data types for a REST API endpoint](#get-parameter-and-response-data-types-for-a-rest-api-endpoint) + - [Get response types from endpoint methods](#get-response-types-from-endpoint-methods) +- [Contributing](#contributing) +- [License](#license) + + + +## Usage + +See all exported types at https://octokit.github.io/types.ts + +## Examples + +### Get parameter and response data types for a REST API endpoint + +```ts +import { Endpoints } from "./src"; + +type listUserReposParameters = Endpoints["GET /repos/:owner/:repo"]["parameters"]; +type listUserReposResponse = Endpoints["GET /repos/:owner/:repo"]["response"]; + +async function listRepos( + options: listUserReposParameters +): listUserReposResponse["data"] { + // ... +} +``` + +### Get response types from endpoint methods + +```ts +import { + GetResponseTypeFromEndpointMethod, + GetResponseDataTypeFromEndpointMethod, +} from "@octokit/types"; +import { Octokit } from "@octokit/rest"; + +const octokit = new Octokit(); +type CreateLabelResponseType = GetResponseTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +type CreateLabelResponseDataType = GetResponseDataTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js new file mode 100644 index 0000000..4d0c34b --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js @@ -0,0 +1,8 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "4.0.1"; + +exports.VERSION = VERSION; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js.map b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js.map new file mode 100644 index 0000000..2d148d3 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":["VERSION"],"mappings":";;;;MAAaA,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/AuthInterface.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/AuthInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointDefaults.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointDefaults.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointInterface.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointOptions.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/EndpointOptions.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Fetch.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Fetch.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/OctokitResponse.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/OctokitResponse.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestHeaders.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestHeaders.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestInterface.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestMethod.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestMethod.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestOptions.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestOptions.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestParameters.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestParameters.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestRequestOptions.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/RequestRequestOptions.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/ResponseHeaders.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/ResponseHeaders.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Route.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Route.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Signal.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Signal.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/StrategyInterface.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/StrategyInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Url.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/Url.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/VERSION.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/VERSION.js new file mode 100644 index 0000000..16decb4 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/VERSION.js @@ -0,0 +1 @@ +export const VERSION = "4.0.1"; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/generated/Endpoints.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/generated/Endpoints.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/index.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/index.js new file mode 100644 index 0000000..04b2163 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-src/index.js @@ -0,0 +1 @@ +export * from "./VERSION"; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/AuthInterface.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/AuthInterface.d.ts new file mode 100644 index 0000000..0c19b50 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/AuthInterface.d.ts @@ -0,0 +1,31 @@ +import { EndpointOptions } from "./EndpointOptions"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestInterface } from "./RequestInterface"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface { + (...args: AuthOptions): Promise; + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise>; + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, route: Route, parameters?: RequestParameters): Promise>; + }; +} diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts new file mode 100644 index 0000000..a2c2307 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts @@ -0,0 +1,21 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestParameters } from "./RequestParameters"; +import { Url } from "./Url"; +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export declare type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews: string[]; + }; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts new file mode 100644 index 0000000..df585be --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts @@ -0,0 +1,65 @@ +import { EndpointDefaults } from "./EndpointDefaults"; +import { RequestOptions } from "./RequestOptions"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `url` unless it's set defaults. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): RequestOptions & Pick; + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, parameters?: P): (R extends keyof Endpoints ? Endpoints[R]["request"] : RequestOptions) & Pick; + /** + * Object with current default route and parameters + */ + DEFAULTS: D & EndpointDefaults; + /** + * Returns a new `endpoint` interface with new defaults + */ + defaults: (newDefaults: O) => EndpointInterface; + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: keyof Endpoints | R, parameters?: P): D & (R extends keyof Endpoints ? Endpoints[R]["request"] & Endpoints[R]["parameters"] : EndpointDefaults) & P; + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ +

(options: P): EndpointDefaults & D & P; + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): D & EndpointDefaults; + }; + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: O) => RequestOptions & Pick; +} diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts new file mode 100644 index 0000000..b1b91f1 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts @@ -0,0 +1,7 @@ +import { RequestMethod } from "./RequestMethod"; +import { Url } from "./Url"; +import { RequestParameters } from "./RequestParameters"; +export declare type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Fetch.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Fetch.d.ts new file mode 100644 index 0000000..cbbd5e8 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Fetch.d.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export declare type Fetch = any; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts new file mode 100644 index 0000000..70e1a8d --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts @@ -0,0 +1,5 @@ +declare type Unwrap = T extends Promise ? U : T; +declare type AnyFunction = (...args: any[]) => any; +export declare type GetResponseTypeFromEndpointMethod = Unwrap>; +export declare type GetResponseDataTypeFromEndpointMethod = Unwrap>["data"]; +export {}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts new file mode 100644 index 0000000..9a2dd7f --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts @@ -0,0 +1,17 @@ +import { ResponseHeaders } from "./ResponseHeaders"; +import { Url } from "./Url"; +export declare type OctokitResponse = { + headers: ResponseHeaders; + /** + * http response code + */ + status: number; + /** + * URL of response after all redirects + */ + url: Url; + /** + * This is the data you would see in https://developer.Octokit.com/v3/ + */ + data: T; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts new file mode 100644 index 0000000..ac5aae0 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts @@ -0,0 +1,15 @@ +export declare type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestInterface.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestInterface.d.ts new file mode 100644 index 0000000..ef4d8d3 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestInterface.d.ts @@ -0,0 +1,34 @@ +import { EndpointInterface } from "./EndpointInterface"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): Promise>; + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, options?: R extends keyof Endpoints ? Endpoints[R]["parameters"] & RequestParameters : RequestParameters): R extends keyof Endpoints ? Promise : Promise>; + /** + * Returns a new `request` with updated route and parameters + */ + defaults: (newDefaults: O) => RequestInterface; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestMethod.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestMethod.d.ts new file mode 100644 index 0000000..e999c8d --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestMethod.d.ts @@ -0,0 +1,4 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export declare type RequestMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestOptions.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestOptions.d.ts new file mode 100644 index 0000000..97e2181 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestOptions.d.ts @@ -0,0 +1,14 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { Url } from "./Url"; +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export declare type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestParameters.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestParameters.d.ts new file mode 100644 index 0000000..692d193 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestParameters.d.ts @@ -0,0 +1,45 @@ +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { RequestHeaders } from "./RequestHeaders"; +import { Url } from "./Url"; +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export declare type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/:org`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/:org`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: unknown; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts new file mode 100644 index 0000000..4482a8a --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -0,0 +1,26 @@ +/// +import { Agent } from "http"; +import { Fetch } from "./Fetch"; +import { Signal } from "./Signal"; +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export declare type RequestRequestOptions = { + /** + * Node only. Useful for custom proxy, certificate, or dns lookup. + */ + agent?: Agent; + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). `options.request.signal` is recommended instead. + */ + timeout?: number; + [option: string]: any; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts new file mode 100644 index 0000000..c8fbe43 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts @@ -0,0 +1,20 @@ +export declare type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Route.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Route.d.ts new file mode 100644 index 0000000..8079044 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Route.d.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/:org'`, `'PUT /orgs/:org'`, `GET https://example.com/foo/bar` + */ +export declare type Route = string; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Signal.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Signal.d.ts new file mode 100644 index 0000000..4ebcf24 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Signal.d.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export declare type Signal = any; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts new file mode 100644 index 0000000..405cbd2 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts @@ -0,0 +1,4 @@ +import { AuthInterface } from "./AuthInterface"; +export interface StrategyInterface { + (...args: StrategyOptions): AuthInterface; +} diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Url.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Url.d.ts new file mode 100644 index 0000000..acaad63 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/Url.d.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/:org'`, `https://example.com/foo/bar` + */ +export declare type Url = string; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/VERSION.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/VERSION.d.ts new file mode 100644 index 0000000..7d7580c --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "4.0.1"; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts new file mode 100644 index 0000000..4bc9a8c --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts @@ -0,0 +1,36955 @@ +import { OctokitResponse } from "../OctokitResponse"; +import { RequestHeaders } from "../RequestHeaders"; +import { RequestRequestOptions } from "../RequestRequestOptions"; +declare type RequiredPreview = { + mediaType: { + previews: [T, ...string[]]; + }; +}; +export interface Endpoints { + /** + * @see https://developer.github.com/v3/apps/#delete-an-installation + */ + "DELETE /app/installations/:installation_id": { + parameters: AppsDeleteInstallationEndpoint; + request: AppsDeleteInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#unsuspend-an-installation + */ + "DELETE /app/installations/:installation_id/suspended": { + parameters: AppsUnsuspendInstallationEndpoint; + request: AppsUnsuspendInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#delete-an-app-authorization + */ + "DELETE /applications/:client_id/grant": { + parameters: AppsDeleteAuthorizationEndpoint; + request: AppsDeleteAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#revoke-a-grant-for-an-application + */ + "DELETE /applications/:client_id/grants/:access_token": { + parameters: AppsRevokeGrantForApplicationEndpoint; + request: AppsRevokeGrantForApplicationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#delete-an-app-token + */ + "DELETE /applications/:client_id/token": { + parameters: AppsDeleteTokenEndpoint; + request: AppsDeleteTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#revoke-an-authorization-for-an-application + */ + "DELETE /applications/:client_id/tokens/:access_token": { + parameters: AppsRevokeAuthorizationForApplicationEndpoint; + request: AppsRevokeAuthorizationForApplicationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#delete-a-grant + */ + "DELETE /applications/grants/:grant_id": { + parameters: OauthAuthorizationsDeleteGrantEndpoint; + request: OauthAuthorizationsDeleteGrantRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#delete-an-authorization + */ + "DELETE /authorizations/:authorization_id": { + parameters: OauthAuthorizationsDeleteAuthorizationEndpoint; + request: OauthAuthorizationsDeleteAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#delete-a-gist + */ + "DELETE /gists/:gist_id": { + parameters: GistsDeleteEndpoint; + request: GistsDeleteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#delete-a-comment + */ + "DELETE /gists/:gist_id/comments/:comment_id": { + parameters: GistsDeleteCommentEndpoint; + request: GistsDeleteCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#unstar-a-gist + */ + "DELETE /gists/:gist_id/star": { + parameters: GistsUnstarEndpoint; + request: GistsUnstarRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#revoke-an-installation-token + */ + "DELETE /installation/token": { + parameters: AppsRevokeInstallationTokenEndpoint; + request: AppsRevokeInstallationTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#delete-a-thread-subscription + */ + "DELETE /notifications/threads/:thread_id/subscription": { + parameters: ActivityDeleteThreadSubscriptionEndpoint; + request: ActivityDeleteThreadSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#delete-a-self-hosted-runner-from-an-organization + */ + "DELETE /orgs/:org/actions/runners/:runner_id": { + parameters: ActionsDeleteSelfHostedRunnerFromOrgEndpoint; + request: ActionsDeleteSelfHostedRunnerFromOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#delete-an-organization-secret + */ + "DELETE /orgs/:org/actions/secrets/:secret_name": { + parameters: ActionsDeleteOrgSecretEndpoint; + request: ActionsDeleteOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/:org/actions/secrets/:secret_name/repositories/:repository_id": { + parameters: ActionsRemoveSelectedRepoFromOrgSecretEndpoint; + request: ActionsRemoveSelectedRepoFromOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#unblock-a-user + */ + "DELETE /orgs/:org/blocks/:username": { + parameters: OrgsUnblockUserEndpoint; + request: OrgsUnblockUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#remove-a-credential-authorization-for-an-organization + */ + "DELETE /orgs/:org/credential-authorizations/:credential_id": { + parameters: OrgsRemoveCredentialAuthorizationEndpoint; + request: OrgsRemoveCredentialAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#delete-a-hook + */ + "DELETE /orgs/:org/hooks/:hook_id": { + parameters: OrgsDeleteHookEndpoint; + request: OrgsDeleteHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/orgs/#remove-interaction-restrictions-for-an-organization + */ + "DELETE /orgs/:org/interaction-limits": { + parameters: InteractionsRemoveRestrictionsForOrgEndpoint; + request: InteractionsRemoveRestrictionsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#remove-a-member + */ + "DELETE /orgs/:org/members/:username": { + parameters: OrgsRemoveMemberEndpoint; + request: OrgsRemoveMemberRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#remove-organization-membership + */ + "DELETE /orgs/:org/memberships/:username": { + parameters: OrgsRemoveMembershipEndpoint; + request: OrgsRemoveMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#delete-an-organization-migration-archive + */ + "DELETE /orgs/:org/migrations/:migration_id/archive": { + parameters: MigrationsDeleteArchiveForOrgEndpoint; + request: MigrationsDeleteArchiveForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#unlock-an-organization-repository + */ + "DELETE /orgs/:org/migrations/:migration_id/repos/:repo_name/lock": { + parameters: MigrationsUnlockRepoForOrgEndpoint; + request: MigrationsUnlockRepoForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/outside_collaborators/#remove-outside-collaborator + */ + "DELETE /orgs/:org/outside_collaborators/:username": { + parameters: OrgsRemoveOutsideCollaboratorEndpoint; + request: OrgsRemoveOutsideCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#conceal-a-users-membership + */ + "DELETE /orgs/:org/public_members/:username": { + parameters: OrgsConcealMembershipEndpoint; + request: OrgsConcealMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#delete-team + */ + "DELETE /orgs/:org/teams/:team_slug": { + parameters: TeamsDeleteInOrgEndpoint; + request: TeamsDeleteInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#delete-a-discussion + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number": { + parameters: TeamsDeleteDiscussionInOrgEndpoint; + request: TeamsDeleteDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#delete-a-comment + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsDeleteDiscussionCommentInOrgEndpoint; + request: TeamsDeleteDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-team-discussion-comment-reaction + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id": { + parameters: ReactionsDeleteForTeamDiscussionCommentEndpoint; + request: ReactionsDeleteForTeamDiscussionCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-team-discussion-reaction + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions/:reaction_id": { + parameters: ReactionsDeleteForTeamDiscussionEndpoint; + request: ReactionsDeleteForTeamDiscussionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#remove-team-membership + */ + "DELETE /orgs/:org/teams/:team_slug/memberships/:username": { + parameters: TeamsRemoveMembershipInOrgEndpoint; + request: TeamsRemoveMembershipInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-project + */ + "DELETE /orgs/:org/teams/:team_slug/projects/:project_id": { + parameters: TeamsRemoveProjectInOrgEndpoint; + request: TeamsRemoveProjectInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-repository + */ + "DELETE /orgs/:org/teams/:team_slug/repos/:owner/:repo": { + parameters: TeamsRemoveRepoInOrgEndpoint; + request: TeamsRemoveRepoInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#delete-a-project + */ + "DELETE /projects/:project_id": { + parameters: ProjectsDeleteEndpoint; + request: ProjectsDeleteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#remove-user-as-a-collaborator + */ + "DELETE /projects/:project_id/collaborators/:username": { + parameters: ProjectsRemoveCollaboratorEndpoint; + request: ProjectsRemoveCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#delete-a-project-column + */ + "DELETE /projects/columns/:column_id": { + parameters: ProjectsDeleteColumnEndpoint; + request: ProjectsDeleteColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#delete-a-project-card + */ + "DELETE /projects/columns/cards/:card_id": { + parameters: ProjectsDeleteCardEndpoint; + request: ProjectsDeleteCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-a-reaction-legacy + */ + "DELETE /reactions/:reaction_id": { + parameters: ReactionsDeleteLegacyEndpoint; + request: ReactionsDeleteLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#delete-a-repository + */ + "DELETE /repos/:owner/:repo": { + parameters: ReposDeleteEndpoint; + request: ReposDeleteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#delete-an-artifact + */ + "DELETE /repos/:owner/:repo/actions/artifacts/:artifact_id": { + parameters: ActionsDeleteArtifactEndpoint; + request: ActionsDeleteArtifactRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#delete-a-self-hosted-runner-from-a-repository + */ + "DELETE /repos/:owner/:repo/actions/runners/:runner_id": { + parameters: ActionsDeleteSelfHostedRunnerFromRepoEndpoint; + request: ActionsDeleteSelfHostedRunnerFromRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#delete-workflow-run-logs + */ + "DELETE /repos/:owner/:repo/actions/runs/:run_id/logs": { + parameters: ActionsDeleteWorkflowRunLogsEndpoint; + request: ActionsDeleteWorkflowRunLogsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#delete-a-repository-secret + */ + "DELETE /repos/:owner/:repo/actions/secrets/:secret_name": { + parameters: ActionsDeleteRepoSecretEndpoint; + request: ActionsDeleteRepoSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#disable-automated-security-fixes + */ + "DELETE /repos/:owner/:repo/automated-security-fixes": { + parameters: ReposDisableAutomatedSecurityFixesEndpoint; + request: ReposDisableAutomatedSecurityFixesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-branch-protection + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection": { + parameters: ReposRemoveBranchProtectionEndpoint; + request: ReposRemoveBranchProtectionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-admin-enforcement-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/enforce_admins": { + parameters: ReposRemoveProtectedBranchAdminEnforcementEndpoint; + request: ReposRemoveProtectedBranchAdminEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-pull-request-review-enforcement-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": { + parameters: ReposRemoveProtectedBranchPullRequestReviewEnforcementEndpoint; + request: ReposRemoveProtectedBranchPullRequestReviewEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-required-signatures-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_signatures": { + parameters: ReposRemoveProtectedBranchRequiredSignaturesEndpoint; + request: ReposRemoveProtectedBranchRequiredSignaturesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-required-status-checks-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks": { + parameters: ReposRemoveProtectedBranchRequiredStatusChecksEndpoint; + request: ReposRemoveProtectedBranchRequiredStatusChecksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-required-status-checks-contexts-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposRemoveProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposRemoveProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions": { + parameters: ReposRemoveProtectedBranchRestrictionsEndpoint; + request: ReposRemoveProtectedBranchRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-app-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposRemoveProtectedBranchAppRestrictionsEndpoint; + request: ReposRemoveProtectedBranchAppRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-team-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposRemoveProtectedBranchTeamRestrictionsEndpoint; + request: ReposRemoveProtectedBranchTeamRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-user-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposRemoveProtectedBranchUserRestrictionsEndpoint; + request: ReposRemoveProtectedBranchUserRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#remove-user-as-a-collaborator + */ + "DELETE /repos/:owner/:repo/collaborators/:username": { + parameters: ReposRemoveCollaboratorEndpoint; + request: ReposRemoveCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#delete-a-commit-comment + */ + "DELETE /repos/:owner/:repo/comments/:comment_id": { + parameters: ReposDeleteCommitCommentEndpoint; + request: ReposDeleteCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-a-commit-comment-reaction + */ + "DELETE /repos/:owner/:repo/comments/:comment_id/reactions/:reaction_id": { + parameters: ReactionsDeleteForCommitCommentEndpoint; + request: ReactionsDeleteForCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#delete-a-file + */ + "DELETE /repos/:owner/:repo/contents/:path": { + parameters: ReposDeleteFileEndpoint; + request: ReposDeleteFileRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#delete-a-deployment + */ + "DELETE /repos/:owner/:repo/deployments/:deployment_id": { + parameters: ReposDeleteDeploymentEndpoint; + request: ReposDeleteDeploymentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/downloads/#delete-a-download + */ + "DELETE /repos/:owner/:repo/downloads/:download_id": { + parameters: ReposDeleteDownloadEndpoint; + request: ReposDeleteDownloadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#delete-a-reference + */ + "DELETE /repos/:owner/:repo/git/refs/:ref": { + parameters: GitDeleteRefEndpoint; + request: GitDeleteRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#delete-a-hook + */ + "DELETE /repos/:owner/:repo/hooks/:hook_id": { + parameters: ReposDeleteHookEndpoint; + request: ReposDeleteHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#cancel-an-import + */ + "DELETE /repos/:owner/:repo/import": { + parameters: MigrationsCancelImportEndpoint; + request: MigrationsCancelImportRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/repos/#remove-interaction-restrictions-for-a-repository + */ + "DELETE /repos/:owner/:repo/interaction-limits": { + parameters: InteractionsRemoveRestrictionsForRepoEndpoint; + request: InteractionsRemoveRestrictionsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#delete-a-repository-invitation + */ + "DELETE /repos/:owner/:repo/invitations/:invitation_id": { + parameters: ReposDeleteInvitationEndpoint; + request: ReposDeleteInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#remove-assignees-from-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/assignees": { + parameters: IssuesRemoveAssigneesEndpoint; + request: IssuesRemoveAssigneesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesRemoveAllLabelsEndpoint; + request: IssuesRemoveAllLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/labels/:name": { + parameters: IssuesRemoveLabelEndpoint; + request: IssuesRemoveLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#unlock-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/lock": { + parameters: IssuesUnlockEndpoint; + request: IssuesUnlockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-an-issue-reaction + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/reactions/:reaction_id": { + parameters: ReactionsDeleteForIssueEndpoint; + request: ReactionsDeleteForIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#delete-a-comment + */ + "DELETE /repos/:owner/:repo/issues/comments/:comment_id": { + parameters: IssuesDeleteCommentEndpoint; + request: IssuesDeleteCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-an-issue-comment-reaction + */ + "DELETE /repos/:owner/:repo/issues/comments/:comment_id/reactions/:reaction_id": { + parameters: ReactionsDeleteForIssueCommentEndpoint; + request: ReactionsDeleteForIssueCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#remove-a-deploy-key + */ + "DELETE /repos/:owner/:repo/keys/:key_id": { + parameters: ReposRemoveDeployKeyEndpoint; + request: ReposRemoveDeployKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#delete-a-label + */ + "DELETE /repos/:owner/:repo/labels/:name": { + parameters: IssuesDeleteLabelEndpoint; + request: IssuesDeleteLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#delete-a-milestone + */ + "DELETE /repos/:owner/:repo/milestones/:milestone_number": { + parameters: IssuesDeleteMilestoneEndpoint; + request: IssuesDeleteMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#disable-a-pages-site + */ + "DELETE /repos/:owner/:repo/pages": { + parameters: ReposDisablePagesSiteEndpoint; + request: ReposDisablePagesSiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/review_requests/#delete-a-review-request + */ + "DELETE /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": { + parameters: PullsDeleteReviewRequestEndpoint; + request: PullsDeleteReviewRequestRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#delete-a-pending-review + */ + "DELETE /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": { + parameters: PullsDeletePendingReviewEndpoint; + request: PullsDeletePendingReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#delete-a-comment + */ + "DELETE /repos/:owner/:repo/pulls/comments/:comment_id": { + parameters: PullsDeleteCommentEndpoint; + request: PullsDeleteCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-a-pull-request-comment-reaction + */ + "DELETE /repos/:owner/:repo/pulls/comments/:comment_id/reactions/:reaction_id": { + parameters: ReactionsDeleteForPullRequestCommentEndpoint; + request: ReactionsDeleteForPullRequestCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#delete-a-release + */ + "DELETE /repos/:owner/:repo/releases/:release_id": { + parameters: ReposDeleteReleaseEndpoint; + request: ReposDeleteReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#delete-a-release-asset + */ + "DELETE /repos/:owner/:repo/releases/assets/:asset_id": { + parameters: ReposDeleteReleaseAssetEndpoint; + request: ReposDeleteReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#delete-a-repository-subscription + */ + "DELETE /repos/:owner/:repo/subscription": { + parameters: ActivityDeleteRepoSubscriptionEndpoint; + request: ActivityDeleteRepoSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#disable-vulnerability-alerts + */ + "DELETE /repos/:owner/:repo/vulnerability-alerts": { + parameters: ReposDisableVulnerabilityAlertsEndpoint; + request: ReposDisableVulnerabilityAlertsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#remove-a-user-from-the-organization + */ + "DELETE /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimRemoveUserFromOrgEndpoint; + request: ScimRemoveUserFromOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#delete-team-legacy + */ + "DELETE /teams/:team_id": { + parameters: TeamsDeleteLegacyEndpoint; + request: TeamsDeleteLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#delete-a-discussion-legacy + */ + "DELETE /teams/:team_id/discussions/:discussion_number": { + parameters: TeamsDeleteDiscussionLegacyEndpoint; + request: TeamsDeleteDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#delete-a-comment-legacy + */ + "DELETE /teams/:team_id/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsDeleteDiscussionCommentLegacyEndpoint; + request: TeamsDeleteDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#remove-team-member-legacy + */ + "DELETE /teams/:team_id/members/:username": { + parameters: TeamsRemoveMemberLegacyEndpoint; + request: TeamsRemoveMemberLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#remove-team-membership-legacy + */ + "DELETE /teams/:team_id/memberships/:username": { + parameters: TeamsRemoveMembershipLegacyEndpoint; + request: TeamsRemoveMembershipLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-project-legacy + */ + "DELETE /teams/:team_id/projects/:project_id": { + parameters: TeamsRemoveProjectLegacyEndpoint; + request: TeamsRemoveProjectLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-repository-legacy + */ + "DELETE /teams/:team_id/repos/:owner/:repo": { + parameters: TeamsRemoveRepoLegacyEndpoint; + request: TeamsRemoveRepoLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#unblock-a-user + */ + "DELETE /user/blocks/:username": { + parameters: UsersUnblockEndpoint; + request: UsersUnblockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#delete-email-addresses + */ + "DELETE /user/emails": { + parameters: UsersDeleteEmailsEndpoint; + request: UsersDeleteEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#unfollow-a-user + */ + "DELETE /user/following/:username": { + parameters: UsersUnfollowEndpoint; + request: UsersUnfollowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#delete-a-gpg-key + */ + "DELETE /user/gpg_keys/:gpg_key_id": { + parameters: UsersDeleteGpgKeyEndpoint; + request: UsersDeleteGpgKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#remove-repository-from-installation + */ + "DELETE /user/installations/:installation_id/repositories/:repository_id": { + parameters: AppsRemoveRepoFromInstallationEndpoint; + request: AppsRemoveRepoFromInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#delete-a-public-key + */ + "DELETE /user/keys/:key_id": { + parameters: UsersDeletePublicKeyEndpoint; + request: UsersDeletePublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#delete-a-user-migration-archive + */ + "DELETE /user/migrations/:migration_id/archive": { + parameters: MigrationsDeleteArchiveForAuthenticatedUserEndpoint; + request: MigrationsDeleteArchiveForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#unlock-a-user-repository + */ + "DELETE /user/migrations/:migration_id/repos/:repo_name/lock": { + parameters: MigrationsUnlockRepoForAuthenticatedUserEndpoint; + request: MigrationsUnlockRepoForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#decline-a-repository-invitation + */ + "DELETE /user/repository_invitations/:invitation_id": { + parameters: ReposDeclineInvitationEndpoint; + request: ReposDeclineInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#unstar-a-repository-for-the-authenticated-user + */ + "DELETE /user/starred/:owner/:repo": { + parameters: ActivityUnstarRepoForAuthenticatedUserEndpoint; + request: ActivityUnstarRepoForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-the-authenticated-github-app + */ + "GET /app": { + parameters: AppsGetAuthenticatedEndpoint; + request: AppsGetAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#list-installations + */ + "GET /app/installations": { + parameters: AppsListInstallationsEndpoint; + request: AppsListInstallationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-an-installation + */ + "GET /app/installations/:installation_id": { + parameters: AppsGetInstallationEndpoint; + request: AppsGetInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#check-an-authorization + */ + "GET /applications/:client_id/tokens/:access_token": { + parameters: AppsCheckAuthorizationEndpoint; + request: AppsCheckAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#list-your-grants + */ + "GET /applications/grants": { + parameters: OauthAuthorizationsListGrantsEndpoint; + request: OauthAuthorizationsListGrantsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-a-single-grant + */ + "GET /applications/grants/:grant_id": { + parameters: OauthAuthorizationsGetGrantEndpoint; + request: OauthAuthorizationsGetGrantRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-a-single-github-app + */ + "GET /apps/:app_slug": { + parameters: AppsGetBySlugEndpoint; + request: AppsGetBySlugRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#list-your-authorizations + */ + "GET /authorizations": { + parameters: OauthAuthorizationsListAuthorizationsEndpoint; + request: OauthAuthorizationsListAuthorizationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-a-single-authorization + */ + "GET /authorizations/:authorization_id": { + parameters: OauthAuthorizationsGetAuthorizationEndpoint; + request: OauthAuthorizationsGetAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/codes_of_conduct/#list-all-codes-of-conduct + */ + "GET /codes_of_conduct": { + parameters: CodesOfConductGetAllCodesOfConductEndpoint; + request: CodesOfConductGetAllCodesOfConductRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/codes_of_conduct/#get-an-individual-code-of-conduct + */ + "GET /codes_of_conduct/:key": { + parameters: CodesOfConductGetConductCodeEndpoint; + request: CodesOfConductGetConductCodeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/emojis/#emojis + */ + "GET /emojis": { + parameters: EmojisGetEndpoint; + request: EmojisGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events + */ + "GET /events": { + parameters: ActivityListPublicEventsEndpoint; + request: ActivityListPublicEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/feeds/#get-feeds + */ + "GET /feeds": { + parameters: ActivityGetFeedsEndpoint; + request: ActivityGetFeedsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gists-for-the-authenticated-user + */ + "GET /gists": { + parameters: GistsListEndpoint; + request: GistsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#get-a-gist + */ + "GET /gists/:gist_id": { + parameters: GistsGetEndpoint; + request: GistsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist + */ + "GET /gists/:gist_id/:sha": { + parameters: GistsGetRevisionEndpoint; + request: GistsGetRevisionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist + */ + "GET /gists/:gist_id/comments": { + parameters: GistsListCommentsEndpoint; + request: GistsListCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#get-a-single-comment + */ + "GET /gists/:gist_id/comments/:comment_id": { + parameters: GistsGetCommentEndpoint; + request: GistsGetCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gist-commits + */ + "GET /gists/:gist_id/commits": { + parameters: GistsListCommitsEndpoint; + request: GistsListCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gist-forks + */ + "GET /gists/:gist_id/forks": { + parameters: GistsListForksEndpoint; + request: GistsListForksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#check-if-a-gist-is-starred + */ + "GET /gists/:gist_id/star": { + parameters: GistsCheckIsStarredEndpoint; + request: GistsCheckIsStarredRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-public-gists + */ + "GET /gists/public": { + parameters: GistsListPublicEndpoint; + request: GistsListPublicRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-starred-gists + */ + "GET /gists/starred": { + parameters: GistsListStarredEndpoint; + request: GistsListStarredRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gitignore/#listing-available-templates + */ + "GET /gitignore/templates": { + parameters: GitignoreListTemplatesEndpoint; + request: GitignoreListTemplatesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gitignore/#get-a-single-template + */ + "GET /gitignore/templates/:name": { + parameters: GitignoreGetTemplateEndpoint; + request: GitignoreGetTemplateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#list-repositories + */ + "GET /installation/repositories": { + parameters: AppsListReposEndpoint; + request: AppsListReposRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": { + parameters: IssuesListEndpoint; + request: IssuesListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/licenses/#list-commonly-used-licenses + */ + "GET /licenses": { + parameters: LicensesListCommonlyUsedEndpoint; + request: LicensesListCommonlyUsedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/licenses/#get-an-individual-license + */ + "GET /licenses/:license": { + parameters: LicensesGetEndpoint; + request: LicensesGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#get-a-subscription-plan-for-an-account + */ + "GET /marketplace_listing/accounts/:account_id": { + parameters: AppsGetSubscriptionPlanForAccountEndpoint; + request: AppsGetSubscriptionPlanForAccountRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-plans + */ + "GET /marketplace_listing/plans": { + parameters: AppsListPlansEndpoint; + request: AppsListPlansRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/:plan_id/accounts": { + parameters: AppsListAccountsForPlanEndpoint; + request: AppsListAccountsForPlanRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#get-a-subscription-plan-for-an-account-stubbed + */ + "GET /marketplace_listing/stubbed/accounts/:account_id": { + parameters: AppsGetSubscriptionPlanForAccountStubbedEndpoint; + request: AppsGetSubscriptionPlanForAccountStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": { + parameters: AppsListPlansStubbedEndpoint; + request: AppsListPlansStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/:plan_id/accounts": { + parameters: AppsListAccountsForPlanStubbedEndpoint; + request: AppsListAccountsForPlanStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/meta/#meta + */ + "GET /meta": { + parameters: MetaGetEndpoint; + request: MetaGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories + */ + "GET /networks/:owner/:repo/events": { + parameters: ActivityListPublicEventsForRepoNetworkEndpoint; + request: ActivityListPublicEventsForRepoNetworkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#list-notifications-for-the-authenticated-user + */ + "GET /notifications": { + parameters: ActivityListNotificationsForAuthenticatedUserEndpoint; + request: ActivityListNotificationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#get-a-thread + */ + "GET /notifications/threads/:thread_id": { + parameters: ActivityGetThreadEndpoint; + request: ActivityGetThreadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#get-a-thread-subscription-for-the-authenticated-user + */ + "GET /notifications/threads/:thread_id/subscription": { + parameters: ActivityGetThreadSubscriptionForAuthenticatedUserEndpoint; + request: ActivityGetThreadSubscriptionForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-all-organizations + */ + "GET /organizations": { + parameters: OrgsListEndpoint; + request: OrgsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#get-an-organization + */ + "GET /orgs/:org": { + parameters: OrgsGetEndpoint; + request: OrgsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/:org/actions/runners": { + parameters: ActionsListSelfHostedRunnersForOrgEndpoint; + request: ActionsListSelfHostedRunnersForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#get-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/:org/actions/runners/:runner_id": { + parameters: ActionsGetSelfHostedRunnerForOrgEndpoint; + request: ActionsGetSelfHostedRunnerForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-runner-applications-for-an-organization + */ + "GET /orgs/:org/actions/runners/downloads": { + parameters: ActionsListRunnerApplicationsForOrgEndpoint; + request: ActionsListRunnerApplicationsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#list-organization-secrets + */ + "GET /orgs/:org/actions/secrets": { + parameters: ActionsListOrgSecretsEndpoint; + request: ActionsListOrgSecretsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-an-organization-secret + */ + "GET /orgs/:org/actions/secrets/:secret_name": { + parameters: ActionsGetOrgSecretEndpoint; + request: ActionsGetOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/:org/actions/secrets/:secret_name/repositories": { + parameters: ActionsListSelectedReposForOrgSecretEndpoint; + request: ActionsListSelectedReposForOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-an-organization-public-key + */ + "GET /orgs/:org/actions/secrets/public-key": { + parameters: ActionsGetOrgPublicKeyEndpoint; + request: ActionsGetOrgPublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#list-blocked-users + */ + "GET /orgs/:org/blocks": { + parameters: OrgsListBlockedUsersEndpoint; + request: OrgsListBlockedUsersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#check-whether-a-user-is-blocked-from-an-organization + */ + "GET /orgs/:org/blocks/:username": { + parameters: OrgsCheckBlockedUserEndpoint; + request: OrgsCheckBlockedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-credential-authorizations-for-an-organization + */ + "GET /orgs/:org/credential-authorizations": { + parameters: OrgsListCredentialAuthorizationsEndpoint; + request: OrgsListCredentialAuthorizationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-organization-events + */ + "GET /orgs/:org/events": { + parameters: ActivityListPublicOrgEventsEndpoint; + request: ActivityListPublicOrgEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#list-hooks + */ + "GET /orgs/:org/hooks": { + parameters: OrgsListHooksEndpoint; + request: OrgsListHooksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#get-single-hook + */ + "GET /orgs/:org/hooks/:hook_id": { + parameters: OrgsGetHookEndpoint; + request: OrgsGetHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-an-organization-installation + */ + "GET /orgs/:org/installation": { + parameters: AppsGetOrgInstallationEndpoint; + request: AppsGetOrgInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-installations-for-an-organization + */ + "GET /orgs/:org/installations": { + parameters: OrgsListInstallationsEndpoint; + request: OrgsListInstallationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/orgs/#get-interaction-restrictions-for-an-organization + */ + "GET /orgs/:org/interaction-limits": { + parameters: InteractionsGetRestrictionsForOrgEndpoint; + request: InteractionsGetRestrictionsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#list-pending-organization-invitations + */ + "GET /orgs/:org/invitations": { + parameters: OrgsListPendingInvitationsEndpoint; + request: OrgsListPendingInvitationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#list-organization-invitation-teams + */ + "GET /orgs/:org/invitations/:invitation_id/teams": { + parameters: OrgsListInvitationTeamsEndpoint; + request: OrgsListInvitationTeamsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/:org/issues": { + parameters: IssuesListForOrgEndpoint; + request: IssuesListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#members-list + */ + "GET /orgs/:org/members": { + parameters: OrgsListMembersEndpoint; + request: OrgsListMembersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#check-membership + */ + "GET /orgs/:org/members/:username": { + parameters: OrgsCheckMembershipEndpoint; + request: OrgsCheckMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#get-organization-membership + */ + "GET /orgs/:org/memberships/:username": { + parameters: OrgsGetMembershipEndpoint; + request: OrgsGetMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#list-organization-migrations + */ + "GET /orgs/:org/migrations": { + parameters: MigrationsListForOrgEndpoint; + request: MigrationsListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#get-the-status-of-an-organization-migration + */ + "GET /orgs/:org/migrations/:migration_id": { + parameters: MigrationsGetStatusForOrgEndpoint; + request: MigrationsGetStatusForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#download-an-organization-migration-archive + */ + "GET /orgs/:org/migrations/:migration_id/archive": { + parameters: MigrationsDownloadArchiveForOrgEndpoint; + request: MigrationsDownloadArchiveForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#list-repositories-in-an-organization-migration + */ + "GET /orgs/:org/migrations/:migration_id/repositories": { + parameters: MigrationsListReposForOrgEndpoint; + request: MigrationsListReposForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/outside_collaborators/#list-outside-collaborators + */ + "GET /orgs/:org/outside_collaborators": { + parameters: OrgsListOutsideCollaboratorsEndpoint; + request: OrgsListOutsideCollaboratorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#list-organization-projects + */ + "GET /orgs/:org/projects": { + parameters: ProjectsListForOrgEndpoint; + request: ProjectsListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#public-members-list + */ + "GET /orgs/:org/public_members": { + parameters: OrgsListPublicMembersEndpoint; + request: OrgsListPublicMembersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#check-public-membership + */ + "GET /orgs/:org/public_members/:username": { + parameters: OrgsCheckPublicMembershipEndpoint; + request: OrgsCheckPublicMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-organization-repositories + */ + "GET /orgs/:org/repos": { + parameters: ReposListForOrgEndpoint; + request: ReposListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#list-idp-groups-in-an-organization + */ + "GET /orgs/:org/team-sync/groups": { + parameters: TeamsListIdPGroupsForOrgEndpoint; + request: TeamsListIdPGroupsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-teams + */ + "GET /orgs/:org/teams": { + parameters: TeamsListEndpoint; + request: TeamsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#get-team-by-name + */ + "GET /orgs/:org/teams/:team_slug": { + parameters: TeamsGetByNameEndpoint; + request: TeamsGetByNameRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#list-discussions + */ + "GET /orgs/:org/teams/:team_slug/discussions": { + parameters: TeamsListDiscussionsInOrgEndpoint; + request: TeamsListDiscussionsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#get-a-single-discussion + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number": { + parameters: TeamsGetDiscussionInOrgEndpoint; + request: TeamsGetDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#list-comments + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments": { + parameters: TeamsListDiscussionCommentsInOrgEndpoint; + request: TeamsListDiscussionCommentsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#get-a-single-comment + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsGetDiscussionCommentInOrgEndpoint; + request: TeamsGetDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsListForTeamDiscussionCommentInOrgEndpoint; + request: ReactionsListForTeamDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions": { + parameters: ReactionsListForTeamDiscussionInOrgEndpoint; + request: ReactionsListForTeamDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-pending-team-invitations + */ + "GET /orgs/:org/teams/:team_slug/invitations": { + parameters: TeamsListPendingInvitationsInOrgEndpoint; + request: TeamsListPendingInvitationsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-team-members + */ + "GET /orgs/:org/teams/:team_slug/members": { + parameters: TeamsListMembersInOrgEndpoint; + request: TeamsListMembersInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#get-team-membership + */ + "GET /orgs/:org/teams/:team_slug/memberships/:username": { + parameters: TeamsGetMembershipInOrgEndpoint; + request: TeamsGetMembershipInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-projects + */ + "GET /orgs/:org/teams/:team_slug/projects": { + parameters: TeamsListProjectsInOrgEndpoint; + request: TeamsListProjectsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#review-a-team-project + */ + "GET /orgs/:org/teams/:team_slug/projects/:project_id": { + parameters: TeamsReviewProjectInOrgEndpoint; + request: TeamsReviewProjectInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-repos + */ + "GET /orgs/:org/teams/:team_slug/repos": { + parameters: TeamsListReposInOrgEndpoint; + request: TeamsListReposInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#check-if-a-team-manages-a-repository + */ + "GET /orgs/:org/teams/:team_slug/repos/:owner/:repo": { + parameters: TeamsCheckManagesRepoInOrgEndpoint; + request: TeamsCheckManagesRepoInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#list-idp-groups-for-a-team + */ + "GET /orgs/:org/teams/:team_slug/team-sync/group-mappings": { + parameters: TeamsListIdPGroupsInOrgEndpoint; + request: TeamsListIdPGroupsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-child-teams + */ + "GET /orgs/:org/teams/:team_slug/teams": { + parameters: TeamsListChildInOrgEndpoint; + request: TeamsListChildInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#get-a-project + */ + "GET /projects/:project_id": { + parameters: ProjectsGetEndpoint; + request: ProjectsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#list-collaborators + */ + "GET /projects/:project_id/collaborators": { + parameters: ProjectsListCollaboratorsEndpoint; + request: ProjectsListCollaboratorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#review-a-users-permission-level + */ + "GET /projects/:project_id/collaborators/:username/permission": { + parameters: ProjectsReviewUserPermissionLevelEndpoint; + request: ProjectsReviewUserPermissionLevelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#list-project-columns + */ + "GET /projects/:project_id/columns": { + parameters: ProjectsListColumnsEndpoint; + request: ProjectsListColumnsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#get-a-project-column + */ + "GET /projects/columns/:column_id": { + parameters: ProjectsGetColumnEndpoint; + request: ProjectsGetColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#list-project-cards + */ + "GET /projects/columns/:column_id/cards": { + parameters: ProjectsListCardsEndpoint; + request: ProjectsListCardsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#get-a-project-card + */ + "GET /projects/columns/cards/:card_id": { + parameters: ProjectsGetCardEndpoint; + request: ProjectsGetCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/rate_limit/#get-your-current-rate-limit-status + */ + "GET /rate_limit": { + parameters: RateLimitGetEndpoint; + request: RateLimitGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#get-a-repository + */ + "GET /repos/:owner/:repo": { + parameters: ReposGetEndpoint; + request: ReposGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#get-archive-link + */ + "GET /repos/:owner/:repo/:archive_format/:ref": { + parameters: ReposGetArchiveLinkEndpoint; + request: ReposGetArchiveLinkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#list-artifacts-for-a-repository + */ + "GET /repos/:owner/:repo/actions/artifacts": { + parameters: ActionsListArtifactsForRepoEndpoint; + request: ActionsListArtifactsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#get-an-artifact + */ + "GET /repos/:owner/:repo/actions/artifacts/:artifact_id": { + parameters: ActionsGetArtifactEndpoint; + request: ActionsGetArtifactRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#download-an-artifact + */ + "GET /repos/:owner/:repo/actions/artifacts/:artifact_id/:archive_format": { + parameters: ActionsDownloadArtifactEndpoint; + request: ActionsDownloadArtifactRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-jobs/#get-a-workflow-job + */ + "GET /repos/:owner/:repo/actions/jobs/:job_id": { + parameters: ActionsGetWorkflowJobEndpoint; + request: ActionsGetWorkflowJobRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-jobs/#download-workflow-job-logs + */ + "GET /repos/:owner/:repo/actions/jobs/:job_id/logs": { + parameters: ActionsDownloadWorkflowJobLogsEndpoint; + request: ActionsDownloadWorkflowJobLogsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-self-hosted-runners-for-a-repository + */ + "GET /repos/:owner/:repo/actions/runners": { + parameters: ActionsListSelfHostedRunnersForRepoEndpoint; + request: ActionsListSelfHostedRunnersForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#get-a-self-hosted-runner-for-a-repository + */ + "GET /repos/:owner/:repo/actions/runners/:runner_id": { + parameters: ActionsGetSelfHostedRunnerForRepoEndpoint; + request: ActionsGetSelfHostedRunnerForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-runner-applications-for-a-repository + */ + "GET /repos/:owner/:repo/actions/runners/downloads": { + parameters: ActionsListRunnerApplicationsForRepoEndpoint; + request: ActionsListRunnerApplicationsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#list-repository-workflow-runs + */ + "GET /repos/:owner/:repo/actions/runs": { + parameters: ActionsListRepoWorkflowRunsEndpoint; + request: ActionsListRepoWorkflowRunsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#get-a-workflow-run + */ + "GET /repos/:owner/:repo/actions/runs/:run_id": { + parameters: ActionsGetWorkflowRunEndpoint; + request: ActionsGetWorkflowRunRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#list-workflow-run-artifacts + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/artifacts": { + parameters: ActionsListWorkflowRunArtifactsEndpoint; + request: ActionsListWorkflowRunArtifactsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-jobs/#list-jobs-for-a-workflow-run + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/jobs": { + parameters: ActionsListJobsForWorkflowRunEndpoint; + request: ActionsListJobsForWorkflowRunRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#download-workflow-run-logs + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/logs": { + parameters: ActionsDownloadWorkflowRunLogsEndpoint; + request: ActionsDownloadWorkflowRunLogsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#get-workflow-run-usage + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/timing": { + parameters: ActionsGetWorkflowRunUsageEndpoint; + request: ActionsGetWorkflowRunUsageRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#list-repository-secrets + */ + "GET /repos/:owner/:repo/actions/secrets": { + parameters: ActionsListRepoSecretsEndpoint; + request: ActionsListRepoSecretsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-a-repository-secret + */ + "GET /repos/:owner/:repo/actions/secrets/:secret_name": { + parameters: ActionsGetRepoSecretEndpoint; + request: ActionsGetRepoSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-a-repository-public-key + */ + "GET /repos/:owner/:repo/actions/secrets/public-key": { + parameters: ActionsGetRepoPublicKeyEndpoint; + request: ActionsGetRepoPublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflows/#list-repository-workflows + */ + "GET /repos/:owner/:repo/actions/workflows": { + parameters: ActionsListRepoWorkflowsEndpoint; + request: ActionsListRepoWorkflowsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflows/#get-a-workflow + */ + "GET /repos/:owner/:repo/actions/workflows/:workflow_id": { + parameters: ActionsGetWorkflowEndpoint; + request: ActionsGetWorkflowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs + */ + "GET /repos/:owner/:repo/actions/workflows/:workflow_id/runs": { + parameters: ActionsListWorkflowRunsEndpoint; + request: ActionsListWorkflowRunsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflows/#get-workflow-usage + */ + "GET /repos/:owner/:repo/actions/workflows/:workflow_id/timing": { + parameters: ActionsGetWorkflowUsageEndpoint; + request: ActionsGetWorkflowUsageRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#list-assignees + */ + "GET /repos/:owner/:repo/assignees": { + parameters: IssuesListAssigneesEndpoint; + request: IssuesListAssigneesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#check-assignee + */ + "GET /repos/:owner/:repo/assignees/:assignee": { + parameters: IssuesCheckAssigneeEndpoint; + request: IssuesCheckAssigneeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-branches + */ + "GET /repos/:owner/:repo/branches": { + parameters: ReposListBranchesEndpoint; + request: ReposListBranchesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-branch + */ + "GET /repos/:owner/:repo/branches/:branch": { + parameters: ReposGetBranchEndpoint; + request: ReposGetBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-branch-protection + */ + "GET /repos/:owner/:repo/branches/:branch/protection": { + parameters: ReposGetBranchProtectionEndpoint; + request: ReposGetBranchProtectionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-admin-enforcement-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/enforce_admins": { + parameters: ReposGetProtectedBranchAdminEnforcementEndpoint; + request: ReposGetProtectedBranchAdminEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-pull-request-review-enforcement-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": { + parameters: ReposGetProtectedBranchPullRequestReviewEnforcementEndpoint; + request: ReposGetProtectedBranchPullRequestReviewEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-required-signatures-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_signatures": { + parameters: ReposGetProtectedBranchRequiredSignaturesEndpoint; + request: ReposGetProtectedBranchRequiredSignaturesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-required-status-checks-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks": { + parameters: ReposGetProtectedBranchRequiredStatusChecksEndpoint; + request: ReposGetProtectedBranchRequiredStatusChecksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-required-status-checks-contexts-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposListProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposListProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-restrictions-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions": { + parameters: ReposGetProtectedBranchRestrictionsEndpoint; + request: ReposGetProtectedBranchRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-apps-with-access-to-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposGetAppsWithAccessToProtectedBranchEndpoint; + request: ReposGetAppsWithAccessToProtectedBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-teams-with-access-to-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposGetTeamsWithAccessToProtectedBranchEndpoint; + request: ReposGetTeamsWithAccessToProtectedBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-users-with-access-to-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposGetUsersWithAccessToProtectedBranchEndpoint; + request: ReposGetUsersWithAccessToProtectedBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#get-a-check-run + */ + "GET /repos/:owner/:repo/check-runs/:check_run_id": { + parameters: ChecksGetEndpoint; + request: ChecksGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#list-check-run-annotations + */ + "GET /repos/:owner/:repo/check-runs/:check_run_id/annotations": { + parameters: ChecksListAnnotationsEndpoint; + request: ChecksListAnnotationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#get-a-check-suite + */ + "GET /repos/:owner/:repo/check-suites/:check_suite_id": { + parameters: ChecksGetSuiteEndpoint; + request: ChecksGetSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#list-check-runs-in-a-check-suite + */ + "GET /repos/:owner/:repo/check-suites/:check_suite_id/check-runs": { + parameters: ChecksListForSuiteEndpoint; + request: ChecksListForSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/code-scanning/#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/:owner/:repo/code-scanning/alerts": { + parameters: CodeScanningListAlertsForRepoEndpoint; + request: CodeScanningListAlertsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/code-scanning/#get-a-code-scanning-alert + */ + "GET /repos/:owner/:repo/code-scanning/alerts/:alert_id": { + parameters: CodeScanningGetAlertEndpoint; + request: CodeScanningGetAlertRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#list-collaborators + */ + "GET /repos/:owner/:repo/collaborators": { + parameters: ReposListCollaboratorsEndpoint; + request: ReposListCollaboratorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#check-if-a-user-is-a-collaborator + */ + "GET /repos/:owner/:repo/collaborators/:username": { + parameters: ReposCheckCollaboratorEndpoint; + request: ReposCheckCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level + */ + "GET /repos/:owner/:repo/collaborators/:username/permission": { + parameters: ReposGetCollaboratorPermissionLevelEndpoint; + request: ReposGetCollaboratorPermissionLevelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository + */ + "GET /repos/:owner/:repo/comments": { + parameters: ReposListCommitCommentsEndpoint; + request: ReposListCommitCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#get-a-single-commit-comment + */ + "GET /repos/:owner/:repo/comments/:comment_id": { + parameters: ReposGetCommitCommentEndpoint; + request: ReposGetCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-commit-comment + */ + "GET /repos/:owner/:repo/comments/:comment_id/reactions": { + parameters: ReactionsListForCommitCommentEndpoint; + request: ReactionsListForCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository + */ + "GET /repos/:owner/:repo/commits": { + parameters: ReposListCommitsEndpoint; + request: ReposListCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#list-branches-for-head-commit + */ + "GET /repos/:owner/:repo/commits/:commit_sha/branches-where-head": { + parameters: ReposListBranchesForHeadCommitEndpoint; + request: ReposListBranchesForHeadCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#list-comments-for-a-single-commit + */ + "GET /repos/:owner/:repo/commits/:commit_sha/comments": { + parameters: ReposListCommentsForCommitEndpoint; + request: ReposListCommentsForCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#list-pull-requests-associated-with-commit + */ + "GET /repos/:owner/:repo/commits/:commit_sha/pulls": { + parameters: ReposListPullRequestsAssociatedWithCommitEndpoint; + request: ReposListPullRequestsAssociatedWithCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit + */ + "GET /repos/:owner/:repo/commits/:ref": { + parameters: ReposGetCommitEndpoint; + request: ReposGetCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#list-check-runs-for-a-git-reference + */ + "GET /repos/:owner/:repo/commits/:ref/check-runs": { + parameters: ChecksListForRefEndpoint; + request: ChecksListForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#list-check-suites-for-a-git-reference + */ + "GET /repos/:owner/:repo/commits/:ref/check-suites": { + parameters: ChecksListSuitesForRefEndpoint; + request: ChecksListSuitesForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ + "GET /repos/:owner/:repo/commits/:ref/status": { + parameters: ReposGetCombinedStatusForRefEndpoint; + request: ReposGetCombinedStatusForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref + */ + "GET /repos/:owner/:repo/commits/:ref/statuses": { + parameters: ReposListStatusesForRefEndpoint; + request: ReposListStatusesForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/codes_of_conduct/#get-the-contents-of-a-repositorys-code-of-conduct + */ + "GET /repos/:owner/:repo/community/code_of_conduct": { + parameters: CodesOfConductGetForRepoEndpoint; + request: CodesOfConductGetForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/community/#retrieve-community-profile-metrics + */ + "GET /repos/:owner/:repo/community/profile": { + parameters: ReposRetrieveCommunityProfileMetricsEndpoint; + request: ReposRetrieveCommunityProfileMetricsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#compare-two-commits + */ + "GET /repos/:owner/:repo/compare/:base...:head": { + parameters: ReposCompareCommitsEndpoint; + request: ReposCompareCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#get-contents + */ + "GET /repos/:owner/:repo/contents/:path": { + parameters: ReposGetContentsEndpoint; + request: ReposGetContentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-contributors + */ + "GET /repos/:owner/:repo/contributors": { + parameters: ReposListContributorsEndpoint; + request: ReposListContributorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#list-deployments + */ + "GET /repos/:owner/:repo/deployments": { + parameters: ReposListDeploymentsEndpoint; + request: ReposListDeploymentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#get-a-single-deployment + */ + "GET /repos/:owner/:repo/deployments/:deployment_id": { + parameters: ReposGetDeploymentEndpoint; + request: ReposGetDeploymentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#list-deployment-statuses + */ + "GET /repos/:owner/:repo/deployments/:deployment_id/statuses": { + parameters: ReposListDeploymentStatusesEndpoint; + request: ReposListDeploymentStatusesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#get-a-single-deployment-status + */ + "GET /repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id": { + parameters: ReposGetDeploymentStatusEndpoint; + request: ReposGetDeploymentStatusRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/downloads/#list-downloads-for-a-repository + */ + "GET /repos/:owner/:repo/downloads": { + parameters: ReposListDownloadsEndpoint; + request: ReposListDownloadsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/downloads/#get-a-single-download + */ + "GET /repos/:owner/:repo/downloads/:download_id": { + parameters: ReposGetDownloadEndpoint; + request: ReposGetDownloadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-repository-events + */ + "GET /repos/:owner/:repo/events": { + parameters: ActivityListRepoEventsEndpoint; + request: ActivityListRepoEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/forks/#list-forks + */ + "GET /repos/:owner/:repo/forks": { + parameters: ReposListForksEndpoint; + request: ReposListForksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/blobs/#get-a-blob + */ + "GET /repos/:owner/:repo/git/blobs/:file_sha": { + parameters: GitGetBlobEndpoint; + request: GitGetBlobRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/commits/#get-a-commit + */ + "GET /repos/:owner/:repo/git/commits/:commit_sha": { + parameters: GitGetCommitEndpoint; + request: GitGetCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#list-matching-references + */ + "GET /repos/:owner/:repo/git/matching-refs/:ref": { + parameters: GitListMatchingRefsEndpoint; + request: GitListMatchingRefsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#get-a-single-reference + */ + "GET /repos/:owner/:repo/git/ref/:ref": { + parameters: GitGetRefEndpoint; + request: GitGetRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/tags/#get-a-tag + */ + "GET /repos/:owner/:repo/git/tags/:tag_sha": { + parameters: GitGetTagEndpoint; + request: GitGetTagRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/trees/#get-a-tree + */ + "GET /repos/:owner/:repo/git/trees/:tree_sha": { + parameters: GitGetTreeEndpoint; + request: GitGetTreeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#list-hooks + */ + "GET /repos/:owner/:repo/hooks": { + parameters: ReposListHooksEndpoint; + request: ReposListHooksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#get-single-hook + */ + "GET /repos/:owner/:repo/hooks/:hook_id": { + parameters: ReposGetHookEndpoint; + request: ReposGetHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#get-import-progress + */ + "GET /repos/:owner/:repo/import": { + parameters: MigrationsGetImportProgressEndpoint; + request: MigrationsGetImportProgressRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#get-commit-authors + */ + "GET /repos/:owner/:repo/import/authors": { + parameters: MigrationsGetCommitAuthorsEndpoint; + request: MigrationsGetCommitAuthorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#get-large-files + */ + "GET /repos/:owner/:repo/import/large_files": { + parameters: MigrationsGetLargeFilesEndpoint; + request: MigrationsGetLargeFilesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-a-repository-installation + */ + "GET /repos/:owner/:repo/installation": { + parameters: AppsGetRepoInstallationEndpoint; + request: AppsGetRepoInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/repos/#get-interaction-restrictions-for-a-repository + */ + "GET /repos/:owner/:repo/interaction-limits": { + parameters: InteractionsGetRestrictionsForRepoEndpoint; + request: InteractionsGetRestrictionsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#list-invitations-for-a-repository + */ + "GET /repos/:owner/:repo/invitations": { + parameters: ReposListInvitationsEndpoint; + request: ReposListInvitationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-repository-issues + */ + "GET /repos/:owner/:repo/issues": { + parameters: IssuesListForRepoEndpoint; + request: IssuesListForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#get-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number": { + parameters: IssuesGetEndpoint; + request: IssuesGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/comments": { + parameters: IssuesListCommentsEndpoint; + request: IssuesListCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/events/#list-events-for-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/events": { + parameters: IssuesListEventsEndpoint; + request: IssuesListEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#list-labels-on-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesListLabelsOnIssueEndpoint; + request: IssuesListLabelsOnIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/reactions": { + parameters: ReactionsListForIssueEndpoint; + request: ReactionsListForIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/timeline/#list-events-for-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/timeline": { + parameters: IssuesListEventsForTimelineEndpoint; + request: IssuesListEventsForTimelineRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#list-comments-in-a-repository + */ + "GET /repos/:owner/:repo/issues/comments": { + parameters: IssuesListCommentsForRepoEndpoint; + request: IssuesListCommentsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#get-a-single-comment + */ + "GET /repos/:owner/:repo/issues/comments/:comment_id": { + parameters: IssuesGetCommentEndpoint; + request: IssuesGetCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-an-issue-comment + */ + "GET /repos/:owner/:repo/issues/comments/:comment_id/reactions": { + parameters: ReactionsListForIssueCommentEndpoint; + request: ReactionsListForIssueCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/events/#list-events-for-a-repository + */ + "GET /repos/:owner/:repo/issues/events": { + parameters: IssuesListEventsForRepoEndpoint; + request: IssuesListEventsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/events/#get-a-single-event + */ + "GET /repos/:owner/:repo/issues/events/:event_id": { + parameters: IssuesGetEventEndpoint; + request: IssuesGetEventRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#list-deploy-keys + */ + "GET /repos/:owner/:repo/keys": { + parameters: ReposListDeployKeysEndpoint; + request: ReposListDeployKeysRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#get-a-deploy-key + */ + "GET /repos/:owner/:repo/keys/:key_id": { + parameters: ReposGetDeployKeyEndpoint; + request: ReposGetDeployKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository + */ + "GET /repos/:owner/:repo/labels": { + parameters: IssuesListLabelsForRepoEndpoint; + request: IssuesListLabelsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#get-a-single-label + */ + "GET /repos/:owner/:repo/labels/:name": { + parameters: IssuesGetLabelEndpoint; + request: IssuesGetLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-languages + */ + "GET /repos/:owner/:repo/languages": { + parameters: ReposListLanguagesEndpoint; + request: ReposListLanguagesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/licenses/#get-the-contents-of-a-repositorys-license + */ + "GET /repos/:owner/:repo/license": { + parameters: LicensesGetForRepoEndpoint; + request: LicensesGetForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository + */ + "GET /repos/:owner/:repo/milestones": { + parameters: IssuesListMilestonesForRepoEndpoint; + request: IssuesListMilestonesForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#get-a-single-milestone + */ + "GET /repos/:owner/:repo/milestones/:milestone_number": { + parameters: IssuesGetMilestoneEndpoint; + request: IssuesGetMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone + */ + "GET /repos/:owner/:repo/milestones/:milestone_number/labels": { + parameters: IssuesListLabelsForMilestoneEndpoint; + request: IssuesListLabelsForMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/:owner/:repo/notifications": { + parameters: ActivityListRepoNotificationsForAuthenticatedUserEndpoint; + request: ActivityListRepoNotificationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#get-information-about-a-pages-site + */ + "GET /repos/:owner/:repo/pages": { + parameters: ReposGetPagesEndpoint; + request: ReposGetPagesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#list-pages-builds + */ + "GET /repos/:owner/:repo/pages/builds": { + parameters: ReposListPagesBuildsEndpoint; + request: ReposListPagesBuildsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#get-a-specific-pages-build + */ + "GET /repos/:owner/:repo/pages/builds/:build_id": { + parameters: ReposGetPagesBuildEndpoint; + request: ReposGetPagesBuildRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#get-latest-pages-build + */ + "GET /repos/:owner/:repo/pages/builds/latest": { + parameters: ReposGetLatestPagesBuildEndpoint; + request: ReposGetLatestPagesBuildRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#list-repository-projects + */ + "GET /repos/:owner/:repo/projects": { + parameters: ProjectsListForRepoEndpoint; + request: ProjectsListForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#list-pull-requests + */ + "GET /repos/:owner/:repo/pulls": { + parameters: PullsListEndpoint; + request: PullsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#get-a-single-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number": { + parameters: PullsGetEndpoint; + request: PullsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number/comments": { + parameters: PullsListCommentsEndpoint; + request: PullsListCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#list-commits-on-a-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number/commits": { + parameters: PullsListCommitsEndpoint; + request: PullsListCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#list-pull-requests-files + */ + "GET /repos/:owner/:repo/pulls/:pull_number/files": { + parameters: PullsListFilesEndpoint; + request: PullsListFilesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#get-if-a-pull-request-has-been-merged + */ + "GET /repos/:owner/:repo/pulls/:pull_number/merge": { + parameters: PullsCheckIfMergedEndpoint; + request: PullsCheckIfMergedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/review_requests/#list-review-requests + */ + "GET /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": { + parameters: PullsListReviewRequestsEndpoint; + request: PullsListReviewRequestsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number/reviews": { + parameters: PullsListReviewsEndpoint; + request: PullsListReviewsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#get-a-single-review + */ + "GET /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": { + parameters: PullsGetReviewEndpoint; + request: PullsGetReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review + */ + "GET /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/comments": { + parameters: PullsGetCommentsForReviewEndpoint; + request: PullsGetCommentsForReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#list-comments-in-a-repository + */ + "GET /repos/:owner/:repo/pulls/comments": { + parameters: PullsListCommentsForRepoEndpoint; + request: PullsListCommentsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#get-a-single-comment + */ + "GET /repos/:owner/:repo/pulls/comments/:comment_id": { + parameters: PullsGetCommentEndpoint; + request: PullsGetCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/:owner/:repo/pulls/comments/:comment_id/reactions": { + parameters: ReactionsListForPullRequestReviewCommentEndpoint; + request: ReactionsListForPullRequestReviewCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#get-the-readme + */ + "GET /repos/:owner/:repo/readme": { + parameters: ReposGetReadmeEndpoint; + request: ReposGetReadmeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository + */ + "GET /repos/:owner/:repo/releases": { + parameters: ReposListReleasesEndpoint; + request: ReposListReleasesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-a-single-release + */ + "GET /repos/:owner/:repo/releases/:release_id": { + parameters: ReposGetReleaseEndpoint; + request: ReposGetReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#list-assets-for-a-release + */ + "GET /repos/:owner/:repo/releases/:release_id/assets": { + parameters: ReposListAssetsForReleaseEndpoint; + request: ReposListAssetsForReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-a-single-release-asset + */ + "GET /repos/:owner/:repo/releases/assets/:asset_id": { + parameters: ReposGetReleaseAssetEndpoint; + request: ReposGetReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-the-latest-release + */ + "GET /repos/:owner/:repo/releases/latest": { + parameters: ReposGetLatestReleaseEndpoint; + request: ReposGetLatestReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name + */ + "GET /repos/:owner/:repo/releases/tags/:tag": { + parameters: ReposGetReleaseByTagEndpoint; + request: ReposGetReleaseByTagRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#list-stargazers + */ + "GET /repos/:owner/:repo/stargazers": { + parameters: ActivityListStargazersForRepoEndpoint; + request: ActivityListStargazersForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-number-of-additions-and-deletions-per-week + */ + "GET /repos/:owner/:repo/stats/code_frequency": { + parameters: ReposGetCodeFrequencyStatsEndpoint; + request: ReposGetCodeFrequencyStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-last-year-of-commit-activity-data + */ + "GET /repos/:owner/:repo/stats/commit_activity": { + parameters: ReposGetCommitActivityStatsEndpoint; + request: ReposGetCommitActivityStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-contributors-list-with-additions-deletions-and-commit-counts + */ + "GET /repos/:owner/:repo/stats/contributors": { + parameters: ReposGetContributorsStatsEndpoint; + request: ReposGetContributorsStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-weekly-commit-count-for-the-repository-owner-and-everyone-else + */ + "GET /repos/:owner/:repo/stats/participation": { + parameters: ReposGetParticipationStatsEndpoint; + request: ReposGetParticipationStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-number-of-commits-per-hour-in-each-day + */ + "GET /repos/:owner/:repo/stats/punch_card": { + parameters: ReposGetPunchCardStatsEndpoint; + request: ReposGetPunchCardStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#list-watchers + */ + "GET /repos/:owner/:repo/subscribers": { + parameters: ActivityListWatchersForRepoEndpoint; + request: ActivityListWatchersForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#get-a-repository-subscription + */ + "GET /repos/:owner/:repo/subscription": { + parameters: ActivityGetRepoSubscriptionEndpoint; + request: ActivityGetRepoSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-tags + */ + "GET /repos/:owner/:repo/tags": { + parameters: ReposListTagsEndpoint; + request: ReposListTagsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-teams + */ + "GET /repos/:owner/:repo/teams": { + parameters: ReposListTeamsEndpoint; + request: ReposListTeamsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#get-all-repository-topics + */ + "GET /repos/:owner/:repo/topics": { + parameters: ReposGetAllTopicsEndpoint; + request: ReposGetAllTopicsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#clones + */ + "GET /repos/:owner/:repo/traffic/clones": { + parameters: ReposGetClonesEndpoint; + request: ReposGetClonesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#list-paths + */ + "GET /repos/:owner/:repo/traffic/popular/paths": { + parameters: ReposGetTopPathsEndpoint; + request: ReposGetTopPathsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#list-referrers + */ + "GET /repos/:owner/:repo/traffic/popular/referrers": { + parameters: ReposGetTopReferrersEndpoint; + request: ReposGetTopReferrersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#views + */ + "GET /repos/:owner/:repo/traffic/views": { + parameters: ReposGetViewsEndpoint; + request: ReposGetViewsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#check-if-vulnerability-alerts-are-enabled-for-a-repository + */ + "GET /repos/:owner/:repo/vulnerability-alerts": { + parameters: ReposCheckVulnerabilityAlertsEndpoint; + request: ReposCheckVulnerabilityAlertsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-public-repositories + */ + "GET /repositories": { + parameters: ReposListPublicEndpoint; + request: ReposListPublicRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#get-a-list-of-provisioned-identities + */ + "GET /scim/v2/organizations/:org/Users": { + parameters: ScimListProvisionedIdentitiesEndpoint; + request: ScimListProvisionedIdentitiesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#get-provisioning-details-for-a-single-user + */ + "GET /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimGetProvisioningDetailsForUserEndpoint; + request: ScimGetProvisioningDetailsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-code + */ + "GET /search/code": { + parameters: SearchCodeEndpoint; + request: SearchCodeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-commits + */ + "GET /search/commits": { + parameters: SearchCommitsEndpoint; + request: SearchCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-issues-and-pull-requests + */ + "GET /search/issues": { + parameters: SearchIssuesAndPullRequestsEndpoint; + request: SearchIssuesAndPullRequestsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-labels + */ + "GET /search/labels": { + parameters: SearchLabelsEndpoint; + request: SearchLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-repositories + */ + "GET /search/repositories": { + parameters: SearchReposEndpoint; + request: SearchReposRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-topics + */ + "GET /search/topics": { + parameters: SearchTopicsEndpoint; + request: SearchTopicsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-users + */ + "GET /search/users": { + parameters: SearchUsersEndpoint; + request: SearchUsersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#get-team-legacy + */ + "GET /teams/:team_id": { + parameters: TeamsGetLegacyEndpoint; + request: TeamsGetLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#list-discussions-legacy + */ + "GET /teams/:team_id/discussions": { + parameters: TeamsListDiscussionsLegacyEndpoint; + request: TeamsListDiscussionsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#get-a-single-discussion-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number": { + parameters: TeamsGetDiscussionLegacyEndpoint; + request: TeamsGetDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#list-comments-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/comments": { + parameters: TeamsListDiscussionCommentsLegacyEndpoint; + request: TeamsListDiscussionCommentsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#get-a-single-comment-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsGetDiscussionCommentLegacyEndpoint; + request: TeamsGetDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsListForTeamDiscussionCommentLegacyEndpoint; + request: ReactionsListForTeamDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/reactions": { + parameters: ReactionsListForTeamDiscussionLegacyEndpoint; + request: ReactionsListForTeamDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-pending-team-invitations-legacy + */ + "GET /teams/:team_id/invitations": { + parameters: TeamsListPendingInvitationsLegacyEndpoint; + request: TeamsListPendingInvitationsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-team-members-legacy + */ + "GET /teams/:team_id/members": { + parameters: TeamsListMembersLegacyEndpoint; + request: TeamsListMembersLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#get-team-member-legacy + */ + "GET /teams/:team_id/members/:username": { + parameters: TeamsGetMemberLegacyEndpoint; + request: TeamsGetMemberLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#get-team-membership-legacy + */ + "GET /teams/:team_id/memberships/:username": { + parameters: TeamsGetMembershipLegacyEndpoint; + request: TeamsGetMembershipLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-projects-legacy + */ + "GET /teams/:team_id/projects": { + parameters: TeamsListProjectsLegacyEndpoint; + request: TeamsListProjectsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#review-a-team-project-legacy + */ + "GET /teams/:team_id/projects/:project_id": { + parameters: TeamsReviewProjectLegacyEndpoint; + request: TeamsReviewProjectLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-repos-legacy + */ + "GET /teams/:team_id/repos": { + parameters: TeamsListReposLegacyEndpoint; + request: TeamsListReposLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#check-if-a-team-manages-a-repository-legacy + */ + "GET /teams/:team_id/repos/:owner/:repo": { + parameters: TeamsCheckManagesRepoLegacyEndpoint; + request: TeamsCheckManagesRepoLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#list-idp-groups-for-a-team-legacy + */ + "GET /teams/:team_id/team-sync/group-mappings": { + parameters: TeamsListIdPGroupsForLegacyEndpoint; + request: TeamsListIdPGroupsForLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-child-teams-legacy + */ + "GET /teams/:team_id/teams": { + parameters: TeamsListChildLegacyEndpoint; + request: TeamsListChildLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-the-authenticated-user + */ + "GET /user": { + parameters: UsersGetAuthenticatedEndpoint; + request: UsersGetAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#list-repositories-for-a-user-migration + */ + "GET /user/:migration_id/repositories": { + parameters: MigrationsListReposForUserEndpoint; + request: MigrationsListReposForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#list-blocked-users + */ + "GET /user/blocks": { + parameters: UsersListBlockedEndpoint; + request: UsersListBlockedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#check-whether-youve-blocked-a-user + */ + "GET /user/blocks/:username": { + parameters: UsersCheckBlockedEndpoint; + request: UsersCheckBlockedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user + */ + "GET /user/emails": { + parameters: UsersListEmailsEndpoint; + request: UsersListEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-followers-of-the-authenticated-user + */ + "GET /user/followers": { + parameters: UsersListFollowersForAuthenticatedUserEndpoint; + request: UsersListFollowersForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-users-followed-by-the-authenticated-user + */ + "GET /user/following": { + parameters: UsersListFollowedByAuthenticatedEndpoint; + request: UsersListFollowedByAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#check-if-you-are-following-a-user + */ + "GET /user/following/:username": { + parameters: UsersCheckFollowingEndpoint; + request: UsersCheckFollowingRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#list-your-gpg-keys + */ + "GET /user/gpg_keys": { + parameters: UsersListGpgKeysEndpoint; + request: UsersListGpgKeysRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#get-a-single-gpg-key + */ + "GET /user/gpg_keys/:gpg_key_id": { + parameters: UsersGetGpgKeyEndpoint; + request: UsersGetGpgKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#list-installations-for-a-user + */ + "GET /user/installations": { + parameters: AppsListInstallationsForAuthenticatedUserEndpoint; + request: AppsListInstallationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#list-repositories-accessible-to-the-user-for-an-installation + */ + "GET /user/installations/:installation_id/repositories": { + parameters: AppsListInstallationReposForAuthenticatedUserEndpoint; + request: AppsListInstallationReposForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": { + parameters: IssuesListForAuthenticatedUserEndpoint; + request: IssuesListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#list-your-public-keys + */ + "GET /user/keys": { + parameters: UsersListPublicKeysEndpoint; + request: UsersListPublicKeysRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#get-a-single-public-key + */ + "GET /user/keys/:key_id": { + parameters: UsersGetPublicKeyEndpoint; + request: UsersGetPublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": { + parameters: AppsListSubscriptionsForAuthenticatedUserEndpoint; + request: AppsListSubscriptionsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": { + parameters: AppsListSubscriptionsForAuthenticatedUserStubbedEndpoint; + request: AppsListSubscriptionsForAuthenticatedUserStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#list-your-organization-memberships + */ + "GET /user/memberships/orgs": { + parameters: OrgsListMembershipsEndpoint; + request: OrgsListMembershipsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#get-your-organization-membership + */ + "GET /user/memberships/orgs/:org": { + parameters: OrgsGetMembershipForAuthenticatedUserEndpoint; + request: OrgsGetMembershipForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#list-user-migrations + */ + "GET /user/migrations": { + parameters: MigrationsListForAuthenticatedUserEndpoint; + request: MigrationsListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#get-the-status-of-a-user-migration + */ + "GET /user/migrations/:migration_id": { + parameters: MigrationsGetStatusForAuthenticatedUserEndpoint; + request: MigrationsGetStatusForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#download-a-user-migration-archive + */ + "GET /user/migrations/:migration_id/archive": { + parameters: MigrationsGetArchiveForAuthenticatedUserEndpoint; + request: MigrationsGetArchiveForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-your-organizations + */ + "GET /user/orgs": { + parameters: OrgsListForAuthenticatedUserEndpoint; + request: OrgsListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#list-public-email-addresses-for-a-user + */ + "GET /user/public_emails": { + parameters: UsersListPublicEmailsEndpoint; + request: UsersListPublicEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": { + parameters: ReposListForAuthenticatedUserEndpoint; + request: ReposListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#list-a-users-repository-invitations + */ + "GET /user/repository_invitations": { + parameters: ReposListInvitationsForAuthenticatedUserEndpoint; + request: ReposListInvitationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": { + parameters: ActivityListReposStarredByAuthenticatedUserEndpoint; + request: ActivityListReposStarredByAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#check-if-a-repository-is-starred-by-the-authenticated-user + */ + "GET /user/starred/:owner/:repo": { + parameters: ActivityCheckRepoIsStarredByAuthenticatedUserEndpoint; + request: ActivityCheckRepoIsStarredByAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": { + parameters: ActivityListWatchedReposForAuthenticatedUserEndpoint; + request: ActivityListWatchedReposForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-user-teams + */ + "GET /user/teams": { + parameters: TeamsListForAuthenticatedUserEndpoint; + request: TeamsListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-all-users + */ + "GET /users": { + parameters: UsersListEndpoint; + request: UsersListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-a-single-user + */ + "GET /users/:username": { + parameters: UsersGetByUsernameEndpoint; + request: UsersGetByUsernameRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-events-for-the-authenticated-user + */ + "GET /users/:username/events": { + parameters: ActivityListEventsForAuthenticatedUserEndpoint; + request: ActivityListEventsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-organization-events-for-the-authenticated-user + */ + "GET /users/:username/events/orgs/:org": { + parameters: ActivityListOrgEventsForAuthenticatedUserEndpoint; + request: ActivityListOrgEventsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events-for-a-user + */ + "GET /users/:username/events/public": { + parameters: ActivityListPublicEventsForUserEndpoint; + request: ActivityListPublicEventsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-followers-of-a-user + */ + "GET /users/:username/followers": { + parameters: UsersListFollowersForUserEndpoint; + request: UsersListFollowersForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user + */ + "GET /users/:username/following": { + parameters: UsersListFollowingForUserEndpoint; + request: UsersListFollowingForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#check-if-one-user-follows-another + */ + "GET /users/:username/following/:target_user": { + parameters: UsersCheckFollowingForUserEndpoint; + request: UsersCheckFollowingForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gists-for-a-user + */ + "GET /users/:username/gists": { + parameters: GistsListForUserEndpoint; + request: GistsListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#list-gpg-keys-for-a-user + */ + "GET /users/:username/gpg_keys": { + parameters: UsersListGpgKeysForUserEndpoint; + request: UsersListGpgKeysForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-contextual-information-about-a-user + */ + "GET /users/:username/hovercard": { + parameters: UsersGetContextForUserEndpoint; + request: UsersGetContextForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-a-user-installation + */ + "GET /users/:username/installation": { + parameters: AppsGetUserInstallationEndpoint; + request: AppsGetUserInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user + */ + "GET /users/:username/keys": { + parameters: UsersListPublicKeysForUserEndpoint; + request: UsersListPublicKeysForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-user-organizations + */ + "GET /users/:username/orgs": { + parameters: OrgsListForUserEndpoint; + request: OrgsListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#list-user-projects + */ + "GET /users/:username/projects": { + parameters: ProjectsListForUserEndpoint; + request: ProjectsListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-events-received-by-the-authenticated-user + */ + "GET /users/:username/received_events": { + parameters: ActivityListReceivedEventsForUserEndpoint; + request: ActivityListReceivedEventsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events-received-by-a-user + */ + "GET /users/:username/received_events/public": { + parameters: ActivityListReceivedPublicEventsForUserEndpoint; + request: ActivityListReceivedPublicEventsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-repositories-for-a-user + */ + "GET /users/:username/repos": { + parameters: ReposListForUserEndpoint; + request: ReposListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#list-repositories-starred-by-a-user + */ + "GET /users/:username/starred": { + parameters: ActivityListReposStarredByUserEndpoint; + request: ActivityListReposStarredByUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#list-repositories-watched-by-a-user + */ + "GET /users/:username/subscriptions": { + parameters: ActivityListReposWatchedByUserEndpoint; + request: ActivityListReposWatchedByUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#reset-a-token + */ + "PATCH /applications/:client_id/token": { + parameters: AppsResetTokenEndpoint; + request: AppsResetTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#update-an-existing-authorization + */ + "PATCH /authorizations/:authorization_id": { + parameters: OauthAuthorizationsUpdateAuthorizationEndpoint; + request: OauthAuthorizationsUpdateAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#update-a-gist + */ + "PATCH /gists/:gist_id": { + parameters: GistsUpdateEndpoint; + request: GistsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#edit-a-comment + */ + "PATCH /gists/:gist_id/comments/:comment_id": { + parameters: GistsUpdateCommentEndpoint; + request: GistsUpdateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#mark-a-thread-as-read + */ + "PATCH /notifications/threads/:thread_id": { + parameters: ActivityMarkThreadAsReadEndpoint; + request: ActivityMarkThreadAsReadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#edit-an-organization + */ + "PATCH /orgs/:org": { + parameters: OrgsUpdateEndpoint; + request: OrgsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#edit-a-hook + */ + "PATCH /orgs/:org/hooks/:hook_id": { + parameters: OrgsUpdateHookEndpoint; + request: OrgsUpdateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#edit-team + */ + "PATCH /orgs/:org/teams/:team_slug": { + parameters: TeamsUpdateInOrgEndpoint; + request: TeamsUpdateInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#edit-a-discussion + */ + "PATCH /orgs/:org/teams/:team_slug/discussions/:discussion_number": { + parameters: TeamsUpdateDiscussionInOrgEndpoint; + request: TeamsUpdateDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#edit-a-comment + */ + "PATCH /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsUpdateDiscussionCommentInOrgEndpoint; + request: TeamsUpdateDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#create-or-update-idp-group-connections + */ + "PATCH /orgs/:org/teams/:team_slug/team-sync/group-mappings": { + parameters: TeamsCreateOrUpdateIdPGroupConnectionsInOrgEndpoint; + request: TeamsCreateOrUpdateIdPGroupConnectionsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#update-a-project + */ + "PATCH /projects/:project_id": { + parameters: ProjectsUpdateEndpoint; + request: ProjectsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#update-a-project-column + */ + "PATCH /projects/columns/:column_id": { + parameters: ProjectsUpdateColumnEndpoint; + request: ProjectsUpdateColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#update-a-project-card + */ + "PATCH /projects/columns/cards/:card_id": { + parameters: ProjectsUpdateCardEndpoint; + request: ProjectsUpdateCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#update-a-repository + */ + "PATCH /repos/:owner/:repo": { + parameters: ReposUpdateEndpoint; + request: ReposUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch + */ + "PATCH /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": { + parameters: ReposUpdateProtectedBranchPullRequestReviewEnforcementEndpoint; + request: ReposUpdateProtectedBranchPullRequestReviewEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#update-required-status-checks-of-protected-branch + */ + "PATCH /repos/:owner/:repo/branches/:branch/protection/required_status_checks": { + parameters: ReposUpdateProtectedBranchRequiredStatusChecksEndpoint; + request: ReposUpdateProtectedBranchRequiredStatusChecksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#update-a-check-run + */ + "PATCH /repos/:owner/:repo/check-runs/:check_run_id": { + parameters: ChecksUpdateEndpoint; + request: ChecksUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#update-repository-preferences-for-check-suites + */ + "PATCH /repos/:owner/:repo/check-suites/preferences": { + parameters: ChecksSetSuitesPreferencesEndpoint; + request: ChecksSetSuitesPreferencesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#update-a-commit-comment + */ + "PATCH /repos/:owner/:repo/comments/:comment_id": { + parameters: ReposUpdateCommitCommentEndpoint; + request: ReposUpdateCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#update-a-reference + */ + "PATCH /repos/:owner/:repo/git/refs/:ref": { + parameters: GitUpdateRefEndpoint; + request: GitUpdateRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#edit-a-hook + */ + "PATCH /repos/:owner/:repo/hooks/:hook_id": { + parameters: ReposUpdateHookEndpoint; + request: ReposUpdateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#update-existing-import + */ + "PATCH /repos/:owner/:repo/import": { + parameters: MigrationsUpdateImportEndpoint; + request: MigrationsUpdateImportRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#map-a-commit-author + */ + "PATCH /repos/:owner/:repo/import/authors/:author_id": { + parameters: MigrationsMapCommitAuthorEndpoint; + request: MigrationsMapCommitAuthorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#set-git-lfs-preference + */ + "PATCH /repos/:owner/:repo/import/lfs": { + parameters: MigrationsSetLfsPreferenceEndpoint; + request: MigrationsSetLfsPreferenceRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#update-a-repository-invitation + */ + "PATCH /repos/:owner/:repo/invitations/:invitation_id": { + parameters: ReposUpdateInvitationEndpoint; + request: ReposUpdateInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#update-an-issue + */ + "PATCH /repos/:owner/:repo/issues/:issue_number": { + parameters: IssuesUpdateEndpoint; + request: IssuesUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#edit-a-comment + */ + "PATCH /repos/:owner/:repo/issues/comments/:comment_id": { + parameters: IssuesUpdateCommentEndpoint; + request: IssuesUpdateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#update-a-label + */ + "PATCH /repos/:owner/:repo/labels/:name": { + parameters: IssuesUpdateLabelEndpoint; + request: IssuesUpdateLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#update-a-milestone + */ + "PATCH /repos/:owner/:repo/milestones/:milestone_number": { + parameters: IssuesUpdateMilestoneEndpoint; + request: IssuesUpdateMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#update-a-pull-request + */ + "PATCH /repos/:owner/:repo/pulls/:pull_number": { + parameters: PullsUpdateEndpoint; + request: PullsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#edit-a-comment + */ + "PATCH /repos/:owner/:repo/pulls/comments/:comment_id": { + parameters: PullsUpdateCommentEndpoint; + request: PullsUpdateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#edit-a-release + */ + "PATCH /repos/:owner/:repo/releases/:release_id": { + parameters: ReposUpdateReleaseEndpoint; + request: ReposUpdateReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#edit-a-release-asset + */ + "PATCH /repos/:owner/:repo/releases/assets/:asset_id": { + parameters: ReposUpdateReleaseAssetEndpoint; + request: ReposUpdateReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#update-a-user-attribute + */ + "PATCH /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimUpdateUserAttributeEndpoint; + request: ScimUpdateUserAttributeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#edit-team-legacy + */ + "PATCH /teams/:team_id": { + parameters: TeamsUpdateLegacyEndpoint; + request: TeamsUpdateLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#edit-a-discussion-legacy + */ + "PATCH /teams/:team_id/discussions/:discussion_number": { + parameters: TeamsUpdateDiscussionLegacyEndpoint; + request: TeamsUpdateDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#edit-a-comment-legacy + */ + "PATCH /teams/:team_id/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsUpdateDiscussionCommentLegacyEndpoint; + request: TeamsUpdateDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#create-or-update-idp-group-connections-legacy + */ + "PATCH /teams/:team_id/team-sync/group-mappings": { + parameters: TeamsCreateOrUpdateIdPGroupConnectionsLegacyEndpoint; + request: TeamsCreateOrUpdateIdPGroupConnectionsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#update-the-authenticated-user + */ + "PATCH /user": { + parameters: UsersUpdateAuthenticatedEndpoint; + request: UsersUpdateAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#toggle-primary-email-visibility + */ + "PATCH /user/email/visibility": { + parameters: UsersTogglePrimaryEmailVisibilityEndpoint; + request: UsersTogglePrimaryEmailVisibilityRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#edit-your-organization-membership + */ + "PATCH /user/memberships/orgs/:org": { + parameters: OrgsUpdateMembershipEndpoint; + request: OrgsUpdateMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#accept-a-repository-invitation + */ + "PATCH /user/repository_invitations/:invitation_id": { + parameters: ReposAcceptInvitationEndpoint; + request: ReposAcceptInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#create-a-github-app-from-a-manifest + */ + "POST /app-manifests/:code/conversions": { + parameters: AppsCreateFromManifestEndpoint; + request: AppsCreateFromManifestRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#create-a-new-installation-token + */ + "POST /app/installations/:installation_id/access_tokens": { + parameters: AppsCreateInstallationTokenEndpoint; + request: AppsCreateInstallationTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#check-a-token + */ + "POST /applications/:client_id/token": { + parameters: AppsCheckTokenEndpoint; + request: AppsCheckTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#reset-an-authorization + */ + "POST /applications/:client_id/tokens/:access_token": { + parameters: AppsResetAuthorizationEndpoint; + request: AppsResetAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization + */ + "POST /authorizations": { + parameters: OauthAuthorizationsCreateAuthorizationEndpoint; + request: OauthAuthorizationsCreateAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#create-a-content-attachment + */ + "POST /content_references/:content_reference_id/attachments": { + parameters: AppsCreateContentAttachmentEndpoint; + request: AppsCreateContentAttachmentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#create-a-gist + */ + "POST /gists": { + parameters: GistsCreateEndpoint; + request: GistsCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#create-a-comment + */ + "POST /gists/:gist_id/comments": { + parameters: GistsCreateCommentEndpoint; + request: GistsCreateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#fork-a-gist + */ + "POST /gists/:gist_id/forks": { + parameters: GistsForkEndpoint; + request: GistsForkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/markdown/#render-an-arbitrary-markdown-document + */ + "POST /markdown": { + parameters: MarkdownRenderEndpoint; + request: MarkdownRenderRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode + */ + "POST /markdown/raw": { + parameters: MarkdownRenderRawEndpoint; + request: MarkdownRenderRawRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-registration-token-for-an-organization + */ + "POST /orgs/:org/actions/runners/registration-token": { + parameters: ActionsCreateRegistrationTokenForOrgEndpoint; + request: ActionsCreateRegistrationTokenForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-remove-token-for-an-organization + */ + "POST /orgs/:org/actions/runners/remove-token": { + parameters: ActionsCreateRemoveTokenForOrgEndpoint; + request: ActionsCreateRemoveTokenForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#create-a-hook + */ + "POST /orgs/:org/hooks": { + parameters: OrgsCreateHookEndpoint; + request: OrgsCreateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#ping-a-hook + */ + "POST /orgs/:org/hooks/:hook_id/pings": { + parameters: OrgsPingHookEndpoint; + request: OrgsPingHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#create-organization-invitation + */ + "POST /orgs/:org/invitations": { + parameters: OrgsCreateInvitationEndpoint; + request: OrgsCreateInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#start-an-organization-migration + */ + "POST /orgs/:org/migrations": { + parameters: MigrationsStartForOrgEndpoint; + request: MigrationsStartForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#create-an-organization-project + */ + "POST /orgs/:org/projects": { + parameters: ProjectsCreateForOrgEndpoint; + request: ProjectsCreateForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-an-organization-repository + */ + "POST /orgs/:org/repos": { + parameters: ReposCreateInOrgEndpoint; + request: ReposCreateInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#create-team + */ + "POST /orgs/:org/teams": { + parameters: TeamsCreateEndpoint; + request: TeamsCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#create-a-discussion + */ + "POST /orgs/:org/teams/:team_slug/discussions": { + parameters: TeamsCreateDiscussionInOrgEndpoint; + request: TeamsCreateDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#create-a-comment + */ + "POST /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments": { + parameters: TeamsCreateDiscussionCommentInOrgEndpoint; + request: TeamsCreateDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment + */ + "POST /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionCommentInOrgEndpoint; + request: ReactionsCreateForTeamDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion + */ + "POST /orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionInOrgEndpoint; + request: ReactionsCreateForTeamDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#create-a-project-column + */ + "POST /projects/:project_id/columns": { + parameters: ProjectsCreateColumnEndpoint; + request: ProjectsCreateColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#create-a-project-card + */ + "POST /projects/columns/:column_id/cards": { + parameters: ProjectsCreateCardEndpoint; + request: ProjectsCreateCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#move-a-project-column + */ + "POST /projects/columns/:column_id/moves": { + parameters: ProjectsMoveColumnEndpoint; + request: ProjectsMoveColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#move-a-project-card + */ + "POST /projects/columns/cards/:card_id/moves": { + parameters: ProjectsMoveCardEndpoint; + request: ProjectsMoveCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-registration-token-for-a-repository + */ + "POST /repos/:owner/:repo/actions/runners/registration-token": { + parameters: ActionsCreateRegistrationTokenForRepoEndpoint; + request: ActionsCreateRegistrationTokenForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-remove-token-for-a-repository + */ + "POST /repos/:owner/:repo/actions/runners/remove-token": { + parameters: ActionsCreateRemoveTokenForRepoEndpoint; + request: ActionsCreateRemoveTokenForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#cancel-a-workflow-run + */ + "POST /repos/:owner/:repo/actions/runs/:run_id/cancel": { + parameters: ActionsCancelWorkflowRunEndpoint; + request: ActionsCancelWorkflowRunRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#re-run-a-workflow + */ + "POST /repos/:owner/:repo/actions/runs/:run_id/rerun": { + parameters: ActionsReRunWorkflowEndpoint; + request: ActionsReRunWorkflowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-admin-enforcement-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/enforce_admins": { + parameters: ReposAddProtectedBranchAdminEnforcementEndpoint; + request: ReposAddProtectedBranchAdminEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-required-signatures-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/required_signatures": { + parameters: ReposAddProtectedBranchRequiredSignaturesEndpoint; + request: ReposAddProtectedBranchRequiredSignaturesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-required-status-checks-contexts-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposAddProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposAddProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-app-restrictions-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposAddProtectedBranchAppRestrictionsEndpoint; + request: ReposAddProtectedBranchAppRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-team-restrictions-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposAddProtectedBranchTeamRestrictionsEndpoint; + request: ReposAddProtectedBranchTeamRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-user-restrictions-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposAddProtectedBranchUserRestrictionsEndpoint; + request: ReposAddProtectedBranchUserRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#create-a-check-run + */ + "POST /repos/:owner/:repo/check-runs": { + parameters: ChecksCreateEndpoint; + request: ChecksCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#create-a-check-suite + */ + "POST /repos/:owner/:repo/check-suites": { + parameters: ChecksCreateSuiteEndpoint; + request: ChecksCreateSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#rerequest-a-check-suite + */ + "POST /repos/:owner/:repo/check-suites/:check_suite_id/rerequest": { + parameters: ChecksRerequestSuiteEndpoint; + request: ChecksRerequestSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-commit-comment + */ + "POST /repos/:owner/:repo/comments/:comment_id/reactions": { + parameters: ReactionsCreateForCommitCommentEndpoint; + request: ReactionsCreateForCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#create-a-commit-comment + */ + "POST /repos/:owner/:repo/commits/:commit_sha/comments": { + parameters: ReposCreateCommitCommentEndpoint; + request: ReposCreateCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#create-a-deployment + */ + "POST /repos/:owner/:repo/deployments": { + parameters: ReposCreateDeploymentEndpoint; + request: ReposCreateDeploymentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#create-a-deployment-status + */ + "POST /repos/:owner/:repo/deployments/:deployment_id/statuses": { + parameters: ReposCreateDeploymentStatusEndpoint; + request: ReposCreateDeploymentStatusRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-a-repository-dispatch-event + */ + "POST /repos/:owner/:repo/dispatches": { + parameters: ReposCreateDispatchEventEndpoint; + request: ReposCreateDispatchEventRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/forks/#create-a-fork + */ + "POST /repos/:owner/:repo/forks": { + parameters: ReposCreateForkEndpoint; + request: ReposCreateForkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/blobs/#create-a-blob + */ + "POST /repos/:owner/:repo/git/blobs": { + parameters: GitCreateBlobEndpoint; + request: GitCreateBlobRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/commits/#create-a-commit + */ + "POST /repos/:owner/:repo/git/commits": { + parameters: GitCreateCommitEndpoint; + request: GitCreateCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#create-a-reference + */ + "POST /repos/:owner/:repo/git/refs": { + parameters: GitCreateRefEndpoint; + request: GitCreateRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/tags/#create-a-tag-object + */ + "POST /repos/:owner/:repo/git/tags": { + parameters: GitCreateTagEndpoint; + request: GitCreateTagRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/trees/#create-a-tree + */ + "POST /repos/:owner/:repo/git/trees": { + parameters: GitCreateTreeEndpoint; + request: GitCreateTreeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#create-a-hook + */ + "POST /repos/:owner/:repo/hooks": { + parameters: ReposCreateHookEndpoint; + request: ReposCreateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#ping-a-hook + */ + "POST /repos/:owner/:repo/hooks/:hook_id/pings": { + parameters: ReposPingHookEndpoint; + request: ReposPingHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#test-a-push-hook + */ + "POST /repos/:owner/:repo/hooks/:hook_id/tests": { + parameters: ReposTestPushHookEndpoint; + request: ReposTestPushHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#create-an-issue + */ + "POST /repos/:owner/:repo/issues": { + parameters: IssuesCreateEndpoint; + request: IssuesCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#add-assignees-to-an-issue + */ + "POST /repos/:owner/:repo/issues/:issue_number/assignees": { + parameters: IssuesAddAssigneesEndpoint; + request: IssuesAddAssigneesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#create-a-comment + */ + "POST /repos/:owner/:repo/issues/:issue_number/comments": { + parameters: IssuesCreateCommentEndpoint; + request: IssuesCreateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue + */ + "POST /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesAddLabelsEndpoint; + request: IssuesAddLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-an-issue + */ + "POST /repos/:owner/:repo/issues/:issue_number/reactions": { + parameters: ReactionsCreateForIssueEndpoint; + request: ReactionsCreateForIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-an-issue-comment + */ + "POST /repos/:owner/:repo/issues/comments/:comment_id/reactions": { + parameters: ReactionsCreateForIssueCommentEndpoint; + request: ReactionsCreateForIssueCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#add-a-new-deploy-key + */ + "POST /repos/:owner/:repo/keys": { + parameters: ReposAddDeployKeyEndpoint; + request: ReposAddDeployKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#create-a-label + */ + "POST /repos/:owner/:repo/labels": { + parameters: IssuesCreateLabelEndpoint; + request: IssuesCreateLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/merging/#perform-a-merge + */ + "POST /repos/:owner/:repo/merges": { + parameters: ReposMergeEndpoint; + request: ReposMergeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#create-a-milestone + */ + "POST /repos/:owner/:repo/milestones": { + parameters: IssuesCreateMilestoneEndpoint; + request: IssuesCreateMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#enable-a-pages-site + */ + "POST /repos/:owner/:repo/pages": { + parameters: ReposEnablePagesSiteEndpoint; + request: ReposEnablePagesSiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#request-a-page-build + */ + "POST /repos/:owner/:repo/pages/builds": { + parameters: ReposRequestPageBuildEndpoint; + request: ReposRequestPageBuildRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#create-a-repository-project + */ + "POST /repos/:owner/:repo/projects": { + parameters: ProjectsCreateForRepoEndpoint; + request: ProjectsCreateForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#create-a-pull-request + */ + "POST /repos/:owner/:repo/pulls": { + parameters: PullsCreateEndpoint; + request: PullsCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#create-a-comment + */ + "POST /repos/:owner/:repo/pulls/:pull_number/comments": { + parameters: PullsCreateCommentEndpoint; + request: PullsCreateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#create-a-review-comment-reply + */ + "POST /repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies": { + parameters: PullsCreateReviewCommentReplyEndpoint; + request: PullsCreateReviewCommentReplyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/review_requests/#create-a-review-request + */ + "POST /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": { + parameters: PullsCreateReviewRequestEndpoint; + request: PullsCreateReviewRequestRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review + */ + "POST /repos/:owner/:repo/pulls/:pull_number/reviews": { + parameters: PullsCreateReviewEndpoint; + request: PullsCreateReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review + */ + "POST /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/events": { + parameters: PullsSubmitReviewEndpoint; + request: PullsSubmitReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-pull-request-review-comment + */ + "POST /repos/:owner/:repo/pulls/comments/:comment_id/reactions": { + parameters: ReactionsCreateForPullRequestReviewCommentEndpoint; + request: ReactionsCreateForPullRequestReviewCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#create-a-release + */ + "POST /repos/:owner/:repo/releases": { + parameters: ReposCreateReleaseEndpoint; + request: ReposCreateReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#upload-a-release-asset + */ + "POST /repos/:owner/:repo/releases/:release_id/assets{?name,label}": { + parameters: ReposUploadReleaseAssetEndpoint; + request: ReposUploadReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statuses/#create-a-status + */ + "POST /repos/:owner/:repo/statuses/:sha": { + parameters: ReposCreateStatusEndpoint; + request: ReposCreateStatusRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#transfer-a-repository + */ + "POST /repos/:owner/:repo/transfer": { + parameters: ReposTransferEndpoint; + request: ReposTransferRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-a-repository-using-a-template + */ + "POST /repos/:template_owner/:template_repo/generate": { + parameters: ReposCreateUsingTemplateEndpoint; + request: ReposCreateUsingTemplateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#provision-and-invite-users + */ + "POST /scim/v2/organizations/:org/Users": { + parameters: ScimProvisionAndInviteUsersEndpoint; + request: ScimProvisionAndInviteUsersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#create-a-discussion-legacy + */ + "POST /teams/:team_id/discussions": { + parameters: TeamsCreateDiscussionLegacyEndpoint; + request: TeamsCreateDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#create-a-comment-legacy + */ + "POST /teams/:team_id/discussions/:discussion_number/comments": { + parameters: TeamsCreateDiscussionCommentLegacyEndpoint; + request: TeamsCreateDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment-legacy + */ + "POST /teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionCommentLegacyEndpoint; + request: ReactionsCreateForTeamDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-legacy + */ + "POST /teams/:team_id/discussions/:discussion_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionLegacyEndpoint; + request: ReactionsCreateForTeamDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#add-email-addresses + */ + "POST /user/emails": { + parameters: UsersAddEmailsEndpoint; + request: UsersAddEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#create-a-gpg-key + */ + "POST /user/gpg_keys": { + parameters: UsersCreateGpgKeyEndpoint; + request: UsersCreateGpgKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#create-a-public-key + */ + "POST /user/keys": { + parameters: UsersCreatePublicKeyEndpoint; + request: UsersCreatePublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#start-a-user-migration + */ + "POST /user/migrations": { + parameters: MigrationsStartForAuthenticatedUserEndpoint; + request: MigrationsStartForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#create-a-user-project + */ + "POST /user/projects": { + parameters: ProjectsCreateForAuthenticatedUserEndpoint; + request: ProjectsCreateForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-a-repository-for-the-authenticated-user + */ + "POST /user/repos": { + parameters: ReposCreateForAuthenticatedUserEndpoint; + request: ReposCreateForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#suspend-an-installation + */ + "PUT /app/installations/:installation_id/suspended": { + parameters: AppsSuspendInstallationEndpoint; + request: AppsSuspendInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app + */ + "PUT /authorizations/clients/:client_id": { + parameters: OauthAuthorizationsGetOrCreateAuthorizationForAppEndpoint; + request: OauthAuthorizationsGetOrCreateAuthorizationForAppRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint + */ + "PUT /authorizations/clients/:client_id/:fingerprint": { + parameters: OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintEndpoint; + request: OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#star-a-gist + */ + "PUT /gists/:gist_id/star": { + parameters: GistsStarEndpoint; + request: GistsStarRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#mark-notifications-as-read + */ + "PUT /notifications": { + parameters: ActivityMarkNotificationsAsReadEndpoint; + request: ActivityMarkNotificationsAsReadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#set-a-thread-subscription + */ + "PUT /notifications/threads/:thread_id/subscription": { + parameters: ActivitySetThreadSubscriptionEndpoint; + request: ActivitySetThreadSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#create-or-update-an-organization-secret + */ + "PUT /orgs/:org/actions/secrets/:secret_name": { + parameters: ActionsCreateOrUpdateOrgSecretEndpoint; + request: ActionsCreateOrUpdateOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/:org/actions/secrets/:secret_name/repositories": { + parameters: ActionsSetSelectedReposForOrgSecretEndpoint; + request: ActionsSetSelectedReposForOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/:org/actions/secrets/:secret_name/repositories/:repository_id": { + parameters: ActionsAddSelectedRepoToOrgSecretEndpoint; + request: ActionsAddSelectedRepoToOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#block-a-user + */ + "PUT /orgs/:org/blocks/:username": { + parameters: OrgsBlockUserEndpoint; + request: OrgsBlockUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/orgs/#add-or-update-interaction-restrictions-for-an-organization + */ + "PUT /orgs/:org/interaction-limits": { + parameters: InteractionsAddOrUpdateRestrictionsForOrgEndpoint; + request: InteractionsAddOrUpdateRestrictionsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#add-or-update-organization-membership + */ + "PUT /orgs/:org/memberships/:username": { + parameters: OrgsAddOrUpdateMembershipEndpoint; + request: OrgsAddOrUpdateMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/outside_collaborators/#convert-member-to-outside-collaborator + */ + "PUT /orgs/:org/outside_collaborators/:username": { + parameters: OrgsConvertMemberToOutsideCollaboratorEndpoint; + request: OrgsConvertMemberToOutsideCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#publicize-a-users-membership + */ + "PUT /orgs/:org/public_members/:username": { + parameters: OrgsPublicizeMembershipEndpoint; + request: OrgsPublicizeMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#add-or-update-team-membership + */ + "PUT /orgs/:org/teams/:team_slug/memberships/:username": { + parameters: TeamsAddOrUpdateMembershipInOrgEndpoint; + request: TeamsAddOrUpdateMembershipInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-project + */ + "PUT /orgs/:org/teams/:team_slug/projects/:project_id": { + parameters: TeamsAddOrUpdateProjectInOrgEndpoint; + request: TeamsAddOrUpdateProjectInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-repository + */ + "PUT /orgs/:org/teams/:team_slug/repos/:owner/:repo": { + parameters: TeamsAddOrUpdateRepoInOrgEndpoint; + request: TeamsAddOrUpdateRepoInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#add-user-as-a-collaborator + */ + "PUT /projects/:project_id/collaborators/:username": { + parameters: ProjectsAddCollaboratorEndpoint; + request: ProjectsAddCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#create-or-update-a-repository-secret + */ + "PUT /repos/:owner/:repo/actions/secrets/:secret_name": { + parameters: ActionsCreateOrUpdateRepoSecretEndpoint; + request: ActionsCreateOrUpdateRepoSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#enable-automated-security-fixes + */ + "PUT /repos/:owner/:repo/automated-security-fixes": { + parameters: ReposEnableAutomatedSecurityFixesEndpoint; + request: ReposEnableAutomatedSecurityFixesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#update-branch-protection + */ + "PUT /repos/:owner/:repo/branches/:branch/protection": { + parameters: ReposUpdateBranchProtectionEndpoint; + request: ReposUpdateBranchProtectionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-required-status-checks-contexts-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposReplaceProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposReplaceProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-app-restrictions-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposReplaceProtectedBranchAppRestrictionsEndpoint; + request: ReposReplaceProtectedBranchAppRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-team-restrictions-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposReplaceProtectedBranchTeamRestrictionsEndpoint; + request: ReposReplaceProtectedBranchTeamRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-user-restrictions-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposReplaceProtectedBranchUserRestrictionsEndpoint; + request: ReposReplaceProtectedBranchUserRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#add-user-as-a-collaborator + */ + "PUT /repos/:owner/:repo/collaborators/:username": { + parameters: ReposAddCollaboratorEndpoint; + request: ReposAddCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#create-or-update-a-file + */ + "PUT /repos/:owner/:repo/contents/:path": { + parameters: ReposCreateOrUpdateFileEndpoint; + request: ReposCreateOrUpdateFileRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#start-an-import + */ + "PUT /repos/:owner/:repo/import": { + parameters: MigrationsStartImportEndpoint; + request: MigrationsStartImportRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/repos/#add-or-update-interaction-restrictions-for-a-repository + */ + "PUT /repos/:owner/:repo/interaction-limits": { + parameters: InteractionsAddOrUpdateRestrictionsForRepoEndpoint; + request: InteractionsAddOrUpdateRestrictionsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue + */ + "PUT /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesReplaceAllLabelsEndpoint; + request: IssuesReplaceAllLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#lock-an-issue + */ + "PUT /repos/:owner/:repo/issues/:issue_number/lock": { + parameters: IssuesLockEndpoint; + request: IssuesLockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#mark-repository-notifications-as-read + */ + "PUT /repos/:owner/:repo/notifications": { + parameters: ActivityMarkRepoNotificationsAsReadEndpoint; + request: ActivityMarkRepoNotificationsAsReadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#update-information-about-a-pages-site + */ + "PUT /repos/:owner/:repo/pages": { + parameters: ReposUpdateInformationAboutPagesSiteEndpoint; + request: ReposUpdateInformationAboutPagesSiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/merge": { + parameters: PullsMergeEndpoint; + request: PullsMergeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#update-a-pull-request-review + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": { + parameters: PullsUpdateReviewEndpoint; + request: PullsUpdateReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#dismiss-a-pull-request-review + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/dismissals": { + parameters: PullsDismissReviewEndpoint; + request: PullsDismissReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#update-a-pull-request-branch + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/update-branch": { + parameters: PullsUpdateBranchEndpoint; + request: PullsUpdateBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#set-a-repository-subscription + */ + "PUT /repos/:owner/:repo/subscription": { + parameters: ActivitySetRepoSubscriptionEndpoint; + request: ActivitySetRepoSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#replace-all-repository-topics + */ + "PUT /repos/:owner/:repo/topics": { + parameters: ReposReplaceAllTopicsEndpoint; + request: ReposReplaceAllTopicsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#enable-vulnerability-alerts + */ + "PUT /repos/:owner/:repo/vulnerability-alerts": { + parameters: ReposEnableVulnerabilityAlertsEndpoint; + request: ReposEnableVulnerabilityAlertsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#replace-a-provisioned-users-information + */ + "PUT /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimReplaceProvisionedUserInformationEndpoint; + request: ScimReplaceProvisionedUserInformationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#add-team-member-legacy + */ + "PUT /teams/:team_id/members/:username": { + parameters: TeamsAddMemberLegacyEndpoint; + request: TeamsAddMemberLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#add-or-update-team-membership-legacy + */ + "PUT /teams/:team_id/memberships/:username": { + parameters: TeamsAddOrUpdateMembershipLegacyEndpoint; + request: TeamsAddOrUpdateMembershipLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-project-legacy + */ + "PUT /teams/:team_id/projects/:project_id": { + parameters: TeamsAddOrUpdateProjectLegacyEndpoint; + request: TeamsAddOrUpdateProjectLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-repository-legacy + */ + "PUT /teams/:team_id/repos/:owner/:repo": { + parameters: TeamsAddOrUpdateRepoLegacyEndpoint; + request: TeamsAddOrUpdateRepoLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#block-a-user + */ + "PUT /user/blocks/:username": { + parameters: UsersBlockEndpoint; + request: UsersBlockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#follow-a-user + */ + "PUT /user/following/:username": { + parameters: UsersFollowEndpoint; + request: UsersFollowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#add-repository-to-installation + */ + "PUT /user/installations/:installation_id/repositories/:repository_id": { + parameters: AppsAddRepoToInstallationEndpoint; + request: AppsAddRepoToInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#star-a-repository-for-the-authenticated-user + */ + "PUT /user/starred/:owner/:repo": { + parameters: ActivityStarRepoForAuthenticatedUserEndpoint; + request: ActivityStarRepoForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; +} +declare type AppsGetAuthenticatedEndpoint = {} & RequiredPreview<"machine-man">; +declare type AppsGetAuthenticatedRequestOptions = { + method: "GET"; + url: "/app"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetAuthenticatedResponseData { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + installations_count: number; +} +declare type AppsCreateFromManifestEndpoint = { + code: string; +}; +declare type AppsCreateFromManifestRequestOptions = { + method: "POST"; + url: "/app-manifests/:code/conversions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCreateFromManifestResponseData { + id: number; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + client_id: string; + client_secret: string; + webhook_secret: string; + pem: string; +} +declare type AppsListInstallationsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListInstallationsRequestOptions = { + method: "GET"; + url: "/app/installations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListInstallationsResponseData = { + id: number; + account: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + single_file_name: string; + repository_selection: string; +}[]; +declare type AppsGetInstallationEndpoint = { + installation_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsGetInstallationRequestOptions = { + method: "GET"; + url: "/app/installations/:installation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetInstallationResponseData { + id: number; + account: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + single_file_name: string; + repository_selection: string; +} +declare type AppsDeleteInstallationEndpoint = { + installation_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsDeleteInstallationRequestOptions = { + method: "DELETE"; + url: "/app/installations/:installation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsCreateInstallationTokenEndpoint = { + installation_id: number; + /** + * The `id`s of the repositories that the installation token can access. Providing repository `id`s restricts the access of an installation token to specific repositories. You can use the "[List repositories](https://developer.github.com/v3/apps/installations/#list-repositories)" endpoint to get the `id` of all repositories that an installation can access. For example, you can select specific repositories when creating an installation token to restrict the number of repositories that can be cloned using the token. + */ + repository_ids?: number[]; + /** + * The permissions granted to the access token. The permissions object includes the permission names and their access type. For a complete list of permissions and allowable values, see "[GitHub App permissions](https://developer.github.com/apps/building-github-apps/creating-github-apps-using-url-parameters/#github-app-permissions)." + */ + permissions?: AppsCreateInstallationTokenParamsPermissions; +} & RequiredPreview<"machine-man">; +declare type AppsCreateInstallationTokenRequestOptions = { + method: "POST"; + url: "/app/installations/:installation_id/access_tokens"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCreateInstallationTokenResponseData { + token: string; + expires_at: string; + permissions: { + issues: string; + contents: string; + }; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; +} +declare type AppsSuspendInstallationEndpoint = { + installation_id: number; +}; +declare type AppsSuspendInstallationRequestOptions = { + method: "PUT"; + url: "/app/installations/:installation_id/suspended"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsUnsuspendInstallationEndpoint = { + installation_id: number; +}; +declare type AppsUnsuspendInstallationRequestOptions = { + method: "DELETE"; + url: "/app/installations/:installation_id/suspended"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OauthAuthorizationsListGrantsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OauthAuthorizationsListGrantsRequestOptions = { + method: "GET"; + url: "/applications/grants"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OauthAuthorizationsListGrantsResponseData = { + id: number; + url: string; + app: { + url: string; + name: string; + client_id: string; + }; + created_at: string; + updated_at: string; + scopes: string[]; +}[]; +declare type OauthAuthorizationsGetGrantEndpoint = { + grant_id: number; +}; +declare type OauthAuthorizationsGetGrantRequestOptions = { + method: "GET"; + url: "/applications/grants/:grant_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetGrantResponseData { + id: number; + url: string; + app: { + url: string; + name: string; + client_id: string; + }; + created_at: string; + updated_at: string; + scopes: string[]; +} +declare type OauthAuthorizationsDeleteGrantEndpoint = { + grant_id: number; +}; +declare type OauthAuthorizationsDeleteGrantRequestOptions = { + method: "DELETE"; + url: "/applications/grants/:grant_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsDeleteAuthorizationEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsDeleteAuthorizationRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/grant"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsRevokeGrantForApplicationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsRevokeGrantForApplicationRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/grants/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsCheckTokenEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsCheckTokenRequestOptions = { + method: "POST"; + url: "/applications/:client_id/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCheckTokenResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsResetTokenEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsResetTokenRequestOptions = { + method: "PATCH"; + url: "/applications/:client_id/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsResetTokenResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsDeleteTokenEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsDeleteTokenRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsCheckAuthorizationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsCheckAuthorizationRequestOptions = { + method: "GET"; + url: "/applications/:client_id/tokens/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCheckAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsResetAuthorizationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsResetAuthorizationRequestOptions = { + method: "POST"; + url: "/applications/:client_id/tokens/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsResetAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsRevokeAuthorizationForApplicationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsRevokeAuthorizationForApplicationRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/tokens/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsGetBySlugEndpoint = { + app_slug: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetBySlugRequestOptions = { + method: "GET"; + url: "/apps/:app_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetBySlugResponseData { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +} +declare type OauthAuthorizationsListAuthorizationsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OauthAuthorizationsListAuthorizationsRequestOptions = { + method: "GET"; + url: "/authorizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OauthAuthorizationsListAuthorizationsResponseData = { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +}[]; +declare type OauthAuthorizationsCreateAuthorizationEndpoint = { + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * The 20 character OAuth app client key for which to create the token. + */ + client_id?: string; + /** + * The 40 character OAuth app client secret for which to create the token. + */ + client_secret?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; +}; +declare type OauthAuthorizationsCreateAuthorizationRequestOptions = { + method: "POST"; + url: "/authorizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsCreateAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppEndpoint = { + client_id: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client and user. If provided, this API is functionally equivalent to [Get-or-create an authorization for a specific app and fingerprint](https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint). + */ + fingerprint?: string; +}; +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppRequestOptions = { + method: "PUT"; + url: "/authorizations/clients/:client_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppResponse201Data { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintEndpoint = { + client_id: string; + fingerprint: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; +}; +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintRequestOptions = { + method: "PUT"; + url: "/authorizations/clients/:client_id/:fingerprint"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponse201Data { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsGetAuthorizationEndpoint = { + authorization_id: number; +}; +declare type OauthAuthorizationsGetAuthorizationRequestOptions = { + method: "GET"; + url: "/authorizations/:authorization_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsUpdateAuthorizationEndpoint = { + authorization_id: number; + /** + * Replaces the authorization scopes with these. + */ + scopes?: string[]; + /** + * A list of scopes to add to this authorization. + */ + add_scopes?: string[]; + /** + * A list of scopes to remove from this authorization. + */ + remove_scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; +}; +declare type OauthAuthorizationsUpdateAuthorizationRequestOptions = { + method: "PATCH"; + url: "/authorizations/:authorization_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsUpdateAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsDeleteAuthorizationEndpoint = { + authorization_id: number; +}; +declare type OauthAuthorizationsDeleteAuthorizationRequestOptions = { + method: "DELETE"; + url: "/authorizations/:authorization_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type CodesOfConductGetAllCodesOfConductEndpoint = {} & RequiredPreview<"scarlet-witch">; +declare type CodesOfConductGetAllCodesOfConductRequestOptions = { + method: "GET"; + url: "/codes_of_conduct"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type CodesOfConductGetAllCodesOfConductResponseData = { + key: string; + name: string; + url: string; +}[]; +declare type CodesOfConductGetConductCodeEndpoint = { + key: string; +} & RequiredPreview<"scarlet-witch">; +declare type CodesOfConductGetConductCodeRequestOptions = { + method: "GET"; + url: "/codes_of_conduct/:key"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface CodesOfConductGetConductCodeResponseData { + key: string; + name: string; + url: string; + body: string; +} +declare type AppsCreateContentAttachmentEndpoint = { + content_reference_id: number; + /** + * The title of the content attachment displayed in the body or comment of an issue or pull request. + */ + title: string; + /** + * The body text of the content attachment displayed in the body or comment of an issue or pull request. This parameter supports markdown. + */ + body: string; +} & RequiredPreview<"corsair">; +declare type AppsCreateContentAttachmentRequestOptions = { + method: "POST"; + url: "/content_references/:content_reference_id/attachments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCreateContentAttachmentResponseData { + id: number; + title: string; + body: string; +} +declare type EmojisGetEndpoint = {}; +declare type EmojisGetRequestOptions = { + method: "GET"; + url: "/emojis"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListPublicEventsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicEventsRequestOptions = { + method: "GET"; + url: "/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityGetFeedsEndpoint = {}; +declare type ActivityGetFeedsRequestOptions = { + method: "GET"; + url: "/feeds"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetFeedsResponseData { + timeline_url: string; + user_url: string; + current_user_public_url: string; + current_user_url: string; + current_user_actor_url: string; + current_user_organization_url: string; + current_user_organization_urls: string[]; + security_advisories_url: string; + _links: { + timeline: { + href: string; + type: string; + }; + user: { + href: string; + type: string; + }; + current_user_public: { + href: string; + type: string; + }; + current_user: { + href: string; + type: string; + }; + current_user_actor: { + href: string; + type: string; + }; + current_user_organization: { + href: string; + type: string; + }; + current_user_organizations: { + href: string; + type: string; + }[]; + security_advisories: { + href: string; + type: string; + }; + }; +} +declare type GistsListEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListRequestOptions = { + method: "GET"; + url: "/gists"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type GistsCreateEndpoint = { + /** + * The filenames and content of each file in the gist. The keys in the `files` object represent the filename and have the type `string`. + */ + files: GistsCreateParamsFiles; + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * When `true`, the gist will be public and available for anyone to see. + */ + public?: boolean; +}; +declare type GistsCreateRequestOptions = { + method: "POST"; + url: "/gists"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsCreateResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GistsListPublicEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListPublicRequestOptions = { + method: "GET"; + url: "/gists/public"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListPublicResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type GistsListStarredEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListStarredRequestOptions = { + method: "GET"; + url: "/gists/starred"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListStarredResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type GistsGetEndpoint = { + gist_id: string; +}; +declare type GistsGetRequestOptions = { + method: "GET"; + url: "/gists/:gist_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsGetResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GistsUpdateEndpoint = { + gist_id: string; + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * The filenames and content that make up this gist. + */ + files?: GistsUpdateParamsFiles; +}; +declare type GistsUpdateRequestOptions = { + method: "PATCH"; + url: "/gists/:gist_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsUpdateResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GistsDeleteEndpoint = { + gist_id: string; +}; +declare type GistsDeleteRequestOptions = { + method: "DELETE"; + url: "/gists/:gist_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsListCommentsEndpoint = { + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListCommentsRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListCommentsResponseData = { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type GistsCreateCommentEndpoint = { + gist_id: string; + /** + * The comment text. + */ + body: string; +}; +declare type GistsCreateCommentRequestOptions = { + method: "POST"; + url: "/gists/:gist_id/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsCreateCommentResponseData { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type GistsGetCommentEndpoint = { + gist_id: string; + comment_id: number; +}; +declare type GistsGetCommentRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsGetCommentResponseData { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type GistsUpdateCommentEndpoint = { + gist_id: string; + comment_id: number; + /** + * The comment text. + */ + body: string; +}; +declare type GistsUpdateCommentRequestOptions = { + method: "PATCH"; + url: "/gists/:gist_id/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsUpdateCommentResponseData { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type GistsDeleteCommentEndpoint = { + gist_id: string; + comment_id: number; +}; +declare type GistsDeleteCommentRequestOptions = { + method: "DELETE"; + url: "/gists/:gist_id/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsListCommitsEndpoint = { + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListCommitsRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListCommitsResponseData = { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; +}[]; +declare type GistsForkEndpoint = { + gist_id: string; +}; +declare type GistsForkRequestOptions = { + method: "POST"; + url: "/gists/:gist_id/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsForkResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +} +declare type GistsListForksEndpoint = { + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListForksRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListForksResponseData = { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; +}[]; +declare type GistsStarEndpoint = { + gist_id: string; +}; +declare type GistsStarRequestOptions = { + method: "PUT"; + url: "/gists/:gist_id/star"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsUnstarEndpoint = { + gist_id: string; +}; +declare type GistsUnstarRequestOptions = { + method: "DELETE"; + url: "/gists/:gist_id/star"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsCheckIsStarredEndpoint = { + gist_id: string; +}; +declare type GistsCheckIsStarredRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/star"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsGetRevisionEndpoint = { + gist_id: string; + sha: string; +}; +declare type GistsGetRevisionRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/:sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsGetRevisionResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GitignoreListTemplatesEndpoint = {}; +declare type GitignoreListTemplatesRequestOptions = { + method: "GET"; + url: "/gitignore/templates"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GitignoreListTemplatesResponseData = string[]; +declare type GitignoreGetTemplateEndpoint = { + name: string; +}; +declare type GitignoreGetTemplateRequestOptions = { + method: "GET"; + url: "/gitignore/templates/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitignoreGetTemplateResponseData { + name: string; + source: string; +} +declare type AppsListReposEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListReposRequestOptions = { + method: "GET"; + url: "/installation/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsListReposResponseData { + total_count: number; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; +} +declare type AppsRevokeInstallationTokenEndpoint = {}; +declare type AppsRevokeInstallationTokenRequestOptions = { + method: "DELETE"; + url: "/installation/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListEndpoint = { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListRequestOptions = { + method: "GET"; + url: "/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type LicensesListCommonlyUsedEndpoint = {}; +declare type LicensesListCommonlyUsedRequestOptions = { + method: "GET"; + url: "/licenses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type LicensesListCommonlyUsedResponseData = { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; +}[]; +declare type LicensesGetEndpoint = { + license: string; +}; +declare type LicensesGetRequestOptions = { + method: "GET"; + url: "/licenses/:license"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface LicensesGetResponseData { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + html_url: string; + description: string; + implementation: string; + permissions: string[]; + conditions: string[]; + limitations: string[]; + body: string; + featured: boolean; +} +declare type MarkdownRenderEndpoint = { + /** + * The Markdown text to render in HTML. Markdown content must be 400 KB or less. + */ + text: string; + /** + * The rendering mode. Can be either: + * \* `markdown` to render a document in plain Markdown, just like README.md files are rendered. + * \* `gfm` to render a document in [GitHub Flavored Markdown](https://github.github.com/gfm/), which creates links for user mentions as well as references to SHA-1 hashes, issues, and pull requests. + */ + mode?: "markdown" | "gfm"; + /** + * The repository context to use when creating references in `gfm` mode. Omit this parameter when using `markdown` mode. + */ + context?: string; +}; +declare type MarkdownRenderRequestOptions = { + method: "POST"; + url: "/markdown"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MarkdownRenderRawEndpoint = { + /** + * data parameter + */ + data: string; +} & { + headers: { + "content-type": "text/plain; charset=utf-8"; + }; +}; +declare type MarkdownRenderRawRequestOptions = { + method: "POST"; + url: "/markdown/raw"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsGetSubscriptionPlanForAccountEndpoint = { + account_id: number; +}; +declare type AppsGetSubscriptionPlanForAccountRequestOptions = { + method: "GET"; + url: "/marketplace_listing/accounts/:account_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetSubscriptionPlanForAccountResponseData { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +} +declare type AppsListPlansEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListPlansRequestOptions = { + method: "GET"; + url: "/marketplace_listing/plans"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListPlansResponseData = { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; +}[]; +declare type AppsListAccountsForPlanEndpoint = { + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListAccountsForPlanRequestOptions = { + method: "GET"; + url: "/marketplace_listing/plans/:plan_id/accounts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListAccountsForPlanResponseData = { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +}[]; +declare type AppsGetSubscriptionPlanForAccountStubbedEndpoint = { + account_id: number; +}; +declare type AppsGetSubscriptionPlanForAccountStubbedRequestOptions = { + method: "GET"; + url: "/marketplace_listing/stubbed/accounts/:account_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetSubscriptionPlanForAccountStubbedResponseData { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +} +declare type AppsListPlansStubbedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListPlansStubbedRequestOptions = { + method: "GET"; + url: "/marketplace_listing/stubbed/plans"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListPlansStubbedResponseData = { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; +}[]; +declare type AppsListAccountsForPlanStubbedEndpoint = { + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListAccountsForPlanStubbedRequestOptions = { + method: "GET"; + url: "/marketplace_listing/stubbed/plans/:plan_id/accounts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListAccountsForPlanStubbedResponseData = { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +}[]; +declare type MetaGetEndpoint = {}; +declare type MetaGetRequestOptions = { + method: "GET"; + url: "/meta"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MetaGetResponseData { + verifiable_password_authentication: boolean; + ssh_key_fingerprints: { + MD5_RSA: string; + MD5_DSA: string; + SHA256_RSA: string; + SHA256_DSA: string; + }; + hooks: string[]; + web: string[]; + api: string[]; + git: string[]; + pages: string[]; + importer: string[]; +} +declare type ActivityListPublicEventsForRepoNetworkEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicEventsForRepoNetworkRequestOptions = { + method: "GET"; + url: "/networks/:owner/:repo/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListNotificationsForAuthenticatedUserEndpoint = { + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListNotificationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListNotificationsForAuthenticatedUserResponseData = { + id: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string; + url: string; +}[]; +declare type ActivityMarkNotificationsAsReadEndpoint = { + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; +}; +declare type ActivityMarkNotificationsAsReadRequestOptions = { + method: "PUT"; + url: "/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityGetThreadEndpoint = { + thread_id: number; +}; +declare type ActivityGetThreadRequestOptions = { + method: "GET"; + url: "/notifications/threads/:thread_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetThreadResponseData { + id: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string; + url: string; +} +declare type ActivityMarkThreadAsReadEndpoint = { + thread_id: number; +}; +declare type ActivityMarkThreadAsReadRequestOptions = { + method: "PATCH"; + url: "/notifications/threads/:thread_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityGetThreadSubscriptionForAuthenticatedUserEndpoint = { + thread_id: number; +}; +declare type ActivityGetThreadSubscriptionForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/notifications/threads/:thread_id/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetThreadSubscriptionForAuthenticatedUserResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + thread_url: string; +} +declare type ActivitySetThreadSubscriptionEndpoint = { + thread_id: number; + /** + * Unsubscribes and subscribes you to a conversation. Set `ignored` to `true` to block all notifications from this thread. + */ + ignored?: boolean; +}; +declare type ActivitySetThreadSubscriptionRequestOptions = { + method: "PUT"; + url: "/notifications/threads/:thread_id/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivitySetThreadSubscriptionResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + thread_url: string; +} +declare type ActivityDeleteThreadSubscriptionEndpoint = { + thread_id: number; +}; +declare type ActivityDeleteThreadSubscriptionRequestOptions = { + method: "DELETE"; + url: "/notifications/threads/:thread_id/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListEndpoint = { + /** + * The integer ID of the last organization that you've seen. + */ + since?: number; +}; +declare type OrgsListRequestOptions = { + method: "GET"; + url: "/organizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListResponseData = { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; +}[]; +declare type OrgsGetEndpoint = { + org: string; +}; +declare type OrgsGetRequestOptions = { + method: "GET"; + url: "/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetResponseData { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + total_private_repos: number; + owned_private_repos: number; + private_gists: number; + disk_usage: number; + collaborators: number; + billing_email: string; + plan: { + name: string; + space: number; + private_repos: number; + }; + default_repository_permission: string; + members_can_create_repositories: boolean; + two_factor_requirement_enabled: boolean; + members_allowed_repository_creation_type: string; + members_can_create_public_repositories: boolean; + members_can_create_private_repositories: boolean; + members_can_create_internal_repositories: boolean; +} +declare type OrgsUpdateEndpoint = { + org: string; + /** + * Billing email address. This address is not publicized. + */ + billing_email?: string; + /** + * The company name. + */ + company?: string; + /** + * The publicly visible email address. + */ + email?: string; + /** + * The location. + */ + location?: string; + /** + * The shorthand name of the company. + */ + name?: string; + /** + * The description of the company. + */ + description?: string; + /** + * Toggles whether an organization can use organization projects. + */ + has_organization_projects?: boolean; + /** + * Toggles whether repositories that belong to the organization can use repository projects. + */ + has_repository_projects?: boolean; + /** + * Default permission level members have for organization repositories: + * \* `read` - can pull, but not push to or administer this repository. + * \* `write` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push, and administer this repository. + * \* `none` - no permissions granted by default. + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * Toggles the ability of non-admin organization members to create repositories. Can be one of: + * \* `true` - all organization members can create repositories. + * \* `false` - only organization owners can create repositories. + * Default: `true` + * **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. + */ + members_can_create_repositories?: boolean; + /** + * Toggles whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. Can be one of: + * \* `true` - all organization members can create internal repositories. + * \* `false` - only organization owners can create internal repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_internal_repositories?: boolean; + /** + * Toggles whether organization members can create private repositories, which are visible to organization members with permission. Can be one of: + * \* `true` - all organization members can create private repositories. + * \* `false` - only organization owners can create private repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_private_repositories?: boolean; + /** + * Toggles whether organization members can create public repositories, which are visible to anyone. Can be one of: + * \* `true` - all organization members can create public repositories. + * \* `false` - only organization owners can create public repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_public_repositories?: boolean; + /** + * Specifies which types of repositories non-admin organization members can create. Can be one of: + * \* `all` - all organization members can create public and private repositories. + * \* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on GitHub Enterprise Cloud. + * \* `none` - only admin members can create repositories. + * **Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; +}; +declare type OrgsUpdateRequestOptions = { + method: "PATCH"; + url: "/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsUpdateResponseData { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + total_private_repos: number; + owned_private_repos: number; + private_gists: number; + disk_usage: number; + collaborators: number; + billing_email: string; + plan: { + name: string; + space: number; + private_repos: number; + }; + default_repository_permission: string; + members_can_create_repositories: boolean; + two_factor_requirement_enabled: boolean; + members_allowed_repository_creation_type: string; + members_can_create_public_repositories: boolean; + members_can_create_private_repositories: boolean; + members_can_create_internal_repositories: boolean; +} +declare type ActionsListSelfHostedRunnersForOrgEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListSelfHostedRunnersForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/runners"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListSelfHostedRunnersForOrgResponseData { + total_count: number; + runners: { + id: number; + name: string; + os: string; + status: string; + }[]; +} +declare type ActionsListRunnerApplicationsForOrgEndpoint = { + org: string; +}; +declare type ActionsListRunnerApplicationsForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/runners/downloads"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActionsListRunnerApplicationsForOrgResponseData = { + os: string; + architecture: string; + download_url: string; + filename: string; +}[]; +declare type ActionsCreateRegistrationTokenForOrgEndpoint = { + org: string; +}; +declare type ActionsCreateRegistrationTokenForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/actions/runners/registration-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRegistrationTokenForOrgResponseData { + token: string; + expires_at: string; +} +declare type ActionsCreateRemoveTokenForOrgEndpoint = { + org: string; +}; +declare type ActionsCreateRemoveTokenForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/actions/runners/remove-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRemoveTokenForOrgResponseData { + token: string; + expires_at: string; +} +declare type ActionsGetSelfHostedRunnerForOrgEndpoint = { + org: string; + runner_id: number; +}; +declare type ActionsGetSelfHostedRunnerForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetSelfHostedRunnerForOrgResponseData { + id: number; + name: string; + os: string; + status: string; +} +declare type ActionsDeleteSelfHostedRunnerFromOrgEndpoint = { + org: string; + runner_id: number; +}; +declare type ActionsDeleteSelfHostedRunnerFromOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListOrgSecretsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListOrgSecretsRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListOrgSecretsResponseData { + total_count: number; + secrets: { + name: string; + created_at: string; + updated_at: string; + visibility: string; + selected_repositories_url: string; + }[]; +} +declare type ActionsGetOrgPublicKeyEndpoint = { + org: string; +}; +declare type ActionsGetOrgPublicKeyRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets/public-key"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetOrgPublicKeyResponseData { + key_id: string; + key: string; +} +declare type ActionsGetOrgSecretEndpoint = { + org: string; + secret_name: string; +}; +declare type ActionsGetOrgSecretRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetOrgSecretResponseData { + name: string; + created_at: string; + updated_at: string; + visibility: string; + selected_repositories_url: string; +} +declare type ActionsCreateOrUpdateOrgSecretEndpoint = { + org: string; + secret_name: string; + /** + * Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://developer.github.com/v3/actions/secrets/#get-an-organization-public-key) endpoint. + */ + encrypted_value?: string; + /** + * ID of the key you used to encrypt the secret. + */ + key_id?: string; + /** + * Configures the access that repositories have to the organization secret. Can be one of: + * \- `all` - All repositories in an organization can access the secret. + * \- `private` - Private repositories in an organization can access the secret. + * \- `selected` - Only specific repositories can access the secret. + */ + visibility?: "all" | "private" | "selected"; + /** + * An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://developer.github.com/v3/actions/secrets/#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://developer.github.com/v3/actions/secrets/#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://developer.github.com/v3/actions/secrets/#remove-selected-repository-from-an-organization-secret) endpoints. + */ + selected_repository_ids?: string[]; +}; +declare type ActionsCreateOrUpdateOrgSecretRequestOptions = { + method: "PUT"; + url: "/orgs/:org/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDeleteOrgSecretEndpoint = { + org: string; + secret_name: string; +}; +declare type ActionsDeleteOrgSecretRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListSelectedReposForOrgSecretEndpoint = { + org: string; + secret_name: string; +}; +declare type ActionsListSelectedReposForOrgSecretRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListSelectedReposForOrgSecretResponseData { + total_count: number; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }[]; +} +declare type ActionsSetSelectedReposForOrgSecretEndpoint = { + org: string; + secret_name: string; + /** + * An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://developer.github.com/v3/actions/secrets/#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://developer.github.com/v3/actions/secrets/#remove-selected-repository-from-an-organization-secret) endpoints. + */ + selected_repository_ids?: number[]; +}; +declare type ActionsSetSelectedReposForOrgSecretRequestOptions = { + method: "PUT"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsAddSelectedRepoToOrgSecretEndpoint = { + org: string; + secret_name: string; + repository_id: number; +}; +declare type ActionsAddSelectedRepoToOrgSecretRequestOptions = { + method: "PUT"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsRemoveSelectedRepoFromOrgSecretEndpoint = { + org: string; + secret_name: string; + repository_id: number; +}; +declare type ActionsRemoveSelectedRepoFromOrgSecretRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListBlockedUsersEndpoint = { + org: string; +}; +declare type OrgsListBlockedUsersRequestOptions = { + method: "GET"; + url: "/orgs/:org/blocks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListBlockedUsersResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsCheckBlockedUserEndpoint = { + org: string; + username: string; +}; +declare type OrgsCheckBlockedUserRequestOptions = { + method: "GET"; + url: "/orgs/:org/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsBlockUserEndpoint = { + org: string; + username: string; +}; +declare type OrgsBlockUserRequestOptions = { + method: "PUT"; + url: "/orgs/:org/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsUnblockUserEndpoint = { + org: string; + username: string; +}; +declare type OrgsUnblockUserRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListCredentialAuthorizationsEndpoint = { + org: string; +}; +declare type OrgsListCredentialAuthorizationsRequestOptions = { + method: "GET"; + url: "/orgs/:org/credential-authorizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListCredentialAuthorizationsResponseData = { + login: string; + credential_id: string; + credential_type: string; + token_last_eight: string; + credential_authorized_at: string; + scopes: string[]; +}[]; +declare type OrgsRemoveCredentialAuthorizationEndpoint = { + org: string; + credential_id: number; +}; +declare type OrgsRemoveCredentialAuthorizationRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/credential-authorizations/:credential_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListPublicOrgEventsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicOrgEventsRequestOptions = { + method: "GET"; + url: "/orgs/:org/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListHooksEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListHooksRequestOptions = { + method: "GET"; + url: "/orgs/:org/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListHooksResponseData = { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +}[]; +declare type OrgsCreateHookEndpoint = { + org: string; + /** + * Must be passed as "web". + */ + name: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#create-hook-config-params). + */ + config: OrgsCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type OrgsCreateHookRequestOptions = { + method: "POST"; + url: "/orgs/:org/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsCreateHookResponseData { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +} +declare type OrgsGetHookEndpoint = { + org: string; + hook_id: number; +}; +declare type OrgsGetHookRequestOptions = { + method: "GET"; + url: "/orgs/:org/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetHookResponseData { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +} +declare type OrgsUpdateHookEndpoint = { + org: string; + hook_id: number; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#update-hook-config-params). + */ + config?: OrgsUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type OrgsUpdateHookRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsUpdateHookResponseData { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +} +declare type OrgsDeleteHookEndpoint = { + org: string; + hook_id: number; +}; +declare type OrgsDeleteHookRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsPingHookEndpoint = { + org: string; + hook_id: number; +}; +declare type OrgsPingHookRequestOptions = { + method: "POST"; + url: "/orgs/:org/hooks/:hook_id/pings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsGetOrgInstallationEndpoint = { + org: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetOrgInstallationRequestOptions = { + method: "GET"; + url: "/orgs/:org/installation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetOrgInstallationResponseData { + id: number; + account: { + login: string; + id: number; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + checks: string; + metadata: string; + contents: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; +} +declare type OrgsListInstallationsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type OrgsListInstallationsRequestOptions = { + method: "GET"; + url: "/orgs/:org/installations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsListInstallationsResponseData { + total_count: number; + installations: { + id: number; + account: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + deployments: string; + metadata: string; + pull_requests: string; + statuses: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; + }[]; +} +declare type InteractionsGetRestrictionsForOrgEndpoint = { + org: string; +} & RequiredPreview<"sombra">; +declare type InteractionsGetRestrictionsForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsGetRestrictionsForOrgResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsAddOrUpdateRestrictionsForOrgEndpoint = { + org: string; + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests in public repositories for the given organization. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; +} & RequiredPreview<"sombra">; +declare type InteractionsAddOrUpdateRestrictionsForOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsAddOrUpdateRestrictionsForOrgResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsRemoveRestrictionsForOrgEndpoint = { + org: string; +} & RequiredPreview<"sombra">; +declare type InteractionsRemoveRestrictionsForOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListPendingInvitationsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListPendingInvitationsRequestOptions = { + method: "GET"; + url: "/orgs/:org/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListPendingInvitationsResponseData = { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +}[]; +declare type OrgsCreateInvitationEndpoint = { + org: string; + /** + * **Required unless you provide `email`**. GitHub user ID for the person you are inviting. + */ + invitee_id?: number; + /** + * **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. + */ + email?: string; + /** + * Specify role for new member. Can be one of: + * \* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * \* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * \* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + */ + role?: "admin" | "direct_member" | "billing_manager"; + /** + * Specify IDs for the teams you want to invite new members to. + */ + team_ids?: number[]; +}; +declare type OrgsCreateInvitationRequestOptions = { + method: "POST"; + url: "/orgs/:org/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsCreateInvitationResponseData { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +} +declare type OrgsListInvitationTeamsEndpoint = { + org: string; + invitation_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListInvitationTeamsRequestOptions = { + method: "GET"; + url: "/orgs/:org/invitations/:invitation_id/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListInvitationTeamsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type IssuesListForOrgEndpoint = { + org: string; + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListForOrgResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type OrgsListMembersEndpoint = { + org: string; + /** + * Filter members returned in the list. Can be one of: + * \* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. + * \* `all` - All members the authenticated user can see. + */ + filter?: "2fa_disabled" | "all"; + /** + * Filter members returned by their role. Can be one of: + * \* `all` - All members of the organization, regardless of role. + * \* `admin` - Organization owners. + * \* `member` - Non-owner organization members. + */ + role?: "all" | "admin" | "member"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListMembersRequestOptions = { + method: "GET"; + url: "/orgs/:org/members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListMembersResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsCheckMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsCheckMembershipRequestOptions = { + method: "GET"; + url: "/orgs/:org/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsRemoveMemberEndpoint = { + org: string; + username: string; +}; +declare type OrgsRemoveMemberRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsGetMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsGetMembershipRequestOptions = { + method: "GET"; + url: "/orgs/:org/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetMembershipResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type OrgsAddOrUpdateMembershipEndpoint = { + org: string; + username: string; + /** + * The role to give the user in the organization. Can be one of: + * \* `admin` - The user will become an owner of the organization. + * \* `member` - The user will become a non-owner member of the organization. + */ + role?: "admin" | "member"; +}; +declare type OrgsAddOrUpdateMembershipRequestOptions = { + method: "PUT"; + url: "/orgs/:org/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsAddOrUpdateMembershipResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type OrgsRemoveMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsRemoveMembershipRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsStartForOrgEndpoint = { + org: string; + /** + * A list of arrays indicating which repositories should be migrated. + */ + repositories: string[]; + /** + * Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + */ + lock_repositories?: boolean; + /** + * Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + */ + exclude_attachments?: boolean; +}; +declare type MigrationsStartForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsStartForOrgResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsListForOrgEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListForOrgResponseData = { + id: number; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +}[]; +declare type MigrationsGetStatusForOrgEndpoint = { + org: string; + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsGetStatusForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations/:migration_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsGetStatusForOrgResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsDownloadArchiveForOrgEndpoint = { + org: string; + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsDownloadArchiveForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsDeleteArchiveForOrgEndpoint = { + org: string; + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsDeleteArchiveForOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsUnlockRepoForOrgEndpoint = { + org: string; + migration_id: number; + repo_name: string; +} & RequiredPreview<"wyandotte">; +declare type MigrationsUnlockRepoForOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/migrations/:migration_id/repos/:repo_name/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsListReposForOrgEndpoint = { + org: string; + migration_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListReposForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations/:migration_id/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListReposForOrgResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type OrgsListOutsideCollaboratorsEndpoint = { + org: string; + /** + * Filter the list of outside collaborators. Can be one of: + * \* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. + * \* `all`: All outside collaborators. + */ + filter?: "2fa_disabled" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListOutsideCollaboratorsRequestOptions = { + method: "GET"; + url: "/orgs/:org/outside_collaborators"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListOutsideCollaboratorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsRemoveOutsideCollaboratorEndpoint = { + org: string; + username: string; +}; +declare type OrgsRemoveOutsideCollaboratorRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/outside_collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsRemoveOutsideCollaboratorResponseData { + message: string; + documentation_url: string; +} +declare type OrgsConvertMemberToOutsideCollaboratorEndpoint = { + org: string; + username: string; +}; +declare type OrgsConvertMemberToOutsideCollaboratorRequestOptions = { + method: "PUT"; + url: "/orgs/:org/outside_collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsConvertMemberToOutsideCollaboratorResponseData { + message: string; + documentation_url: string; +} +declare type ProjectsListForOrgEndpoint = { + org: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListForOrgResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ProjectsCreateForOrgEndpoint = { + org: string; + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateForOrgResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type OrgsListPublicMembersEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListPublicMembersRequestOptions = { + method: "GET"; + url: "/orgs/:org/public_members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListPublicMembersResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsCheckPublicMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsCheckPublicMembershipRequestOptions = { + method: "GET"; + url: "/orgs/:org/public_members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsPublicizeMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsPublicizeMembershipRequestOptions = { + method: "PUT"; + url: "/orgs/:org/public_members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsConcealMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsConcealMembershipRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/public_members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListForOrgEndpoint = { + org: string; + /** + * Specifies the types of repositories you want returned. Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`, `internal`. Default: `all`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `type` can also be `internal`. + */ + type?: "all" | "public" | "private" | "forks" | "sources" | "member" | "internal"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListForOrgResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type ReposCreateInOrgEndpoint = { + org: string; + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to create a private repository or `false` to create a public one. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. For more information, see "[Creating an internal repository](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-repository-visibility#about-internal-repositories)" in the GitHub Help documentation. + * The `visibility` parameter overrides the `private` parameter when you use both parameters with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; +}; +declare type ReposCreateInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateInOrgResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type TeamsListIdPGroupsForOrgEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListIdPGroupsForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/team-sync/groups"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsListIdPGroupsForOrgResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsListEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type TeamsCreateEndpoint = { + org: string; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * List GitHub IDs for organization members who will become team maintainers. + */ + maintainers?: string[]; + /** + * The full name (e.g., "organization-name/repository-name") of repositories to add the team to. + */ + repo_names?: string[]; + /** + * The level of privacy this team should have. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * Default for child team: `closed` + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; +}; +declare type TeamsCreateRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsGetByNameEndpoint = { + org: string; + team_slug: string; +}; +declare type TeamsGetByNameRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetByNameResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsUpdateInOrgEndpoint = { + org: string; + team_slug: string; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; +}; +declare type TeamsUpdateInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateInOrgResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsDeleteInOrgEndpoint = { + org: string; + team_slug: string; +}; +declare type TeamsDeleteInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionsInOrgResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + /** + * The discussion post's title. + */ + title: string; + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; +}; +declare type TeamsCreateDiscussionInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; +}; +declare type TeamsGetDiscussionInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * The discussion post's title. + */ + title?: string; + /** + * The discussion post's body text. + */ + body?: string; +}; +declare type TeamsUpdateDiscussionInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; +}; +declare type TeamsDeleteDiscussionInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionCommentsInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionCommentsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionCommentsInOrgResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsCreateDiscussionCommentInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionCommentInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; +}; +declare type TeamsGetDiscussionCommentInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionCommentInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsUpdateDiscussionCommentInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionCommentInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; +}; +declare type TeamsDeleteDiscussionCommentInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForTeamDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionCommentInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionCommentInOrgResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionCommentInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionCommentInOrgResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForTeamDiscussionCommentEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForTeamDiscussionCommentRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForTeamDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionInOrgResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionInOrgResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForTeamDiscussionEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForTeamDiscussionRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListPendingInvitationsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListPendingInvitationsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListPendingInvitationsInOrgResponseData = { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +}[]; +declare type TeamsListMembersInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListMembersInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListMembersInOrgResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type TeamsGetMembershipInOrgEndpoint = { + org: string; + team_slug: string; + username: string; +}; +declare type TeamsGetMembershipInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetMembershipInOrgResponseData { + url: string; + role: string; + state: string; +} +declare type TeamsAddOrUpdateMembershipInOrgEndpoint = { + org: string; + team_slug: string; + username: string; + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; +}; +declare type TeamsAddOrUpdateMembershipInOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/teams/:team_slug/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateMembershipInOrgResponseData { + url: string; + role: string; + state: string; +} +export interface TeamsAddOrUpdateMembershipInOrgResponse422Data { + message: string; + errors: { + code: string; + field: string; + resource: string; + }[]; +} +declare type TeamsRemoveMembershipInOrgEndpoint = { + org: string; + team_slug: string; + username: string; +}; +declare type TeamsRemoveMembershipInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListProjectsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type TeamsListProjectsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListProjectsInOrgResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +}[]; +declare type TeamsReviewProjectInOrgEndpoint = { + org: string; + team_slug: string; + project_id: number; +} & RequiredPreview<"inertia">; +declare type TeamsReviewProjectInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsReviewProjectInOrgResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateProjectInOrgEndpoint = { + org: string; + team_slug: string; + project_id: number; + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + permission?: "read" | "write" | "admin"; +} & RequiredPreview<"inertia">; +declare type TeamsAddOrUpdateProjectInOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/teams/:team_slug/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateProjectInOrgResponseData { + message: string; + documentation_url: string; +} +declare type TeamsRemoveProjectInOrgEndpoint = { + org: string; + team_slug: string; + project_id: number; +}; +declare type TeamsRemoveProjectInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListReposInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListReposInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListReposInOrgResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type TeamsCheckManagesRepoInOrgEndpoint = { + org: string; + team_slug: string; + owner: string; + repo: string; +}; +declare type TeamsCheckManagesRepoInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCheckManagesRepoInOrgResponseData { + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateRepoInOrgEndpoint = { + org: string; + team_slug: string; + owner: string; + repo: string; + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * \* `maintain` - team members can manage the repository without access to sensitive or destructive actions. Recommended for project managers. Only applies to repositories owned by organizations. + * \* `triage` - team members can proactively manage issues and pull requests without write access. Recommended for contributors who triage a repository. Only applies to repositories owned by organizations. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; +}; +declare type TeamsAddOrUpdateRepoInOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/teams/:team_slug/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsRemoveRepoInOrgEndpoint = { + org: string; + team_slug: string; + owner: string; + repo: string; +}; +declare type TeamsRemoveRepoInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListIdPGroupsInOrgEndpoint = { + org: string; + team_slug: string; +}; +declare type TeamsListIdPGroupsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsListIdPGroupsInOrgResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsCreateOrUpdateIdPGroupConnectionsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. + */ + groups: TeamsCreateOrUpdateIdPGroupConnectionsInOrgParamsGroups[]; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateOrUpdateIdPGroupConnectionsInOrgResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }; +} +declare type TeamsListChildInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListChildInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListChildInOrgResponseData = { + id: number; + node_id: string; + url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + }; +}[]; +declare type ProjectsGetCardEndpoint = { + card_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsGetCardRequestOptions = { + method: "GET"; + url: "/projects/columns/cards/:card_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsGetCardResponseData { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +} +declare type ProjectsUpdateCardEndpoint = { + card_id: number; + /** + * The card's note content. Only valid for cards without another type of content, so this cannot be specified if the card already has a `content_id` and `content_type`. + */ + note?: string; + /** + * Use `true` to archive a project card. Specify `false` if you need to restore a previously archived project card. + */ + archived?: boolean; +} & RequiredPreview<"inertia">; +declare type ProjectsUpdateCardRequestOptions = { + method: "PATCH"; + url: "/projects/columns/cards/:card_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsUpdateCardResponseData { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +} +declare type ProjectsDeleteCardEndpoint = { + card_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsDeleteCardRequestOptions = { + method: "DELETE"; + url: "/projects/columns/cards/:card_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsMoveCardEndpoint = { + card_id: number; + /** + * Can be one of `top`, `bottom`, or `after:`, where `` is the `id` value of a card in the same column, or in the new column specified by `column_id`. + */ + position: string; + /** + * The `id` value of a column in the same project. + */ + column_id?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsMoveCardRequestOptions = { + method: "POST"; + url: "/projects/columns/cards/:card_id/moves"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsGetColumnEndpoint = { + column_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsGetColumnRequestOptions = { + method: "GET"; + url: "/projects/columns/:column_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsGetColumnResponseData { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +} +declare type ProjectsUpdateColumnEndpoint = { + column_id: number; + /** + * The new name of the column. + */ + name: string; +} & RequiredPreview<"inertia">; +declare type ProjectsUpdateColumnRequestOptions = { + method: "PATCH"; + url: "/projects/columns/:column_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsUpdateColumnResponseData { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +} +declare type ProjectsDeleteColumnEndpoint = { + column_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsDeleteColumnRequestOptions = { + method: "DELETE"; + url: "/projects/columns/:column_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsListCardsEndpoint = { + column_id: number; + /** + * Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`. + */ + archived_state?: "all" | "archived" | "not_archived"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListCardsRequestOptions = { + method: "GET"; + url: "/projects/columns/:column_id/cards"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListCardsResponseData = { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +}[]; +declare type ProjectsCreateCardEndpoint = { + column_id: number; + /** + * The card's note content. Only valid for cards without another type of content, so you must omit when specifying `content_id` and `content_type`. + */ + note?: string; + /** + * The issue or pull request id you want to associate with this card. You can use the [List repository issues](https://developer.github.com/v3/issues/#list-repository-issues) and [List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests) endpoints to find this id. + * **Note:** Depending on whether you use the issue id or pull request id, you will need to specify `Issue` or `PullRequest` as the `content_type`. + */ + content_id?: number; + /** + * **Required if you provide `content_id`**. The type of content you want to associate with this card. Use `Issue` when `content_id` is an issue id and use `PullRequest` when `content_id` is a pull request id. + */ + content_type?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateCardRequestOptions = { + method: "POST"; + url: "/projects/columns/:column_id/cards"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateCardResponseData { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +} +declare type ProjectsMoveColumnEndpoint = { + column_id: number; + /** + * Can be one of `first`, `last`, or `after:`, where `` is the `id` value of a column in the same project. + */ + position: string; +} & RequiredPreview<"inertia">; +declare type ProjectsMoveColumnRequestOptions = { + method: "POST"; + url: "/projects/columns/:column_id/moves"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsGetEndpoint = { + project_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsGetRequestOptions = { + method: "GET"; + url: "/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsGetResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ProjectsUpdateEndpoint = { + project_id: number; + /** + * The name of the project. + */ + name?: string; + /** + * The description of the project. + */ + body?: string; + /** + * State of the project. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The permission level that determines whether all members of the project's organization can see and/or make changes to the project. Setting `organization_permission` is only available for organization projects. If an organization member belongs to a team with a higher level of access or is a collaborator with a higher level of access, their permission level is not lowered by `organization_permission`. For information on changing access for a team or collaborator, see [Add or update team project](https://developer.github.com/v3/teams/#add-or-update-team-project) or [Add user as a collaborator](https://developer.github.com/v3/projects/collaborators/#add-user-as-a-collaborator). + * + * **Note:** Updating a project's `organization_permission` requires `admin` access to the project. + * + * Can be one of: + * \* `read` - Organization members can read, but not write to or administer this project. + * \* `write` - Organization members can read and write, but not administer this project. + * \* `admin` - Organization members can read, write and administer this project. + * \* `none` - Organization members can only see this project if it is public. + */ + organization_permission?: string; + /** + * Sets the visibility of a project board. Setting `private` is only available for organization and user projects. **Note:** Updating a project's visibility requires `admin` access to the project. + * + * Can be one of: + * \* `false` - Anyone can see the project. + * \* `true` - Only the user can view a project board created on a user account. Organization members with the appropriate `organization_permission` can see project boards in an organization account. + */ + private?: boolean; +} & RequiredPreview<"inertia">; +declare type ProjectsUpdateRequestOptions = { + method: "PATCH"; + url: "/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsUpdateResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ProjectsDeleteEndpoint = { + project_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsDeleteRequestOptions = { + method: "DELETE"; + url: "/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsListCollaboratorsEndpoint = { + project_id: number; + /** + * Filters the collaborators by their affiliation. Can be one of: + * \* `outside`: Outside collaborators of a project that are not a member of the project's organization. + * \* `direct`: Collaborators with permissions to a project, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListCollaboratorsRequestOptions = { + method: "GET"; + url: "/projects/:project_id/collaborators"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListCollaboratorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ProjectsAddCollaboratorEndpoint = { + project_id: number; + username: string; + /** + * The permission to grant the collaborator. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." Can be one of: + * \* `read` - can read, but not write to or administer this project. + * \* `write` - can read and write, but not administer this project. + * \* `admin` - can read, write and administer this project. + */ + permission?: "read" | "write" | "admin"; +} & RequiredPreview<"inertia">; +declare type ProjectsAddCollaboratorRequestOptions = { + method: "PUT"; + url: "/projects/:project_id/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsRemoveCollaboratorEndpoint = { + project_id: number; + username: string; +} & RequiredPreview<"inertia">; +declare type ProjectsRemoveCollaboratorRequestOptions = { + method: "DELETE"; + url: "/projects/:project_id/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsReviewUserPermissionLevelEndpoint = { + project_id: number; + username: string; +} & RequiredPreview<"inertia">; +declare type ProjectsReviewUserPermissionLevelRequestOptions = { + method: "GET"; + url: "/projects/:project_id/collaborators/:username/permission"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsReviewUserPermissionLevelResponseData { + permission: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ProjectsListColumnsEndpoint = { + project_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListColumnsRequestOptions = { + method: "GET"; + url: "/projects/:project_id/columns"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListColumnsResponseData = { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +}[]; +declare type ProjectsCreateColumnEndpoint = { + project_id: number; + /** + * The name of the column. + */ + name: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateColumnRequestOptions = { + method: "POST"; + url: "/projects/:project_id/columns"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateColumnResponseData { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +} +declare type RateLimitGetEndpoint = {}; +declare type RateLimitGetRequestOptions = { + method: "GET"; + url: "/rate_limit"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface RateLimitGetResponseData { + resources: { + core: { + limit: number; + remaining: number; + reset: number; + }; + search: { + limit: number; + remaining: number; + reset: number; + }; + graphql: { + limit: number; + remaining: number; + reset: number; + }; + integration_manifest: { + limit: number; + remaining: number; + reset: number; + }; + }; + rate: { + limit: number; + remaining: number; + reset: number; + }; +} +declare type ReactionsDeleteLegacyEndpoint = { + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteLegacyRequestOptions = { + method: "DELETE"; + url: "/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ReposUpdateEndpoint = { + owner: string; + repo: string; + /** + * The name of the repository. + */ + name?: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to make the repository private or `false` to make it public. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. The `visibility` parameter overrides the `private` parameter when you use both along with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * Updates the default branch for this repository. + */ + default_branch?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; + /** + * `true` to archive this repository. **Note**: You cannot unarchive repositories through the API. + */ + archived?: boolean; +}; +declare type ReposUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ReposDeleteEndpoint = { + owner: string; + repo: string; +}; +declare type ReposDeleteRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposDeleteResponseData { + message: string; + documentation_url: string; +} +declare type ActionsListArtifactsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListArtifactsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/artifacts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListArtifactsForRepoResponseData { + total_count: number; + artifacts: { + id: number; + node_id: string; + name: string; + size_in_bytes: number; + url: string; + archive_download_url: string; + expired: boolean; + created_at: string; + expires_at: string; + }[]; +} +declare type ActionsGetArtifactEndpoint = { + owner: string; + repo: string; + artifact_id: number; +}; +declare type ActionsGetArtifactRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/artifacts/:artifact_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetArtifactResponseData { + id: number; + node_id: string; + name: string; + size_in_bytes: number; + url: string; + archive_download_url: string; + expired: boolean; + created_at: string; + expires_at: string; +} +declare type ActionsDeleteArtifactEndpoint = { + owner: string; + repo: string; + artifact_id: number; +}; +declare type ActionsDeleteArtifactRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/artifacts/:artifact_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDownloadArtifactEndpoint = { + owner: string; + repo: string; + artifact_id: number; + archive_format: string; +}; +declare type ActionsDownloadArtifactRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/artifacts/:artifact_id/:archive_format"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsGetWorkflowJobEndpoint = { + owner: string; + repo: string; + job_id: number; +}; +declare type ActionsGetWorkflowJobRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/jobs/:job_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowJobResponseData { + id: number; + run_id: number; + run_url: string; + node_id: string; + head_sha: string; + url: string; + html_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + name: string; + steps: { + name: string; + status: string; + conclusion: string; + number: number; + started_at: string; + completed_at: string; + }[]; + check_run_url: string; +} +declare type ActionsDownloadWorkflowJobLogsEndpoint = { + owner: string; + repo: string; + job_id: number; +}; +declare type ActionsDownloadWorkflowJobLogsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/jobs/:job_id/logs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListSelfHostedRunnersForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListSelfHostedRunnersForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runners"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListSelfHostedRunnersForRepoResponseData { + total_count: number; + runners: { + id: number; + name: string; + os: string; + status: string; + }[]; +} +declare type ActionsListRunnerApplicationsForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsListRunnerApplicationsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runners/downloads"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActionsListRunnerApplicationsForRepoResponseData = { + os: string; + architecture: string; + download_url: string; + filename: string; +}[]; +declare type ActionsCreateRegistrationTokenForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsCreateRegistrationTokenForRepoRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runners/registration-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRegistrationTokenForRepoResponseData { + token: string; + expires_at: string; +} +declare type ActionsCreateRemoveTokenForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsCreateRemoveTokenForRepoRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runners/remove-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRemoveTokenForRepoResponseData { + token: string; + expires_at: string; +} +declare type ActionsGetSelfHostedRunnerForRepoEndpoint = { + owner: string; + repo: string; + runner_id: number; +}; +declare type ActionsGetSelfHostedRunnerForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetSelfHostedRunnerForRepoResponseData { + id: number; + name: string; + os: string; + status: string; +} +declare type ActionsDeleteSelfHostedRunnerFromRepoEndpoint = { + owner: string; + repo: string; + runner_id: number; +}; +declare type ActionsDeleteSelfHostedRunnerFromRepoRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListRepoWorkflowRunsEndpoint = { + owner: string; + repo: string; + /** + * Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. + */ + actor?: string; + /** + * Returns workflow runs associated with a branch. Use the name of the branch of the `push`. + */ + branch?: string; + /** + * Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)" in the GitHub Help documentation. + */ + event?: string; + /** + * Returns workflow runs associated with the check run `status` or `conclusion` you specify. For example, a conclusion can be `success` or a status can be `completed`. For more information, see the `status` and `conclusion` options available in "[Create a check run](https://developer.github.com/v3/checks/runs/#create-a-check-run)." + */ + status?: "completed" | "status" | "conclusion"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListRepoWorkflowRunsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListRepoWorkflowRunsResponseData { + total_count: number; + workflow_runs: { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + run_number: number; + event: string; + status: string; + conclusion: string; + url: string; + html_url: string; + pull_requests: unknown[]; + created_at: string; + updated_at: string; + jobs_url: string; + logs_url: string; + check_suite_url: string; + artifacts_url: string; + cancel_url: string; + rerun_url: string; + workflow_url: string; + head_commit: { + id: string; + tree_id: string; + message: string; + timestamp: string; + author: { + name: string; + email: string; + }; + committer: { + name: string; + email: string; + }; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + head_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + private: boolean; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; + }[]; +} +declare type ActionsGetWorkflowRunEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsGetWorkflowRunRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowRunResponseData { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + run_number: number; + event: string; + status: string; + conclusion: string; + url: string; + html_url: string; + pull_requests: unknown[]; + created_at: string; + updated_at: string; + jobs_url: string; + logs_url: string; + check_suite_url: string; + artifacts_url: string; + cancel_url: string; + rerun_url: string; + workflow_url: string; + head_commit: { + id: string; + tree_id: string; + message: string; + timestamp: string; + author: { + name: string; + email: string; + }; + committer: { + name: string; + email: string; + }; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + head_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + private: boolean; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; +} +declare type ActionsListWorkflowRunArtifactsEndpoint = { + owner: string; + repo: string; + run_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListWorkflowRunArtifactsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/artifacts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListWorkflowRunArtifactsResponseData { + total_count: number; + artifacts: { + id: number; + node_id: string; + name: string; + size_in_bytes: number; + url: string; + archive_download_url: string; + expired: boolean; + created_at: string; + expires_at: string; + }[]; +} +declare type ActionsCancelWorkflowRunEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsCancelWorkflowRunRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runs/:run_id/cancel"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListJobsForWorkflowRunEndpoint = { + owner: string; + repo: string; + run_id: number; + /** + * Filters jobs by their `completed_at` timestamp. Can be one of: + * \* `latest`: Returns jobs from the most recent execution of the workflow run. + * \* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListJobsForWorkflowRunRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/jobs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListJobsForWorkflowRunResponseData { + total_count: number; + jobs: { + id: number; + run_id: number; + run_url: string; + node_id: string; + head_sha: string; + url: string; + html_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + name: string; + steps: { + name: string; + status: string; + conclusion: string; + number: number; + started_at: string; + completed_at: string; + }[]; + check_run_url: string; + }[]; +} +declare type ActionsDownloadWorkflowRunLogsEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsDownloadWorkflowRunLogsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/logs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDeleteWorkflowRunLogsEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsDeleteWorkflowRunLogsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/runs/:run_id/logs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsReRunWorkflowEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsReRunWorkflowRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runs/:run_id/rerun"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsGetWorkflowRunUsageEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsGetWorkflowRunUsageRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/timing"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowRunUsageResponseData { + billable: { + UBUNTU: { + total_ms: number; + jobs: number; + }; + MACOS: { + total_ms: number; + jobs: number; + }; + WINDOWS: { + total_ms: number; + jobs: number; + }; + }; + run_duration_ms: number; +} +declare type ActionsListRepoSecretsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListRepoSecretsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/secrets"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListRepoSecretsResponseData { + total_count: number; + secrets: { + name: string; + created_at: string; + updated_at: string; + }[]; +} +declare type ActionsGetRepoPublicKeyEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsGetRepoPublicKeyRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/secrets/public-key"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetRepoPublicKeyResponseData { + key_id: string; + key: string; +} +declare type ActionsGetRepoSecretEndpoint = { + owner: string; + repo: string; + secret_name: string; +}; +declare type ActionsGetRepoSecretRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetRepoSecretResponseData { + name: string; + created_at: string; + updated_at: string; +} +declare type ActionsCreateOrUpdateRepoSecretEndpoint = { + owner: string; + repo: string; + secret_name: string; + /** + * Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://developer.github.com/v3/actions/secrets/#get-a-repository-public-key) endpoint. + */ + encrypted_value?: string; + /** + * ID of the key you used to encrypt the secret. + */ + key_id?: string; +}; +declare type ActionsCreateOrUpdateRepoSecretRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDeleteRepoSecretEndpoint = { + owner: string; + repo: string; + secret_name: string; +}; +declare type ActionsDeleteRepoSecretRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListRepoWorkflowsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListRepoWorkflowsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListRepoWorkflowsResponseData { + total_count: number; + workflows: { + id: number; + node_id: string; + name: string; + path: string; + state: string; + created_at: string; + updated_at: string; + url: string; + html_url: string; + badge_url: string; + }[]; +} +declare type ActionsGetWorkflowEndpoint = { + owner: string; + repo: string; + workflow_id: number; +}; +declare type ActionsGetWorkflowRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows/:workflow_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowResponseData { + id: number; + node_id: string; + name: string; + path: string; + state: string; + created_at: string; + updated_at: string; + url: string; + html_url: string; + badge_url: string; +} +declare type ActionsListWorkflowRunsEndpoint = { + owner: string; + repo: string; + workflow_id: number; + /** + * Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. + */ + actor?: string; + /** + * Returns workflow runs associated with a branch. Use the name of the branch of the `push`. + */ + branch?: string; + /** + * Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)" in the GitHub Help documentation. + */ + event?: string; + /** + * Returns workflow runs associated with the check run `status` or `conclusion` you specify. For example, a conclusion can be `success` or a status can be `completed`. For more information, see the `status` and `conclusion` options available in "[Create a check run](https://developer.github.com/v3/checks/runs/#create-a-check-run)." + */ + status?: "completed" | "status" | "conclusion"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListWorkflowRunsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows/:workflow_id/runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListWorkflowRunsResponseData { + total_count: number; + workflow_runs: { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + run_number: number; + event: string; + status: string; + conclusion: string; + url: string; + html_url: string; + pull_requests: unknown[]; + created_at: string; + updated_at: string; + jobs_url: string; + logs_url: string; + check_suite_url: string; + artifacts_url: string; + cancel_url: string; + rerun_url: string; + workflow_url: string; + head_commit: { + id: string; + tree_id: string; + message: string; + timestamp: string; + author: { + name: string; + email: string; + }; + committer: { + name: string; + email: string; + }; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + head_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + private: boolean; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; + }[]; +} +declare type ActionsGetWorkflowUsageEndpoint = { + owner: string; + repo: string; + workflow_id: number; +}; +declare type ActionsGetWorkflowUsageRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows/:workflow_id/timing"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowUsageResponseData { + billable: { + UBUNTU: { + total_ms: number; + }; + MACOS: { + total_ms: number; + }; + WINDOWS: { + total_ms: number; + }; + }; +} +declare type IssuesListAssigneesEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListAssigneesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/assignees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListAssigneesResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type IssuesCheckAssigneeEndpoint = { + owner: string; + repo: string; + assignee: string; +}; +declare type IssuesCheckAssigneeRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/assignees/:assignee"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposEnableAutomatedSecurityFixesEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"london">; +declare type ReposEnableAutomatedSecurityFixesRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/automated-security-fixes"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposDisableAutomatedSecurityFixesEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"london">; +declare type ReposDisableAutomatedSecurityFixesRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/automated-security-fixes"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListBranchesEndpoint = { + owner: string; + repo: string; + /** + * Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. + */ + protected?: boolean; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListBranchesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListBranchesResponseData = { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; + protection: { + enabled: boolean; + required_status_checks: { + enforcement_level: string; + contexts: string[]; + }; + }; + protection_url: string; +}[]; +declare type ReposGetBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetBranchResponseData { + name: string; + commit: { + sha: string; + node_id: string; + commit: { + author: { + name: string; + date: string; + email: string; + }; + url: string; + message: string; + tree: { + sha: string; + url: string; + }; + committer: { + name: string; + date: string; + email: string; + }; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + gravatar_id: string; + avatar_url: string; + url: string; + id: number; + login: string; + }; + parents: { + sha: string; + url: string; + }[]; + url: string; + committer: { + gravatar_id: string; + avatar_url: string; + url: string; + id: number; + login: string; + }; + }; + _links: { + html: string; + self: string; + }; + protected: boolean; + protection: { + enabled: boolean; + required_status_checks: { + enforcement_level: string; + contexts: string[]; + }; + }; + protection_url: string; +} +declare type ReposGetBranchProtectionEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetBranchProtectionRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetBranchProtectionResponseData { + url: string; + required_status_checks: { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; + }; + enforce_admins: { + url: string; + enabled: boolean; + }; + required_pull_request_reviews: { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + }; + restrictions: { + url: string; + users_url: string; + teams_url: string; + apps_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + apps: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }[]; + }; + required_linear_history: { + enabled: boolean; + }; + allow_force_pushes: { + enabled: boolean; + }; + allow_deletions: { + enabled: boolean; + }; +} +declare type ReposUpdateBranchProtectionEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * Require status checks to pass before merging. Set to `null` to disable. + */ + required_status_checks: ReposUpdateBranchProtectionParamsRequiredStatusChecks | null; + /** + * Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. + */ + enforce_admins: boolean | null; + /** + * Require at least one approving review on a pull request, before merging. Set to `null` to disable. + */ + required_pull_request_reviews: ReposUpdateBranchProtectionParamsRequiredPullRequestReviews | null; + /** + * Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. + */ + restrictions: ReposUpdateBranchProtectionParamsRestrictions | null; + /** + * Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see "[Requiring a linear commit history](https://help.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" in the GitHub Help documentation. + */ + required_linear_history?: boolean; + /** + * Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation." + */ + allow_force_pushes?: boolean | null; + /** + * Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation. + */ + allow_deletions?: boolean; +}; +declare type ReposUpdateBranchProtectionRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateBranchProtectionResponseData { + url: string; + required_status_checks: { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; + }; + enforce_admins: { + url: string; + enabled: boolean; + }; + required_pull_request_reviews: { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + }; + restrictions: { + url: string; + users_url: string; + teams_url: string; + apps_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + apps: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }[]; + }; + required_linear_history: { + enabled: boolean; + }; + allow_force_pushes: { + enabled: boolean; + }; + allow_deletions: { + enabled: boolean; + }; +} +declare type ReposRemoveBranchProtectionEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveBranchProtectionRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchAdminEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchAdminEnforcementRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/enforce_admins"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchAdminEnforcementResponseData { + url: string; + enabled: boolean; +} +declare type ReposAddProtectedBranchAdminEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposAddProtectedBranchAdminEnforcementRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/enforce_admins"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddProtectedBranchAdminEnforcementResponseData { + url: string; + enabled: boolean; +} +declare type ReposRemoveProtectedBranchAdminEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchAdminEnforcementRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/enforce_admins"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchPullRequestReviewEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchPullRequestReviewEnforcementResponseData { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; +} +declare type ReposUpdateProtectedBranchPullRequestReviewEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. + */ + dismissal_restrictions?: ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions; + /** + * Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. + */ + dismiss_stale_reviews?: boolean; + /** + * Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed. + */ + require_code_owner_reviews?: boolean; + /** + * Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6. + */ + required_approving_review_count?: number; +}; +declare type ReposUpdateProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseData { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; +} +declare type ReposRemoveProtectedBranchPullRequestReviewEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchRequiredSignaturesEndpoint = { + owner: string; + repo: string; + branch: string; +} & RequiredPreview<"zzzax">; +declare type ReposGetProtectedBranchRequiredSignaturesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_signatures"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchRequiredSignaturesResponseData { + url: string; + enabled: boolean; +} +declare type ReposAddProtectedBranchRequiredSignaturesEndpoint = { + owner: string; + repo: string; + branch: string; +} & RequiredPreview<"zzzax">; +declare type ReposAddProtectedBranchRequiredSignaturesRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_signatures"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddProtectedBranchRequiredSignaturesResponseData { + url: string; + enabled: boolean; +} +declare type ReposRemoveProtectedBranchRequiredSignaturesEndpoint = { + owner: string; + repo: string; + branch: string; +} & RequiredPreview<"zzzax">; +declare type ReposRemoveProtectedBranchRequiredSignaturesRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_signatures"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchRequiredStatusChecksEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchRequiredStatusChecksRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchRequiredStatusChecksResponseData { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; +} +declare type ReposUpdateProtectedBranchRequiredStatusChecksEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * Require branches to be up to date before merging. + */ + strict?: boolean; + /** + * The list of status checks to require in order to merge into this branch + */ + contexts?: string[]; +}; +declare type ReposUpdateProtectedBranchRequiredStatusChecksRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateProtectedBranchRequiredStatusChecksResponseData { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; +} +declare type ReposRemoveProtectedBranchRequiredStatusChecksEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchRequiredStatusChecksRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposListProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposReplaceProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +declare type ReposReplaceProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposAddProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +declare type ReposAddProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposRemoveProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +declare type ReposRemoveProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposGetProtectedBranchRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchRestrictionsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchRestrictionsResponseData { + url: string; + users_url: string; + teams_url: string; + apps_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + apps: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }[]; +} +declare type ReposRemoveProtectedBranchRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetAppsWithAccessToProtectedBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetAppsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetAppsWithAccessToProtectedBranchResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposReplaceProtectedBranchAppRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +declare type ReposReplaceProtectedBranchAppRestrictionsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchAppRestrictionsResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposAddProtectedBranchAppRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +declare type ReposAddProtectedBranchAppRestrictionsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchAppRestrictionsResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposRemoveProtectedBranchAppRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +declare type ReposRemoveProtectedBranchAppRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchAppRestrictionsResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposGetTeamsWithAccessToProtectedBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetTeamsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetTeamsWithAccessToProtectedBranchResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposReplaceProtectedBranchTeamRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +declare type ReposReplaceProtectedBranchTeamRestrictionsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchTeamRestrictionsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposAddProtectedBranchTeamRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +declare type ReposAddProtectedBranchTeamRestrictionsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchTeamRestrictionsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposRemoveProtectedBranchTeamRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +declare type ReposRemoveProtectedBranchTeamRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchTeamRestrictionsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposGetUsersWithAccessToProtectedBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetUsersWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetUsersWithAccessToProtectedBranchResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ReposReplaceProtectedBranchUserRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * users parameter + */ + users: string[]; +}; +declare type ReposReplaceProtectedBranchUserRestrictionsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchUserRestrictionsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ReposAddProtectedBranchUserRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * users parameter + */ + users: string[]; +}; +declare type ReposAddProtectedBranchUserRestrictionsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchUserRestrictionsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ReposRemoveProtectedBranchUserRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * users parameter + */ + users: string[]; +}; +declare type ReposRemoveProtectedBranchUserRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchUserRestrictionsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ChecksCreateEndpoint = { + owner: string; + repo: string; + /** + * The name of the check. For example, "code-coverage". + */ + name: string; + /** + * The SHA of the commit. + */ + head_sha: string; + /** + * The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`. + */ + conclusion?: "success" | "failure" | "neutral" | "cancelled" | "skipped" | "timed_out" | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object) description. + */ + output?: ChecksCreateParamsOutput; + /** + * Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://developer.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksCreateParamsActions[]; +} & RequiredPreview<"antiope">; +declare type ChecksCreateRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/check-runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksCreateResponseData { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; +} +declare type ChecksUpdateEndpoint = { + owner: string; + repo: string; + check_run_id: number; + /** + * The name of the check. For example, "code-coverage". + */ + name?: string; + /** + * The URL of the integrator's site that has the full details of the check. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`. + */ + conclusion?: "success" | "failure" | "neutral" | "cancelled" | "skipped" | "timed_out" | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object-1) description. + */ + output?: ChecksUpdateParamsOutput; + /** + * Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksUpdateParamsActions[]; +} & RequiredPreview<"antiope">; +declare type ChecksUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/check-runs/:check_run_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksUpdateResponseData { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; +} +declare type ChecksGetEndpoint = { + owner: string; + repo: string; + check_run_id: number; +} & RequiredPreview<"antiope">; +declare type ChecksGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-runs/:check_run_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksGetResponseData { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; +} +declare type ChecksListAnnotationsEndpoint = { + owner: string; + repo: string; + check_run_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListAnnotationsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-runs/:check_run_id/annotations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ChecksListAnnotationsResponseData = { + path: string; + start_line: number; + end_line: number; + start_column: number; + end_column: number; + annotation_level: string; + title: string; + message: string; + raw_details: string; +}[]; +declare type ChecksCreateSuiteEndpoint = { + owner: string; + repo: string; + /** + * The sha of the head commit. + */ + head_sha: string; +} & RequiredPreview<"antiope">; +declare type ChecksCreateSuiteRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/check-suites"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksCreateSuiteResponseData { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + status: string; + conclusion: string; + url: string; + before: string; + after: string; + pull_requests: unknown[]; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ChecksSetSuitesPreferencesEndpoint = { + owner: string; + repo: string; + /** + * Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://developer.github.com/v3/checks/suites/#auto_trigger_checks-object) description for details. + */ + auto_trigger_checks?: ChecksSetSuitesPreferencesParamsAutoTriggerChecks[]; +} & RequiredPreview<"antiope">; +declare type ChecksSetSuitesPreferencesRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/check-suites/preferences"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksSetSuitesPreferencesResponseData { + preferences: { + auto_trigger_checks: { + app_id: number; + setting: boolean; + }[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ChecksGetSuiteEndpoint = { + owner: string; + repo: string; + check_suite_id: number; +} & RequiredPreview<"antiope">; +declare type ChecksGetSuiteRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-suites/:check_suite_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksGetSuiteResponseData { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + status: string; + conclusion: string; + url: string; + before: string; + after: string; + pull_requests: unknown[]; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ChecksListForSuiteEndpoint = { + owner: string; + repo: string; + check_suite_id: number; + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListForSuiteRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-suites/:check_suite_id/check-runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksListForSuiteResponseData { + total_count: number; + check_runs: { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; + }[]; +} +declare type ChecksRerequestSuiteEndpoint = { + owner: string; + repo: string; + check_suite_id: number; +} & RequiredPreview<"antiope">; +declare type ChecksRerequestSuiteRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/check-suites/:check_suite_id/rerequest"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type CodeScanningListAlertsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Set to `closed` to list only closed code scanning alerts. + */ + state?: string; + /** + * Returns a list of code scanning alerts for a specific brach reference. The `ref` must be formatted as `heads/`. + */ + ref?: string; +}; +declare type CodeScanningListAlertsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/code-scanning/alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type CodeScanningListAlertsForRepoResponseData = { + rule_id: string; + rule_severity: string; + rule_description: string; + tool: string; + created_at: string; + open: boolean; + closed_by: string; + closed_at: string; + url: string; + html_url: string; +}[]; +declare type CodeScanningGetAlertEndpoint = { + owner: string; + repo: string; + alert_id: number; +}; +declare type CodeScanningGetAlertRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/code-scanning/alerts/:alert_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface CodeScanningGetAlertResponseData { + rule_id: string; + rule_severity: string; + rule_description: string; + tool: string; + created_at: string; + open: boolean; + closed_by: string; + closed_at: string; + url: string; + html_url: string; +} +declare type ReposListCollaboratorsEndpoint = { + owner: string; + repo: string; + /** + * Filter collaborators returned by their affiliation. Can be one of: + * \* `outside`: All outside collaborators of an organization-owned repository. + * \* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCollaboratorsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/collaborators"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCollaboratorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + permissions: { + pull: boolean; + push: boolean; + admin: boolean; + }; +}[]; +declare type ReposCheckCollaboratorEndpoint = { + owner: string; + repo: string; + username: string; +}; +declare type ReposCheckCollaboratorRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposAddCollaboratorEndpoint = { + owner: string; + repo: string; + username: string; + /** + * The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: + * \* `pull` - can pull, but not push to or administer this repository. + * \* `push` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push and administer this repository. + * \* `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions. + * \* `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access. + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; +}; +declare type ReposAddCollaboratorRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddCollaboratorResponseData { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +} +declare type ReposRemoveCollaboratorEndpoint = { + owner: string; + repo: string; + username: string; +}; +declare type ReposRemoveCollaboratorRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetCollaboratorPermissionLevelEndpoint = { + owner: string; + repo: string; + username: string; +}; +declare type ReposGetCollaboratorPermissionLevelRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/collaborators/:username/permission"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCollaboratorPermissionLevelResponseData { + permission: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ReposListCommitCommentsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCommitCommentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCommitCommentsResponseData = { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ReposGetCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type ReposGetCommitCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCommitCommentResponseData { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ReposUpdateCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The contents of the comment + */ + body: string; +}; +declare type ReposUpdateCommitCommentRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateCommitCommentResponseData { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ReposDeleteCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type ReposDeleteCommitCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a commit comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForCommitCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForCommitCommentResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the commit comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForCommitCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForCommitCommentResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForCommitCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/comments/:comment_id/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListCommitsEndpoint = { + owner: string; + repo: string; + /** + * SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`). + */ + sha?: string; + /** + * Only commits containing this file path will be returned. + */ + path?: string; + /** + * GitHub login or email address by which to filter by commit author. + */ + author?: string; + /** + * Only commits after this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + until?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCommitsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCommitsResponseData = { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; +}[]; +declare type ReposListBranchesForHeadCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; +} & RequiredPreview<"groot">; +declare type ReposListBranchesForHeadCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:commit_sha/branches-where-head"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListBranchesForHeadCommitResponseData = { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; +}[]; +declare type ReposListCommentsForCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCommentsForCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:commit_sha/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCommentsForCommitResponseData = { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ReposCreateCommitCommentEndpoint = { + owner: string; + repo: string; + commit_sha: string; + /** + * The contents of the comment. + */ + body: string; + /** + * Relative path of the file to comment on. + */ + path?: string; + /** + * Line index in the diff to comment on. + */ + position?: number; + /** + * **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. + */ + line?: number; +}; +declare type ReposCreateCommitCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/commits/:commit_sha/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateCommitCommentResponseData { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ReposListPullRequestsAssociatedWithCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"groot">; +declare type ReposListPullRequestsAssociatedWithCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:commit_sha/pulls"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListPullRequestsAssociatedWithCommitResponseData = { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; +}[]; +declare type ReposGetCommitEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type ReposGetCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCommitResponseData { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + stats: { + additions: number; + deletions: number; + total: number; + }; + files: { + filename: string; + additions: number; + deletions: number; + changes: number; + status: string; + raw_url: string; + blob_url: string; + patch: string; + }[]; +} +declare type ChecksListForRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/check-runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksListForRefResponseData { + total_count: number; + check_runs: { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; + }[]; +} +declare type ChecksListSuitesForRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Filters check suites by GitHub App `id`. + */ + app_id?: number; + /** + * Filters checks suites by the name of the [check run](https://developer.github.com/v3/checks/runs/). + */ + check_name?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListSuitesForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/check-suites"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksListSuitesForRefResponseData { + total_count: number; + check_suites: { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + status: string; + conclusion: string; + url: string; + before: string; + after: string; + pull_requests: unknown[]; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }[]; +} +declare type ReposGetCombinedStatusForRefEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type ReposGetCombinedStatusForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/status"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCombinedStatusForRefResponseData { + state: string; + statuses: { + url: string; + avatar_url: string; + id: number; + node_id: string; + state: string; + description: string; + target_url: string; + context: string; + created_at: string; + updated_at: string; + }[]; + sha: string; + total_count: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + commit_url: string; + url: string; +} +declare type ReposListStatusesForRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListStatusesForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/statuses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListStatusesForRefResponseData = { + url: string; + avatar_url: string; + id: number; + node_id: string; + state: string; + description: string; + target_url: string; + context: string; + created_at: string; + updated_at: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type CodesOfConductGetForRepoEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"scarlet-witch">; +declare type CodesOfConductGetForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/community/code_of_conduct"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface CodesOfConductGetForRepoResponseData { + key: string; + name: string; + url: string; + body: string; +} +declare type ReposRetrieveCommunityProfileMetricsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposRetrieveCommunityProfileMetricsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/community/profile"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposRetrieveCommunityProfileMetricsResponseData { + health_percentage: number; + description: string; + documentation: boolean; + files: { + code_of_conduct: { + name: string; + key: string; + url: string; + html_url: string; + }; + contributing: { + url: string; + html_url: string; + }; + issue_template: { + url: string; + html_url: string; + }; + pull_request_template: { + url: string; + html_url: string; + }; + license: { + name: string; + key: string; + spdx_id: string; + url: string; + html_url: string; + }; + readme: { + url: string; + html_url: string; + }; + }; + updated_at: string; +} +declare type ReposCompareCommitsEndpoint = { + owner: string; + repo: string; + base: string; + head: string; +}; +declare type ReposCompareCommitsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/compare/:base...:head"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCompareCommitsResponseData { + url: string; + html_url: string; + permalink_url: string; + diff_url: string; + patch_url: string; + base_commit: { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + }; + merge_base_commit: { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + }; + status: string; + ahead_by: number; + behind_by: number; + total_commits: number; + commits: { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + }[]; + files: { + sha: string; + filename: string; + status: string; + additions: number; + deletions: number; + changes: number; + blob_url: string; + raw_url: string; + contents_url: string; + patch: string; + }[]; +} +declare type ReposGetContentsEndpoint = { + owner: string; + repo: string; + path: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; +}; +declare type ReposGetContentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/contents/:path"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetContentsResponseData { + type: string; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + url: string; + git_url: string; + html_url: string; + download_url: string; + _links: { + git: string; + self: string; + html: string; + }; +} +declare type ReposCreateOrUpdateFileEndpoint = { + owner: string; + repo: string; + path: string; + /** + * The commit message. + */ + message: string; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposCreateOrUpdateFileParamsCommitter; + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposCreateOrUpdateFileParamsAuthor; +}; +declare type ReposCreateOrUpdateFileRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/contents/:path"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateOrUpdateFileResponseData { + content: { + name: string; + path: string; + sha: string; + size: number; + url: string; + html_url: string; + git_url: string; + download_url: string; + type: string; + _links: { + self: string; + git: string; + html: string; + }; + }; + commit: { + sha: string; + node_id: string; + url: string; + html_url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; +} +export interface ReposCreateOrUpdateFileResponse201Data { + content: { + name: string; + path: string; + sha: string; + size: number; + url: string; + html_url: string; + git_url: string; + download_url: string; + type: string; + _links: { + self: string; + git: string; + html: string; + }; + }; + commit: { + sha: string; + node_id: string; + url: string; + html_url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; +} +declare type ReposDeleteFileEndpoint = { + owner: string; + repo: string; + path: string; + /** + * The commit message. + */ + message: string; + /** + * The blob SHA of the file being replaced. + */ + sha: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * object containing information about the committer. + */ + committer?: ReposDeleteFileParamsCommitter; + /** + * object containing information about the author. + */ + author?: ReposDeleteFileParamsAuthor; +}; +declare type ReposDeleteFileRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/contents/:path"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposDeleteFileResponseData { + content: string; + commit: { + sha: string; + node_id: string; + url: string; + html_url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; +} +declare type ReposListContributorsEndpoint = { + owner: string; + repo: string; + /** + * Set to `1` or `true` to include anonymous contributors in results. + */ + anon?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListContributorsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/contributors"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListContributorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + contributions: number; +}[]; +declare type ReposListDeploymentsEndpoint = { + owner: string; + repo: string; + /** + * The SHA recorded at creation time. + */ + sha?: string; + /** + * The name of the ref. This can be a branch, tag, or SHA. + */ + ref?: string; + /** + * The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * The name of the environment that was deployed to (e.g., `staging` or `production`). + */ + environment?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDeploymentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDeploymentsResponseData = { + url: string; + id: number; + node_id: string; + sha: string; + ref: string; + task: string; + payload: { + deploy: string; + }; + original_environment: string; + environment: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + statuses_url: string; + repository_url: string; + transient_environment: boolean; + production_environment: boolean; +}[]; +declare type ReposCreateDeploymentEndpoint = { + owner: string; + repo: string; + /** + * The ref to deploy. This can be a branch, tag, or SHA. + */ + ref: string; + /** + * Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + */ + auto_merge?: boolean; + /** + * The [status](https://developer.github.com/v3/repos/statuses/) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. + */ + required_contexts?: string[]; + /** + * JSON payload with extra information about the deployment. + */ + payload?: string; + /** + * Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + */ + environment?: string; + /** + * Short description of the deployment. + */ + description?: string; + /** + * Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + transient_environment?: boolean; + /** + * Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + production_environment?: boolean; +}; +declare type ReposCreateDeploymentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/deployments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateDeploymentResponseData { + url: string; + id: number; + node_id: string; + sha: string; + ref: string; + task: string; + payload: { + deploy: string; + }; + original_environment: string; + environment: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + statuses_url: string; + repository_url: string; + transient_environment: boolean; + production_environment: boolean; +} +export interface ReposCreateDeploymentResponse202Data { + message: string; +} +export interface ReposCreateDeploymentResponse409Data { + message: string; +} +declare type ReposGetDeploymentEndpoint = { + owner: string; + repo: string; + deployment_id: number; +}; +declare type ReposGetDeploymentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments/:deployment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDeploymentResponseData { + url: string; + id: number; + node_id: string; + sha: string; + ref: string; + task: string; + payload: { + deploy: string; + }; + original_environment: string; + environment: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + statuses_url: string; + repository_url: string; + transient_environment: boolean; + production_environment: boolean; +} +declare type ReposDeleteDeploymentEndpoint = { + owner: string; + repo: string; + deployment_id: number; +}; +declare type ReposDeleteDeploymentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/deployments/:deployment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListDeploymentStatusesEndpoint = { + owner: string; + repo: string; + deployment_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDeploymentStatusesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments/:deployment_id/statuses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDeploymentStatusesResponseData = { + url: string; + id: number; + node_id: string; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + description: string; + environment: string; + target_url: string; + created_at: string; + updated_at: string; + deployment_url: string; + repository_url: string; + environment_url: string; + log_url: string; +}[]; +declare type ReposCreateDeploymentStatusEndpoint = { + owner: string; + repo: string; + deployment_id: number; + /** + * The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + state: "error" | "failure" | "inactive" | "in_progress" | "queued" | "pending" | "success"; + /** + * The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + */ + target_url?: string; + /** + * The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + log_url?: string; + /** + * A short description of the status. The maximum description length is 140 characters. + */ + description?: string; + /** + * Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + environment?: "production" | "staging" | "qa"; + /** + * Sets the URL for accessing your environment. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + environment_url?: string; + /** + * Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` + * **Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + auto_inactive?: boolean; +}; +declare type ReposCreateDeploymentStatusRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/deployments/:deployment_id/statuses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateDeploymentStatusResponseData { + url: string; + id: number; + node_id: string; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + description: string; + environment: string; + target_url: string; + created_at: string; + updated_at: string; + deployment_url: string; + repository_url: string; + environment_url: string; + log_url: string; +} +declare type ReposGetDeploymentStatusEndpoint = { + owner: string; + repo: string; + deployment_id: number; + status_id: number; +}; +declare type ReposGetDeploymentStatusRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDeploymentStatusResponseData { + url: string; + id: number; + node_id: string; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + description: string; + environment: string; + target_url: string; + created_at: string; + updated_at: string; + deployment_url: string; + repository_url: string; + environment_url: string; + log_url: string; +} +declare type ReposCreateDispatchEventEndpoint = { + owner: string; + repo: string; + /** + * **Required:** A custom webhook event name. + */ + event_type?: string; + /** + * JSON payload with extra information about the webhook event that your action or worklow may use. + */ + client_payload?: ReposCreateDispatchEventParamsClientPayload; +}; +declare type ReposCreateDispatchEventRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/dispatches"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListDownloadsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDownloadsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/downloads"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDownloadsResponseData = { + url: string; + html_url: string; + id: number; + name: string; + description: string; + size: number; + download_count: number; + content_type: string; +}[]; +declare type ReposGetDownloadEndpoint = { + owner: string; + repo: string; + download_id: number; +}; +declare type ReposGetDownloadRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/downloads/:download_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDownloadResponseData { + url: string; + html_url: string; + id: number; + name: string; + description: string; + size: number; + download_count: number; + content_type: string; +} +declare type ReposDeleteDownloadEndpoint = { + owner: string; + repo: string; + download_id: number; +}; +declare type ReposDeleteDownloadRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/downloads/:download_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListRepoEventsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListRepoEventsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListForksEndpoint = { + owner: string; + repo: string; + /** + * The sort order. Can be either `newest`, `oldest`, or `stargazers`. + */ + sort?: "newest" | "oldest" | "stargazers"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForksRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListForksResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type ReposCreateForkEndpoint = { + owner: string; + repo: string; + /** + * Optional parameter to specify the organization name if forking into an organization. + */ + organization?: string; +}; +declare type ReposCreateForkRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateForkResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type GitCreateBlobEndpoint = { + owner: string; + repo: string; + /** + * The new blob's content. + */ + content: string; + /** + * The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + */ + encoding?: string; +}; +declare type GitCreateBlobRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/blobs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateBlobResponseData { + url: string; + sha: string; +} +declare type GitGetBlobEndpoint = { + owner: string; + repo: string; + file_sha: string; +}; +declare type GitGetBlobRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/blobs/:file_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetBlobResponseData { + content: string; + encoding: string; + url: string; + sha: string; + size: number; +} +declare type GitCreateCommitEndpoint = { + owner: string; + repo: string; + /** + * The commit message + */ + message: string; + /** + * The SHA of the tree object this commit points to + */ + tree: string; + /** + * The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. + */ + parents: string[]; + /** + * Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. + */ + author?: GitCreateCommitParamsAuthor; + /** + * Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. + */ + committer?: GitCreateCommitParamsCommitter; + /** + * The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. + */ + signature?: string; +}; +declare type GitCreateCommitRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateCommitResponseData { + sha: string; + node_id: string; + url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitGetCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; +}; +declare type GitGetCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/commits/:commit_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetCommitResponseData { + sha: string; + url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitListMatchingRefsEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GitListMatchingRefsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/matching-refs/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GitListMatchingRefsResponseData = { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +}[]; +declare type GitGetRefEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type GitGetRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/ref/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetRefResponseData { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +} +declare type GitCreateRefEndpoint = { + owner: string; + repo: string; + /** + * The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. + */ + ref: string; + /** + * The SHA1 value for this reference. + */ + sha: string; +}; +declare type GitCreateRefRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/refs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateRefResponseData { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +} +declare type GitUpdateRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * The SHA1 value to set this reference to + */ + sha: string; + /** + * Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + */ + force?: boolean; +}; +declare type GitUpdateRefRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/git/refs/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitUpdateRefResponseData { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +} +declare type GitDeleteRefEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type GitDeleteRefRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/git/refs/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GitCreateTagEndpoint = { + owner: string; + repo: string; + /** + * The tag's name. This is typically a version (e.g., "v0.0.1"). + */ + tag: string; + /** + * The tag message. + */ + message: string; + /** + * The SHA of the git object this is tagging. + */ + object: string; + /** + * The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + */ + type: "commit" | "tree" | "blob"; + /** + * An object with information about the individual creating the tag. + */ + tagger?: GitCreateTagParamsTagger; +}; +declare type GitCreateTagRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/tags"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateTagResponseData { + node_id: string; + tag: string; + sha: string; + url: string; + message: string; + tagger: { + name: string; + email: string; + date: string; + }; + object: { + type: string; + sha: string; + url: string; + }; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitGetTagEndpoint = { + owner: string; + repo: string; + tag_sha: string; +}; +declare type GitGetTagRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/tags/:tag_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetTagResponseData { + node_id: string; + tag: string; + sha: string; + url: string; + message: string; + tagger: { + name: string; + email: string; + date: string; + }; + object: { + type: string; + sha: string; + url: string; + }; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitCreateTreeEndpoint = { + owner: string; + repo: string; + /** + * Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. + */ + tree: GitCreateTreeParamsTree[]; + /** + * The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted. + */ + base_tree?: string; +}; +declare type GitCreateTreeRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/trees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateTreeResponseData { + sha: string; + url: string; + tree: { + path: string; + mode: string; + type: string; + size: number; + sha: string; + url: string; + }[]; +} +declare type GitGetTreeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * tree_sha parameter + */ + tree_sha: string; + /** + * recursive parameter + */ + recursive?: "1"; +}; +declare type GitGetTreeRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/trees/:tree_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetTreeResponseData { + sha: string; + url: string; + tree: { + path: string; + mode: string; + type: string; + size: number; + sha: string; + url: string; + }[]; + truncated: boolean; +} +declare type ReposListHooksEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListHooksRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListHooksResponseData = { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +}[]; +declare type ReposCreateHookEndpoint = { + owner: string; + repo: string; + /** + * Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. + */ + name?: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config: ReposCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type ReposCreateHookRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateHookResponseData { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +} +declare type ReposGetHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposGetHookRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetHookResponseData { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +} +declare type ReposUpdateHookEndpoint = { + owner: string; + repo: string; + hook_id: number; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config?: ReposUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events. + */ + events?: string[]; + /** + * Determines a list of events to be added to the list of events that the Hook triggers for. + */ + add_events?: string[]; + /** + * Determines a list of events to be removed from the list of events that the Hook triggers for. + */ + remove_events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type ReposUpdateHookRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateHookResponseData { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +} +declare type ReposDeleteHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposDeleteHookRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposPingHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposPingHookRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/hooks/:hook_id/pings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposTestPushHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposTestPushHookRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/hooks/:hook_id/tests"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsStartImportEndpoint = { + owner: string; + repo: string; + /** + * The URL of the originating repository. + */ + vcs_url: string; + /** + * The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** + * If authentication is required, the username to provide to `vcs_url`. + */ + vcs_username?: string; + /** + * If authentication is required, the password to provide to `vcs_url`. + */ + vcs_password?: string; + /** + * For a tfvc import, the name of the project that is being imported. + */ + tfvc_project?: string; +}; +declare type MigrationsStartImportRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsStartImportResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + status_text: string; + has_large_files: boolean; + large_files_size: number; + large_files_count: number; + authors_count: number; + percent: number; + commit_count: number; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type MigrationsGetImportProgressEndpoint = { + owner: string; + repo: string; +}; +declare type MigrationsGetImportProgressRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsGetImportProgressResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + status_text: string; + has_large_files: boolean; + large_files_size: number; + large_files_count: number; + authors_count: number; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type MigrationsUpdateImportEndpoint = { + owner: string; + repo: string; + /** + * The username to provide to the originating repository. + */ + vcs_username?: string; + /** + * The password to provide to the originating repository. + */ + vcs_password?: string; +}; +declare type MigrationsUpdateImportRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsUpdateImportResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type MigrationsCancelImportEndpoint = { + owner: string; + repo: string; +}; +declare type MigrationsCancelImportRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsGetCommitAuthorsEndpoint = { + owner: string; + repo: string; + /** + * Only authors found after this id are returned. Provide the highest author ID you've seen so far. New authors may be added to the list at any point while the importer is performing the `raw` step. + */ + since?: string; +}; +declare type MigrationsGetCommitAuthorsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/import/authors"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsGetCommitAuthorsResponseData = { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + url: string; + import_url: string; +}[]; +declare type MigrationsMapCommitAuthorEndpoint = { + owner: string; + repo: string; + author_id: number; + /** + * The new Git author email. + */ + email?: string; + /** + * The new Git author name. + */ + name?: string; +}; +declare type MigrationsMapCommitAuthorRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/import/authors/:author_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsMapCommitAuthorResponseData { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + url: string; + import_url: string; +} +declare type MigrationsGetLargeFilesEndpoint = { + owner: string; + repo: string; +}; +declare type MigrationsGetLargeFilesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/import/large_files"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsGetLargeFilesResponseData = { + ref_name: string; + path: string; + oid: string; + size: number; +}[]; +declare type MigrationsSetLfsPreferenceEndpoint = { + owner: string; + repo: string; + /** + * Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import). + */ + use_lfs: "opt_in" | "opt_out"; +}; +declare type MigrationsSetLfsPreferenceRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/import/lfs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsSetLfsPreferenceResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + status_text: string; + has_large_files: boolean; + large_files_size: number; + large_files_count: number; + authors_count: number; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type AppsGetRepoInstallationEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetRepoInstallationRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/installation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetRepoInstallationResponseData { + id: number; + account: { + login: string; + id: number; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + checks: string; + metadata: string; + contents: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; +} +declare type InteractionsGetRestrictionsForRepoEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"sombra">; +declare type InteractionsGetRestrictionsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsGetRestrictionsForRepoResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsAddOrUpdateRestrictionsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests for the given repository. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; +} & RequiredPreview<"sombra">; +declare type InteractionsAddOrUpdateRestrictionsForRepoRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsAddOrUpdateRestrictionsForRepoResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsRemoveRestrictionsForRepoEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"sombra">; +declare type InteractionsRemoveRestrictionsForRepoRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListInvitationsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListInvitationsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListInvitationsResponseData = { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +}[]; +declare type ReposDeleteInvitationEndpoint = { + owner: string; + repo: string; + invitation_id: number; +}; +declare type ReposDeleteInvitationRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposUpdateInvitationEndpoint = { + owner: string; + repo: string; + invitation_id: number; + /** + * The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`. + */ + permissions?: "read" | "write" | "maintain" | "triage" | "admin"; +}; +declare type ReposUpdateInvitationRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateInvitationResponseData { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +} +declare type IssuesListForRepoEndpoint = { + owner: string; + repo: string; + /** + * If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. + */ + milestone?: string; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. + */ + assignee?: string; + /** + * The user that created the issue. + */ + creator?: string; + /** + * A user that's mentioned in the issue. + */ + mentioned?: string; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListForRepoResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; +}[]; +declare type IssuesCreateEndpoint = { + owner: string; + repo: string; + /** + * The title of the issue. + */ + title: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ + */ + assignee?: string; + /** + * The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._ + */ + milestone?: number; + /** + * Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesCreateRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + closed_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type IssuesListCommentsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Either `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * Either `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListCommentsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListCommentsForRepoResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type IssuesGetCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type IssuesGetCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetCommentResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type IssuesUpdateCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The contents of the comment. + */ + body: string; +}; +declare type IssuesUpdateCommentRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/issues/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateCommentResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type IssuesDeleteCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type IssuesDeleteCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForIssueCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForIssueCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForIssueCommentResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForIssueCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForIssueCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForIssueCommentResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForIssueCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForIssueCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/comments/:comment_id/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListEventsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListEventsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListEventsForRepoResponseData = { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; + issue: { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + }; +}[]; +declare type IssuesGetEventEndpoint = { + owner: string; + repo: string; + event_id: number; +}; +declare type IssuesGetEventRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/events/:event_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetEventResponseData { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; + issue: { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + }; +} +declare type IssuesGetEndpoint = { + owner: string; + repo: string; + issue_number: number; +}; +declare type IssuesGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + closed_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type IssuesUpdateEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The title of the issue. + */ + title?: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. **This field is deprecated.** + */ + assignee?: string; + /** + * State of the issue. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + /** + * Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/issues/:issue_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + closed_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type IssuesAddAssigneesEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesAddAssigneesRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/assignees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesAddAssigneesResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; +} +declare type IssuesRemoveAssigneesEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesRemoveAssigneesRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/assignees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesRemoveAssigneesResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; +} +declare type IssuesListCommentsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListCommentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListCommentsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type IssuesCreateCommentEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The contents of the comment. + */ + body: string; +}; +declare type IssuesCreateCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateCommentResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type IssuesListEventsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListEventsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListEventsResponseData = { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; +}[]; +declare type IssuesListLabelsOnIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListLabelsOnIssueRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListLabelsOnIssueResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesAddLabelsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels: string[]; +}; +declare type IssuesAddLabelsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesAddLabelsResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesReplaceAllLabelsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels?: string[]; +}; +declare type IssuesReplaceAllLabelsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesReplaceAllLabelsResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesRemoveAllLabelsEndpoint = { + owner: string; + repo: string; + issue_number: number; +}; +declare type IssuesRemoveAllLabelsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesRemoveLabelEndpoint = { + owner: string; + repo: string; + issue_number: number; + name: string; +}; +declare type IssuesRemoveLabelRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesRemoveLabelResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesLockEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * \* `off-topic` + * \* `too heated` + * \* `resolved` + * \* `spam` + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; +}; +declare type IssuesLockRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/issues/:issue_number/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesUnlockEndpoint = { + owner: string; + repo: string; + issue_number: number; +}; +declare type IssuesUnlockRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForIssueRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForIssueResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForIssueRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForIssueResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForIssueRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListEventsForTimelineEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"mockingbird">; +declare type IssuesListEventsForTimelineRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/timeline"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListEventsForTimelineResponseData = { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; +}[]; +declare type ReposListDeployKeysEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDeployKeysRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDeployKeysResponseData = { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; +}[]; +declare type ReposAddDeployKeyEndpoint = { + owner: string; + repo: string; + /** + * A name for the key. + */ + title?: string; + /** + * The contents of the key. + */ + key: string; + /** + * If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; +}; +declare type ReposAddDeployKeyRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddDeployKeyResponseData { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; +} +declare type ReposGetDeployKeyEndpoint = { + owner: string; + repo: string; + key_id: number; +}; +declare type ReposGetDeployKeyRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDeployKeyResponseData { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; +} +declare type ReposRemoveDeployKeyEndpoint = { + owner: string; + repo: string; + key_id: number; +}; +declare type ReposRemoveDeployKeyRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListLabelsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListLabelsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListLabelsForRepoResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesCreateLabelEndpoint = { + owner: string; + repo: string; + /** + * The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + name: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color: string; + /** + * A short description of the label. + */ + description?: string; +}; +declare type IssuesCreateLabelRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateLabelResponseData { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +} +declare type IssuesGetLabelEndpoint = { + owner: string; + repo: string; + name: string; +}; +declare type IssuesGetLabelRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetLabelResponseData { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +} +declare type IssuesUpdateLabelEndpoint = { + owner: string; + repo: string; + name: string; + /** + * The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + new_name?: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color?: string; + /** + * A short description of the label. + */ + description?: string; +}; +declare type IssuesUpdateLabelRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateLabelResponseData { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +} +declare type IssuesDeleteLabelEndpoint = { + owner: string; + repo: string; + name: string; +}; +declare type IssuesDeleteLabelRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListLanguagesEndpoint = { + owner: string; + repo: string; +}; +declare type ReposListLanguagesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/languages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposListLanguagesResponseData { + C: number; + Python: number; +} +declare type LicensesGetForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type LicensesGetForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/license"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface LicensesGetForRepoResponseData { + name: string; + path: string; + sha: string; + size: number; + url: string; + html_url: string; + git_url: string; + download_url: string; + type: string; + content: string; + encoding: string; + _links: { + self: string; + git: string; + html: string; + }; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +} +declare type ReposMergeEndpoint = { + owner: string; + repo: string; + /** + * The name of the base branch that the head will be merged into. + */ + base: string; + /** + * The head to merge. This can be a branch name or a commit SHA1. + */ + head: string; + /** + * Commit message to use for the merge commit. If omitted, a default message will be used. + */ + commit_message?: string; +}; +declare type ReposMergeRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/merges"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposMergeResponseData { + sha: string; + node_id: string; + commit: { + author: { + name: string; + date: string; + email: string; + }; + committer: { + name: string; + date: string; + email: string; + }; + message: string; + tree: { + sha: string; + url: string; + }; + url: string; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + url: string; + html_url: string; + comments_url: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + sha: string; + url: string; + }[]; +} +export interface ReposMergeResponse404Data { + message: string; +} +export interface ReposMergeResponse409Data { + message: string; +} +declare type IssuesListMilestonesForRepoEndpoint = { + owner: string; + repo: string; + /** + * The state of the milestone. Either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * What to sort results by. Either `due_on` or `completeness`. + */ + sort?: "due_on" | "completeness"; + /** + * The direction of the sort. Either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListMilestonesForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/milestones"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListMilestonesForRepoResponseData = { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +}[]; +declare type IssuesCreateMilestoneEndpoint = { + owner: string; + repo: string; + /** + * The title of the milestone. + */ + title: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; +}; +declare type IssuesCreateMilestoneRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/milestones"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateMilestoneResponseData { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +} +declare type IssuesGetMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; +}; +declare type IssuesGetMilestoneRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/milestones/:milestone_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetMilestoneResponseData { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +} +declare type IssuesUpdateMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; + /** + * The title of the milestone. + */ + title?: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; +}; +declare type IssuesUpdateMilestoneRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/milestones/:milestone_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateMilestoneResponseData { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +} +declare type IssuesDeleteMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; +}; +declare type IssuesDeleteMilestoneRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/milestones/:milestone_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListLabelsForMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListLabelsForMilestoneRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/milestones/:milestone_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListLabelsForMilestoneResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type ActivityListRepoNotificationsForAuthenticatedUserEndpoint = { + owner: string; + repo: string; + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListRepoNotificationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListRepoNotificationsForAuthenticatedUserResponseData = { + id: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string; + url: string; +}[]; +declare type ActivityMarkRepoNotificationsAsReadEndpoint = { + owner: string; + repo: string; + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; +}; +declare type ActivityMarkRepoNotificationsAsReadRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetPagesEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetPagesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetPagesResponseData { + url: string; + status: string; + cname: string; + custom_404: boolean; + html_url: string; + source: { + branch: string; + directory: string; + }; +} +declare type ReposEnablePagesSiteEndpoint = { + owner: string; + repo: string; + source?: ReposEnablePagesSiteParamsSource; +} & RequiredPreview<"switcheroo">; +declare type ReposEnablePagesSiteRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposEnablePagesSiteResponseData { + url: string; + status: string; + cname: string; + custom_404: boolean; + html_url: string; + source: { + branch: string; + directory: string; + }; +} +declare type ReposDisablePagesSiteEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"switcheroo">; +declare type ReposDisablePagesSiteRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposUpdateInformationAboutPagesSiteEndpoint = { + owner: string; + repo: string; + /** + * Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/)." + */ + cname?: string; + /** + * Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `"gh-pages"`, `"master"`, and `"master /docs"`. + */ + source?: '"gh-pages"' | '"master"' | '"master /docs"'; +}; +declare type ReposUpdateInformationAboutPagesSiteRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposRequestPageBuildEndpoint = { + owner: string; + repo: string; +}; +declare type ReposRequestPageBuildRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pages/builds"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposRequestPageBuildResponseData { + url: string; + status: string; +} +declare type ReposListPagesBuildsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListPagesBuildsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages/builds"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListPagesBuildsResponseData = { + url: string; + status: string; + error: { + message: string; + }; + pusher: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + commit: string; + duration: number; + created_at: string; + updated_at: string; +}[]; +declare type ReposGetLatestPagesBuildEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetLatestPagesBuildRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages/builds/latest"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetLatestPagesBuildResponseData { + url: string; + status: string; + error: { + message: string; + }; + pusher: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + commit: string; + duration: number; + created_at: string; + updated_at: string; +} +declare type ReposGetPagesBuildEndpoint = { + owner: string; + repo: string; + build_id: number; +}; +declare type ReposGetPagesBuildRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages/builds/:build_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetPagesBuildResponseData { + url: string; + status: string; + error: { + message: string; + }; + pusher: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + commit: string; + duration: number; + created_at: string; + updated_at: string; +} +declare type ProjectsListForRepoEndpoint = { + owner: string; + repo: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListForRepoResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ProjectsCreateForRepoEndpoint = { + owner: string; + repo: string; + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateForRepoRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateForRepoResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type PullsListEndpoint = { + owner: string; + repo: string; + /** + * Either `open`, `closed`, or `all` to filter by state. + */ + state?: "open" | "closed" | "all"; + /** + * Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. + */ + head?: string; + /** + * Filter pulls by base branch name. Example: `gh-pages`. + */ + base?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month). + */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** + * The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListResponseData = { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; +}[]; +declare type PullsCreateEndpoint = { + owner: string; + repo: string; + /** + * The title of the new pull request. + */ + title: string; + /** + * The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. + */ + head: string; + /** + * The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + */ + base: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + /** + * Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. + */ + draft?: boolean; +}; +declare type PullsCreateRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; + merged: boolean; + mergeable: boolean; + rebaseable: boolean; + mergeable_state: string; + merged_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + comments: number; + review_comments: number; + maintainer_can_modify: boolean; + commits: number; + additions: number; + deletions: number; + changed_files: number; +} +declare type PullsListCommentsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListCommentsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListCommentsForRepoResponseData = { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +}[]; +declare type PullsGetCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type PullsGetCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsGetCommentResponseData { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +} +declare type PullsUpdateCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The text of the reply to the review comment. + */ + body: string; +}; +declare type PullsUpdateCommentRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateCommentResponseData { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +} +declare type PullsDeleteCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type PullsDeleteCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForPullRequestReviewCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a pull request review comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForPullRequestReviewCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForPullRequestReviewCommentResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForPullRequestReviewCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the pull request review comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForPullRequestReviewCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForPullRequestReviewCommentResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForPullRequestCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForPullRequestCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type PullsGetEndpoint = { + owner: string; + repo: string; + pull_number: number; +}; +declare type PullsGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsGetResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; + merged: boolean; + mergeable: boolean; + rebaseable: boolean; + mergeable_state: string; + merged_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + comments: number; + review_comments: number; + maintainer_can_modify: boolean; + commits: number; + additions: number; + deletions: number; + changed_files: number; +} +declare type PullsUpdateEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The title of the pull request. + */ + title?: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * State of this Pull Request. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. + */ + base?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; +}; +declare type PullsUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/pulls/:pull_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; + merged: boolean; + mergeable: boolean; + rebaseable: boolean; + mergeable_state: string; + merged_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + comments: number; + review_comments: number; + maintainer_can_modify: boolean; + commits: number; + additions: number; + deletions: number; + changed_files: number; +} +declare type PullsListCommentsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListCommentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListCommentsResponseData = { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +}[]; +declare type PullsCreateCommentEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; +}; +declare type PullsCreateCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateCommentResponseData { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +} +declare type PullsCreateReviewCommentReplyEndpoint = { + owner: string; + repo: string; + pull_number: number; + comment_id: number; + /** + * The text of the review comment. + */ + body: string; +}; +declare type PullsCreateReviewCommentReplyRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateReviewCommentReplyResponseData { + url: string; + pull_request_review_id: number; + id: number; + node_id: string; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsListCommitsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListCommitsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListCommitsResponseData = { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; +}[]; +declare type PullsListFilesEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListFilesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/files"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListFilesResponseData = { + sha: string; + filename: string; + status: string; + additions: number; + deletions: number; + changes: number; + blob_url: string; + raw_url: string; + contents_url: string; + patch: string; +}[]; +declare type PullsCheckIfMergedEndpoint = { + owner: string; + repo: string; + pull_number: number; +}; +declare type PullsCheckIfMergedRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/merge"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type PullsMergeEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Title for the automatic commit message. + */ + commit_title?: string; + /** + * Extra detail to append to automatic commit message. + */ + commit_message?: string; + /** + * SHA that pull request head must match to allow merge. + */ + sha?: string; + /** + * Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`. + */ + merge_method?: "merge" | "squash" | "rebase"; +}; +declare type PullsMergeRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/merge"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsMergeResponseData { + sha: string; + merged: boolean; + message: string; +} +export interface PullsMergeResponse405Data { + message: string; + documentation_url: string; +} +export interface PullsMergeResponse409Data { + message: string; + documentation_url: string; +} +declare type PullsListReviewRequestsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListReviewRequestsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsListReviewRequestsResponseData { + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; +} +declare type PullsCreateReviewRequestEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * An array of user `login`s that will be requested. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be requested. + */ + team_reviewers?: string[]; +}; +declare type PullsCreateReviewRequestRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateReviewRequestResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; +} +declare type PullsDeleteReviewRequestEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * An array of user `login`s that will be removed. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be removed. + */ + team_reviewers?: string[]; +}; +declare type PullsDeleteReviewRequestRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type PullsListReviewsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListReviewsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListReviewsResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + submitted_at: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +}[]; +declare type PullsCreateReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. + */ + commit_id?: string; + /** + * **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review) when you are ready. + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** + * Use the following table to specify the location, destination, and contents of the draft review comment. + */ + comments?: PullsCreateReviewParamsComments[]; +}; +declare type PullsCreateReviewRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsGetReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; +}; +declare type PullsGetReviewRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsGetReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + submitted_at: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsDeletePendingReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; +}; +declare type PullsDeletePendingReviewRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsDeletePendingReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsUpdateReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * The body text of the pull request review. + */ + body: string; +}; +declare type PullsUpdateReviewRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsGetCommentsForReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsGetCommentsForReviewRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsGetCommentsForReviewResponseData = { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +}[]; +declare type PullsDismissReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * The message for the pull request review dismissal + */ + message: string; +}; +declare type PullsDismissReviewRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/dismissals"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsDismissReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsSubmitReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * The body text of the pull request review + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; +}; +declare type PullsSubmitReviewRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsSubmitReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + submitted_at: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsUpdateBranchEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits on a repository](https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. + */ + expected_head_sha?: string; +} & RequiredPreview<"lydian">; +declare type PullsUpdateBranchRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/update-branch"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateBranchResponseData { + message: string; + url: string; +} +declare type ReposGetReadmeEndpoint = { + owner: string; + repo: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; +}; +declare type ReposGetReadmeRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/readme"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReadmeResponseData { + type: string; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + url: string; + git_url: string; + html_url: string; + download_url: string; + _links: { + git: string; + self: string; + html: string; + }; +} +declare type ReposListReleasesEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListReleasesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListReleasesResponseData = { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +}[]; +declare type ReposCreateReleaseEndpoint = { + owner: string; + repo: string; + /** + * The name of the tag. + */ + tag_name: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` to create a draft (unpublished) release, `false` to create a published one. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease. `false` to identify the release as a full release. + */ + prerelease?: boolean; +}; +declare type ReposCreateReleaseRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/releases"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: unknown[]; +} +declare type ReposGetReleaseAssetEndpoint = { + owner: string; + repo: string; + asset_id: number; +}; +declare type ReposGetReleaseAssetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/assets/:asset_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReleaseAssetResponseData { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ReposUpdateReleaseAssetEndpoint = { + owner: string; + repo: string; + asset_id: number; + /** + * The file name of the asset. + */ + name?: string; + /** + * An alternate short description of the asset. Used in place of the filename. + */ + label?: string; +}; +declare type ReposUpdateReleaseAssetRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/releases/assets/:asset_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateReleaseAssetResponseData { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ReposDeleteReleaseAssetEndpoint = { + owner: string; + repo: string; + asset_id: number; +}; +declare type ReposDeleteReleaseAssetRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/releases/assets/:asset_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetLatestReleaseEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetLatestReleaseRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/latest"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetLatestReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposGetReleaseByTagEndpoint = { + owner: string; + repo: string; + tag: string; +}; +declare type ReposGetReleaseByTagRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/tags/:tag"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReleaseByTagResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposGetReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; +}; +declare type ReposGetReleaseRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/:release_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposUpdateReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; + /** + * The name of the tag. + */ + tag_name?: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` makes the release a draft, and `false` publishes the release. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease, `false` to identify the release as a full release. + */ + prerelease?: boolean; +}; +declare type ReposUpdateReleaseRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/releases/:release_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposDeleteReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; +}; +declare type ReposDeleteReleaseRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/releases/:release_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListAssetsForReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListAssetsForReleaseRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/:release_id/assets"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListAssetsForReleaseResponseData = { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type ReposUploadReleaseAssetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * release_id parameter + */ + release_id: number; + /** + * name parameter + */ + name?: string; + /** + * label parameter + */ + label?: string; + /** + * The raw file data + */ + data: string; + /** + * The URL origin (protocol + host name + port) is included in `upload_url` returned in the response of the "Create a release" endpoint + */ + origin?: string; + /** + * For https://api.github.com, set `baseUrl` to `https://uploads.github.com`. For GitHub Enterprise Server, set it to `/api/uploads` + */ + baseUrl: string; +} & { + headers: { + "content-type": string; + }; +}; +declare type ReposUploadReleaseAssetRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/releases/:release_id/assets{?name,label}"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUploadReleaseAssetResponseData { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ActivityListStargazersForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListStargazersForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stargazers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListStargazersForRepoResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +export declare type ActivityListStargazersForRepoResponse200Data = { + starred_at: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type ReposGetCodeFrequencyStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetCodeFrequencyStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/code_frequency"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetCodeFrequencyStatsResponseData = number[][]; +declare type ReposGetCommitActivityStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetCommitActivityStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/commit_activity"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetCommitActivityStatsResponseData = { + days: number[]; + total: number; + week: number; +}[]; +declare type ReposGetContributorsStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetContributorsStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/contributors"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetContributorsStatsResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + total: number; + weeks: { + w: string; + a: number; + d: number; + c: number; + }[]; +}[]; +declare type ReposGetParticipationStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetParticipationStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/participation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetParticipationStatsResponseData { + all: number[]; + owner: number[]; +} +declare type ReposGetPunchCardStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetPunchCardStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/punch_card"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetPunchCardStatsResponseData = number[][]; +declare type ReposCreateStatusEndpoint = { + owner: string; + repo: string; + sha: string; + /** + * The state of the status. Can be one of `error`, `failure`, `pending`, or `success`. + */ + state: "error" | "failure" | "pending" | "success"; + /** + * The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string; + /** + * A short description of the status. + */ + description?: string; + /** + * A string label to differentiate this status from the status of other systems. + */ + context?: string; +}; +declare type ReposCreateStatusRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/statuses/:sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateStatusResponseData { + url: string; + avatar_url: string; + id: number; + node_id: string; + state: string; + description: string; + target_url: string; + context: string; + created_at: string; + updated_at: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ActivityListWatchersForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListWatchersForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/subscribers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListWatchersForRepoResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ActivityGetRepoSubscriptionEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityGetRepoSubscriptionRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetRepoSubscriptionResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + repository_url: string; +} +declare type ActivitySetRepoSubscriptionEndpoint = { + owner: string; + repo: string; + /** + * Determines if notifications should be received from this repository. + */ + subscribed?: boolean; + /** + * Determines if all notifications should be blocked from this repository. + */ + ignored?: boolean; +}; +declare type ActivitySetRepoSubscriptionRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivitySetRepoSubscriptionResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + repository_url: string; +} +declare type ActivityDeleteRepoSubscriptionEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityDeleteRepoSubscriptionRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListTagsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListTagsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/tags"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListTagsResponseData = { + name: string; + commit: { + sha: string; + url: string; + }; + zipball_url: string; + tarball_url: string; +}[]; +declare type ReposListTeamsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListTeamsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListTeamsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposGetAllTopicsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"mercy">; +declare type ReposGetAllTopicsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/topics"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetAllTopicsResponseData { + names: string[]; +} +declare type ReposReplaceAllTopicsEndpoint = { + owner: string; + repo: string; + /** + * An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. + */ + names: string[]; +} & RequiredPreview<"mercy">; +declare type ReposReplaceAllTopicsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/topics"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposReplaceAllTopicsResponseData { + names: string[]; +} +declare type ReposGetClonesEndpoint = { + owner: string; + repo: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; +}; +declare type ReposGetClonesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/clones"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetClonesResponseData { + count: number; + uniques: number; + clones: { + timestamp: string; + count: number; + uniques: number; + }[]; +} +declare type ReposGetTopPathsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetTopPathsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/popular/paths"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetTopPathsResponseData = { + path: string; + title: string; + count: number; + uniques: number; +}[]; +declare type ReposGetTopReferrersEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetTopReferrersRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/popular/referrers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetTopReferrersResponseData = { + referrer: string; + count: number; + uniques: number; +}[]; +declare type ReposGetViewsEndpoint = { + owner: string; + repo: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; +}; +declare type ReposGetViewsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/views"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetViewsResponseData { + count: number; + uniques: number; + views: { + timestamp: string; + count: number; + uniques: number; + }[]; +} +declare type ReposTransferEndpoint = { + owner: string; + repo: string; + /** + * **Required:** The username or organization name the repository will be transferred to. + */ + 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?: number[]; +}; +declare type ReposTransferRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/transfer"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposTransferResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type ReposCheckVulnerabilityAlertsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"dorian">; +declare type ReposCheckVulnerabilityAlertsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/vulnerability-alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposEnableVulnerabilityAlertsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"dorian">; +declare type ReposEnableVulnerabilityAlertsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/vulnerability-alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposDisableVulnerabilityAlertsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"dorian">; +declare type ReposDisableVulnerabilityAlertsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/vulnerability-alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetArchiveLinkEndpoint = { + owner: string; + repo: string; + archive_format: string; + ref: string; +}; +declare type ReposGetArchiveLinkRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/:archive_format/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposCreateUsingTemplateEndpoint = { + template_owner: string; + template_repo: string; + /** + * The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. + */ + owner?: string; + /** + * The name of the new repository. + */ + name: string; + /** + * A short description of the new repository. + */ + description?: string; + /** + * Either `true` to create a new private repository or `false` to create a new public one. + */ + private?: boolean; +} & RequiredPreview<"baptiste">; +declare type ReposCreateUsingTemplateRequestOptions = { + method: "POST"; + url: "/repos/:template_owner/:template_repo/generate"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateUsingTemplateResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type ReposListPublicEndpoint = { + /** + * The integer ID of the last repository that you've seen. + */ + since?: number; +}; +declare type ReposListPublicRequestOptions = { + method: "GET"; + url: "/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListPublicResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; +}[]; +declare type ScimListProvisionedIdentitiesEndpoint = { + org: string; + /** + * Used for pagination: the index of the first result to return. + */ + startIndex?: number; + /** + * Used for pagination: the number of results to return. + */ + count?: number; + /** + * Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query: `?filter=userName%20eq%20\"Octocat\"`. + */ + filter?: string; +}; +declare type ScimListProvisionedIdentitiesRequestOptions = { + method: "GET"; + url: "/scim/v2/organizations/:org/Users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimListProvisionedIdentitiesResponseData { + schemas: string[]; + totalResults: number; + itemsPerPage: number; + startIndex: number; + Resources: { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + primary: boolean; + type: string; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; + }[]; +} +declare type ScimProvisionAndInviteUsersEndpoint = { + org: string; +}; +declare type ScimProvisionAndInviteUsersRequestOptions = { + method: "POST"; + url: "/scim/v2/organizations/:org/Users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimProvisionAndInviteUsersResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimGetProvisioningDetailsForUserEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimGetProvisioningDetailsForUserRequestOptions = { + method: "GET"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimGetProvisioningDetailsForUserResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimReplaceProvisionedUserInformationEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimReplaceProvisionedUserInformationRequestOptions = { + method: "PUT"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimReplaceProvisionedUserInformationResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimUpdateUserAttributeEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimUpdateUserAttributeRequestOptions = { + method: "PATCH"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimUpdateUserAttributeResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimRemoveUserFromOrgEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimRemoveUserFromOrgRequestOptions = { + method: "DELETE"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type SearchCodeEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching code](https://help.github.com/articles/searching-code/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "indexed"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchCodeRequestOptions = { + method: "GET"; + url: "/search/code"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchCodeResponseData { + total_count: number; + incomplete_results: boolean; + items: { + name: string; + path: string; + sha: string; + url: string; + git_url: string; + html_url: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + }; + score: number; + }[]; +} +declare type SearchCommitsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching commits](https://help.github.com/articles/searching-commits/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "author-date" | "committer-date"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"cloak">; +declare type SearchCommitsRequestOptions = { + method: "GET"; + url: "/search/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchCommitsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + url: string; + sha: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; + score: number; + }[]; +} +declare type SearchIssuesAndPullRequestsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "comments" | "reactions" | "reactions-+1" | "reactions--1" | "reactions-smile" | "reactions-thinking_face" | "reactions-heart" | "reactions-tada" | "interactions" | "created" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchIssuesAndPullRequestsRequestOptions = { + method: "GET"; + url: "/search/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchIssuesAndPullRequestsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + id: number; + node_id: string; + number: number; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + color: string; + }[]; + state: string; + assignee: string; + milestone: string; + comments: number; + created_at: string; + updated_at: string; + closed_at: string; + pull_request: { + html_url: string; + diff_url: string; + patch_url: string; + }; + body: string; + score: number; + }[]; +} +declare type SearchLabelsEndpoint = { + /** + * The id of the repository. + */ + repository_id: number; + /** + * The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; + /** + * Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "created" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; +}; +declare type SearchLabelsRequestOptions = { + method: "GET"; + url: "/search/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchLabelsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + id: number; + node_id: string; + url: string; + name: string; + color: string; + default: boolean; + description: string; + score: number; + }[]; +} +declare type SearchReposEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchReposRequestOptions = { + method: "GET"; + url: "/search/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchReposResponseData { + total_count: number; + incomplete_results: boolean; + items: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + received_events_url: string; + type: string; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + created_at: string; + updated_at: string; + pushed_at: string; + homepage: string; + size: number; + stargazers_count: number; + watchers_count: number; + language: string; + forks_count: number; + open_issues_count: number; + master_branch: string; + default_branch: string; + score: number; + }[]; +} +declare type SearchTopicsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; +}; +declare type SearchTopicsRequestOptions = { + method: "GET"; + url: "/search/topics"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchTopicsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + name: string; + display_name: string; + short_description: string; + description: string; + created_by: string; + released: string; + created_at: string; + updated_at: string; + featured: boolean; + curated: boolean; + score: number; + }[]; +} +declare type SearchUsersEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching users](https://help.github.com/articles/searching-users/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "followers" | "repositories" | "joined"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchUsersRequestOptions = { + method: "GET"; + url: "/search/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchUsersResponseData { + total_count: number; + incomplete_results: boolean; + items: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + received_events_url: string; + type: string; + score: number; + }[]; +} +declare type TeamsGetLegacyEndpoint = { + team_id: number; +}; +declare type TeamsGetLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetLegacyResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsUpdateLegacyEndpoint = { + team_id: number; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; +}; +declare type TeamsUpdateLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateLegacyResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsDeleteLegacyEndpoint = { + team_id: number; +}; +declare type TeamsDeleteLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionsLegacyEndpoint = { + team_id: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionsLegacyResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionLegacyEndpoint = { + team_id: number; + /** + * The discussion post's title. + */ + title: string; + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; +}; +declare type TeamsCreateDiscussionLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; +}; +declare type TeamsGetDiscussionLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * The discussion post's title. + */ + title?: string; + /** + * The discussion post's body text. + */ + body?: string; +}; +declare type TeamsUpdateDiscussionLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; +}; +declare type TeamsDeleteDiscussionLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionCommentsLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionCommentsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionCommentsLegacyResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsCreateDiscussionCommentLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionCommentLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; +}; +declare type TeamsGetDiscussionCommentLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionCommentLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsUpdateDiscussionCommentLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionCommentLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; +}; +declare type TeamsDeleteDiscussionCommentLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForTeamDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionCommentLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionCommentLegacyResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionCommentLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionCommentLegacyResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsListForTeamDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionLegacyResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionLegacyResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type TeamsListPendingInvitationsLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListPendingInvitationsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListPendingInvitationsLegacyResponseData = { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +}[]; +declare type TeamsListMembersLegacyEndpoint = { + team_id: number; + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListMembersLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListMembersLegacyResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type TeamsGetMemberLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsGetMemberLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsAddMemberLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsAddMemberLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddMemberLegacyResponseData { + message: string; + errors: { + code: string; + field: string; + resource: string; + }[]; +} +declare type TeamsRemoveMemberLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsRemoveMemberLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsGetMembershipLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsGetMembershipLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetMembershipLegacyResponseData { + url: string; + role: string; + state: string; +} +declare type TeamsAddOrUpdateMembershipLegacyEndpoint = { + team_id: number; + username: string; + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; +}; +declare type TeamsAddOrUpdateMembershipLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateMembershipLegacyResponseData { + url: string; + role: string; + state: string; +} +export interface TeamsAddOrUpdateMembershipLegacyResponse422Data { + message: string; + errors: { + code: string; + field: string; + resource: string; + }[]; +} +declare type TeamsRemoveMembershipLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsRemoveMembershipLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListProjectsLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type TeamsListProjectsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListProjectsLegacyResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +}[]; +declare type TeamsReviewProjectLegacyEndpoint = { + team_id: number; + project_id: number; +} & RequiredPreview<"inertia">; +declare type TeamsReviewProjectLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsReviewProjectLegacyResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateProjectLegacyEndpoint = { + team_id: number; + project_id: number; + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + permission?: "read" | "write" | "admin"; +} & RequiredPreview<"inertia">; +declare type TeamsAddOrUpdateProjectLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateProjectLegacyResponseData { + message: string; + documentation_url: string; +} +declare type TeamsRemoveProjectLegacyEndpoint = { + team_id: number; + project_id: number; +}; +declare type TeamsRemoveProjectLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListReposLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListReposLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListReposLegacyResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type TeamsCheckManagesRepoLegacyEndpoint = { + team_id: number; + owner: string; + repo: string; +}; +declare type TeamsCheckManagesRepoLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCheckManagesRepoLegacyResponseData { + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateRepoLegacyEndpoint = { + team_id: number; + owner: string; + repo: string; + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + */ + permission?: "pull" | "push" | "admin"; +}; +declare type TeamsAddOrUpdateRepoLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsRemoveRepoLegacyEndpoint = { + team_id: number; + owner: string; + repo: string; +}; +declare type TeamsRemoveRepoLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListIdPGroupsForLegacyEndpoint = { + team_id: number; +}; +declare type TeamsListIdPGroupsForLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsListIdPGroupsForLegacyResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsCreateOrUpdateIdPGroupConnectionsLegacyEndpoint = { + team_id: number; + /** + * The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. + */ + groups: TeamsCreateOrUpdateIdPGroupConnectionsLegacyParamsGroups[]; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateOrUpdateIdPGroupConnectionsLegacyResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsListChildLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListChildLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListChildLegacyResponseData = { + id: number; + node_id: string; + url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + }; +}[]; +declare type UsersGetAuthenticatedEndpoint = {}; +declare type UsersGetAuthenticatedRequestOptions = { + method: "GET"; + url: "/user"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetAuthenticatedResponseData { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string; + company: string; + blog: string; + location: string; + email: string; + hireable: boolean; + bio: string; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; + private_gists: number; + total_private_repos: number; + owned_private_repos: number; + disk_usage: number; + collaborators: number; + two_factor_authentication: boolean; + plan: { + name: string; + space: number; + private_repos: number; + collaborators: number; + }; +} +declare type UsersUpdateAuthenticatedEndpoint = { + /** + * The new name of the user. + */ + name?: string; + /** + * The publicly visible email address of the user. + */ + email?: string; + /** + * The new blog URL of the user. + */ + blog?: string; + /** + * The new company of the user. + */ + company?: string; + /** + * The new location of the user. + */ + location?: string; + /** + * The new hiring availability of the user. + */ + hireable?: boolean; + /** + * The new short biography of the user. + */ + bio?: string; +}; +declare type UsersUpdateAuthenticatedRequestOptions = { + method: "PATCH"; + url: "/user"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersUpdateAuthenticatedResponseData { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string; + company: string; + blog: string; + location: string; + email: string; + hireable: boolean; + bio: string; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; + private_gists: number; + total_private_repos: number; + owned_private_repos: number; + disk_usage: number; + collaborators: number; + two_factor_authentication: boolean; + plan: { + name: string; + space: number; + private_repos: number; + collaborators: number; + }; +} +declare type UsersListBlockedEndpoint = {}; +declare type UsersListBlockedRequestOptions = { + method: "GET"; + url: "/user/blocks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListBlockedResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersCheckBlockedEndpoint = { + username: string; +}; +declare type UsersCheckBlockedRequestOptions = { + method: "GET"; + url: "/user/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersBlockEndpoint = { + username: string; +}; +declare type UsersBlockRequestOptions = { + method: "PUT"; + url: "/user/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersUnblockEndpoint = { + username: string; +}; +declare type UsersUnblockRequestOptions = { + method: "DELETE"; + url: "/user/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersTogglePrimaryEmailVisibilityEndpoint = { + /** + * Specify the _primary_ email address that needs a visibility change. + */ + email: string; + /** + * Use `public` to enable an authenticated user to view the specified email address, or use `private` so this primary email address cannot be seen publicly. + */ + visibility: string; +}; +declare type UsersTogglePrimaryEmailVisibilityRequestOptions = { + method: "PATCH"; + url: "/user/email/visibility"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersTogglePrimaryEmailVisibilityResponseData = { + email: string; + primary: boolean; + verified: boolean; + visibility: string; +}[]; +declare type UsersListEmailsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListEmailsRequestOptions = { + method: "GET"; + url: "/user/emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListEmailsResponseData = { + email: string; + verified: boolean; + primary: boolean; + visibility: string; +}[]; +declare type UsersAddEmailsEndpoint = { + /** + * Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; +}; +declare type UsersAddEmailsRequestOptions = { + method: "POST"; + url: "/user/emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersAddEmailsResponseData = { + email: string; + primary: boolean; + verified: boolean; + visibility: string; +}[]; +declare type UsersDeleteEmailsEndpoint = { + /** + * Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; +}; +declare type UsersDeleteEmailsRequestOptions = { + method: "DELETE"; + url: "/user/emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersListFollowersForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowersForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/followers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowersForAuthenticatedUserResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersListFollowedByAuthenticatedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowedByAuthenticatedRequestOptions = { + method: "GET"; + url: "/user/following"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowedByAuthenticatedResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersCheckFollowingEndpoint = { + username: string; +}; +declare type UsersCheckFollowingRequestOptions = { + method: "GET"; + url: "/user/following/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersFollowEndpoint = { + username: string; +}; +declare type UsersFollowRequestOptions = { + method: "PUT"; + url: "/user/following/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersUnfollowEndpoint = { + username: string; +}; +declare type UsersUnfollowRequestOptions = { + method: "DELETE"; + url: "/user/following/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersListGpgKeysEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListGpgKeysRequestOptions = { + method: "GET"; + url: "/user/gpg_keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListGpgKeysResponseData = { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +}[]; +declare type UsersCreateGpgKeyEndpoint = { + /** + * Your GPG key, generated in ASCII-armored format. See "[Generating a new GPG key](https://help.github.com/articles/generating-a-new-gpg-key/)" for help creating a GPG key. + */ + armored_public_key?: string; +}; +declare type UsersCreateGpgKeyRequestOptions = { + method: "POST"; + url: "/user/gpg_keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersCreateGpgKeyResponseData { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +} +declare type UsersGetGpgKeyEndpoint = { + gpg_key_id: number; +}; +declare type UsersGetGpgKeyRequestOptions = { + method: "GET"; + url: "/user/gpg_keys/:gpg_key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetGpgKeyResponseData { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +} +declare type UsersDeleteGpgKeyEndpoint = { + gpg_key_id: number; +}; +declare type UsersDeleteGpgKeyRequestOptions = { + method: "DELETE"; + url: "/user/gpg_keys/:gpg_key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsListInstallationsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListInstallationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/installations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsListInstallationsForAuthenticatedUserResponseData { + total_count: number; + installations: { + id: number; + account: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + gravatar_id: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + single_file_name: string; + }[]; +} +declare type AppsListInstallationReposForAuthenticatedUserEndpoint = { + installation_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListInstallationReposForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/installations/:installation_id/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsListInstallationReposForAuthenticatedUserResponseData { + total_count: number; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; +} +declare type AppsAddRepoToInstallationEndpoint = { + installation_id: number; + repository_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsAddRepoToInstallationRequestOptions = { + method: "PUT"; + url: "/user/installations/:installation_id/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsRemoveRepoFromInstallationEndpoint = { + installation_id: number; + repository_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsRemoveRepoFromInstallationRequestOptions = { + method: "DELETE"; + url: "/user/installations/:installation_id/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListForAuthenticatedUserEndpoint = { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListForAuthenticatedUserResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type UsersListPublicKeysEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListPublicKeysRequestOptions = { + method: "GET"; + url: "/user/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListPublicKeysResponseData = { + key_id: string; + key: string; +}[]; +declare type UsersCreatePublicKeyEndpoint = { + /** + * A descriptive name for the new key. Use a name that will help you recognize this key in your GitHub account. For example, if you're using a personal Mac, you might call this key "Personal MacBook Air". + */ + title?: string; + /** + * The public SSH key to add to your GitHub account. See "[Generating a new SSH key](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/)" for guidance on how to create a public SSH key. + */ + key?: string; +}; +declare type UsersCreatePublicKeyRequestOptions = { + method: "POST"; + url: "/user/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersCreatePublicKeyResponseData { + key_id: string; + key: string; +} +declare type UsersGetPublicKeyEndpoint = { + key_id: number; +}; +declare type UsersGetPublicKeyRequestOptions = { + method: "GET"; + url: "/user/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetPublicKeyResponseData { + key_id: string; + key: string; +} +declare type UsersDeletePublicKeyEndpoint = { + key_id: number; +}; +declare type UsersDeletePublicKeyRequestOptions = { + method: "DELETE"; + url: "/user/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsListSubscriptionsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListSubscriptionsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/marketplace_purchases"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListSubscriptionsForAuthenticatedUserResponseData = { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + account: { + login: string; + id: number; + url: string; + email: string; + organization_billing_email: string; + type: string; + }; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; +}[]; +declare type AppsListSubscriptionsForAuthenticatedUserStubbedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListSubscriptionsForAuthenticatedUserStubbedRequestOptions = { + method: "GET"; + url: "/user/marketplace_purchases/stubbed"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListSubscriptionsForAuthenticatedUserStubbedResponseData = { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + account: { + login: string; + id: number; + url: string; + email: string; + organization_billing_email: string; + type: string; + }; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; +}[]; +declare type OrgsListMembershipsEndpoint = { + /** + * Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships. + */ + state?: "active" | "pending"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListMembershipsRequestOptions = { + method: "GET"; + url: "/user/memberships/orgs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListMembershipsResponseData = { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type OrgsGetMembershipForAuthenticatedUserEndpoint = { + org: string; +}; +declare type OrgsGetMembershipForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/memberships/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetMembershipForAuthenticatedUserResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type OrgsUpdateMembershipEndpoint = { + org: string; + /** + * The state that the membership should be in. Only `"active"` will be accepted. + */ + state: "active"; +}; +declare type OrgsUpdateMembershipRequestOptions = { + method: "PATCH"; + url: "/user/memberships/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsUpdateMembershipResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type MigrationsStartForAuthenticatedUserEndpoint = { + /** + * An array of repositories to include in the migration. + */ + repositories: string[]; + /** + * Locks the `repositories` to prevent changes during the migration when set to `true`. + */ + lock_repositories?: boolean; + /** + * Does not include attachments uploaded to GitHub.com in the migration data when set to `true`. Excluding attachments will reduce the migration archive file size. + */ + exclude_attachments?: boolean; +}; +declare type MigrationsStartForAuthenticatedUserRequestOptions = { + method: "POST"; + url: "/user/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsStartForAuthenticatedUserResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListForAuthenticatedUserResponseData = { + id: number; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +}[]; +declare type MigrationsGetStatusForAuthenticatedUserEndpoint = { + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsGetStatusForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/migrations/:migration_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsGetStatusForAuthenticatedUserResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsGetArchiveForAuthenticatedUserEndpoint = { + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsGetArchiveForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsDeleteArchiveForAuthenticatedUserEndpoint = { + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsDeleteArchiveForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: "/user/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsUnlockRepoForAuthenticatedUserEndpoint = { + migration_id: number; + repo_name: string; +} & RequiredPreview<"wyandotte">; +declare type MigrationsUnlockRepoForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: "/user/migrations/:migration_id/repos/:repo_name/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/orgs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListForAuthenticatedUserResponseData = { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; +}[]; +declare type ProjectsCreateForAuthenticatedUserEndpoint = { + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateForAuthenticatedUserRequestOptions = { + method: "POST"; + url: "/user/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateForAuthenticatedUserResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type UsersListPublicEmailsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListPublicEmailsRequestOptions = { + method: "GET"; + url: "/user/public_emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListPublicEmailsResponseData = { + email: string; + verified: boolean; + primary: boolean; + visibility: string; +}[]; +declare type ReposListForAuthenticatedUserEndpoint = { + /** + * Can be one of `all`, `public`, or `private`. + */ + visibility?: "all" | "public" | "private"; + /** + * Comma-separated list of values. Can include: + * \* `owner`: Repositories that are owned by the authenticated user. + * \* `collaborator`: Repositories that the user has been added to as a collaborator. + * \* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** + * Can be one of `all`, `owner`, `public`, `private`, `member`. Default: `all` + * + * Will cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. + */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposCreateForAuthenticatedUserEndpoint = { + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to create a private repository or `false` to create a public one. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. For more information, see "[Creating an internal repository](https://help.github.com/github/creating-cloning-and-archiving-repositories/creating-an-internal-repository)" in the GitHub Help documentation. + * The `visibility` parameter overrides the `private` parameter when you use both parameters with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; +}; +declare type ReposCreateForAuthenticatedUserRequestOptions = { + method: "POST"; + url: "/user/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateForAuthenticatedUserResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type ReposListInvitationsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListInvitationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/repository_invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListInvitationsForAuthenticatedUserResponseData = { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +}[]; +declare type ReposAcceptInvitationEndpoint = { + invitation_id: number; +}; +declare type ReposAcceptInvitationRequestOptions = { + method: "PATCH"; + url: "/user/repository_invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposDeclineInvitationEndpoint = { + invitation_id: number; +}; +declare type ReposDeclineInvitationRequestOptions = { + method: "DELETE"; + url: "/user/repository_invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListReposStarredByAuthenticatedUserEndpoint = { + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReposStarredByAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/starred"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListReposStarredByAuthenticatedUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +}[]; +export declare type ActivityListReposStarredByAuthenticatedUserResponse200Data = { + starred_at: string; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type ActivityCheckRepoIsStarredByAuthenticatedUserEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityCheckRepoIsStarredByAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/starred/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityStarRepoForAuthenticatedUserEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityStarRepoForAuthenticatedUserRequestOptions = { + method: "PUT"; + url: "/user/starred/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityUnstarRepoForAuthenticatedUserEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityUnstarRepoForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: "/user/starred/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListWatchedReposForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListWatchedReposForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/subscriptions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListWatchedReposForAuthenticatedUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type TeamsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListForAuthenticatedUserResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +}[]; +declare type MigrationsListReposForUserEndpoint = { + migration_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListReposForUserRequestOptions = { + method: "GET"; + url: "/user/:migration_id/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListReposForUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type UsersListEndpoint = { + /** + * The integer ID of the last User that you've seen. + */ + since?: string; +}; +declare type UsersListRequestOptions = { + method: "GET"; + url: "/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersGetByUsernameEndpoint = { + username: string; +}; +declare type UsersGetByUsernameRequestOptions = { + method: "GET"; + url: "/users/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetByUsernameResponseData { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string; + company: string; + blog: string; + location: string; + email: string; + hireable: boolean; + bio: string; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; +} +declare type ActivityListEventsForAuthenticatedUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListEventsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/users/:username/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListOrgEventsForAuthenticatedUserEndpoint = { + username: string; + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListOrgEventsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/users/:username/events/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListPublicEventsForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicEventsForUserRequestOptions = { + method: "GET"; + url: "/users/:username/events/public"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersListFollowersForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowersForUserRequestOptions = { + method: "GET"; + url: "/users/:username/followers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowersForUserResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersListFollowingForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowingForUserRequestOptions = { + method: "GET"; + url: "/users/:username/following"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowingForUserResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersCheckFollowingForUserEndpoint = { + username: string; + target_user: string; +}; +declare type UsersCheckFollowingForUserRequestOptions = { + method: "GET"; + url: "/users/:username/following/:target_user"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsListForUserEndpoint = { + username: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/gists"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListForUserResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type UsersListGpgKeysForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListGpgKeysForUserRequestOptions = { + method: "GET"; + url: "/users/:username/gpg_keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListGpgKeysForUserResponseData = { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +}[]; +declare type UsersGetContextForUserEndpoint = { + username: string; + /** + * Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. + */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** + * Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. + */ + subject_id?: string; +}; +declare type UsersGetContextForUserRequestOptions = { + method: "GET"; + url: "/users/:username/hovercard"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetContextForUserResponseData { + contexts: { + message: string; + octicon: string; + }[]; +} +declare type AppsGetUserInstallationEndpoint = { + username: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetUserInstallationRequestOptions = { + method: "GET"; + url: "/users/:username/installation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetUserInstallationResponseData { + id: number; + account: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + checks: string; + metadata: string; + contents: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; +} +declare type UsersListPublicKeysForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListPublicKeysForUserRequestOptions = { + method: "GET"; + url: "/users/:username/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListPublicKeysForUserResponseData = { + id: number; + key: string; +}[]; +declare type OrgsListForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/orgs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListForUserResponseData = { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; +}[]; +declare type ProjectsListForUserEndpoint = { + username: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListForUserResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ActivityListReceivedEventsForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReceivedEventsForUserRequestOptions = { + method: "GET"; + url: "/users/:username/received_events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListReceivedPublicEventsForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReceivedPublicEventsForUserRequestOptions = { + method: "GET"; + url: "/users/:username/received_events/public"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListForUserEndpoint = { + username: string; + /** + * Can be one of `all`, `owner`, `member`. + */ + type?: "all" | "owner" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListReposStarredByUserEndpoint = { + username: string; + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReposStarredByUserRequestOptions = { + method: "GET"; + url: "/users/:username/starred"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListReposStarredByUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +}[]; +export declare type ActivityListReposStarredByUserResponse200Data = { + starred_at: string; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type ActivityListReposWatchedByUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReposWatchedByUserRequestOptions = { + method: "GET"; + url: "/users/:username/subscriptions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListReposWatchedByUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type AppsCreateInstallationTokenParamsPermissions = {}; +declare type GistsCreateParamsFiles = { + [key: string]: GistsCreateParamsFilesKeyString; +}; +declare type GistsCreateParamsFilesKeyString = { + content: string; +}; +declare type GistsUpdateParamsFiles = { + [key: string]: GistsUpdateParamsFilesKeyString; +}; +declare type GistsUpdateParamsFilesKeyString = { + content: string; + filename: string; +}; +declare type OrgsCreateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type OrgsUpdateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsInOrgParamsGroups = { + group_id: string; + group_name: string; + group_description: string; +}; +declare type ReposUpdateBranchProtectionParamsRequiredStatusChecks = { + strict: boolean; + contexts: string[]; +}; +declare type ReposUpdateBranchProtectionParamsRequiredPullRequestReviews = { + dismissal_restrictions?: ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; +}; +declare type ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions = { + users?: string[]; + teams?: string[]; +}; +declare type ReposUpdateBranchProtectionParamsRestrictions = { + users: string[]; + teams: string[]; + apps?: string[]; +}; +declare type ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions = { + users?: string[]; + teams?: string[]; +}; +declare type ChecksCreateParamsOutput = { + title: string; + summary: string; + text?: string; + annotations?: ChecksCreateParamsOutputAnnotations[]; + images?: ChecksCreateParamsOutputImages[]; +}; +declare type ChecksCreateParamsOutputAnnotations = { + path: string; + start_line: number; + end_line: number; + start_column?: number; + end_column?: number; + annotation_level: "notice" | "warning" | "failure"; + message: string; + title?: string; + raw_details?: string; +}; +declare type ChecksCreateParamsOutputImages = { + alt: string; + image_url: string; + caption?: string; +}; +declare type ChecksCreateParamsActions = { + label: string; + description: string; + identifier: string; +}; +declare type ChecksUpdateParamsOutput = { + title?: string; + summary: string; + text?: string; + annotations?: ChecksUpdateParamsOutputAnnotations[]; + images?: ChecksUpdateParamsOutputImages[]; +}; +declare type ChecksUpdateParamsOutputAnnotations = { + path: string; + start_line: number; + end_line: number; + start_column?: number; + end_column?: number; + annotation_level: "notice" | "warning" | "failure"; + message: string; + title?: string; + raw_details?: string; +}; +declare type ChecksUpdateParamsOutputImages = { + alt: string; + image_url: string; + caption?: string; +}; +declare type ChecksUpdateParamsActions = { + label: string; + description: string; + identifier: string; +}; +declare type ChecksSetSuitesPreferencesParamsAutoTriggerChecks = { + app_id: number; + setting: boolean; +}; +declare type ReposCreateOrUpdateFileParamsCommitter = { + name: string; + email: string; +}; +declare type ReposCreateOrUpdateFileParamsAuthor = { + name: string; + email: string; +}; +declare type ReposDeleteFileParamsCommitter = { + name?: string; + email?: string; +}; +declare type ReposDeleteFileParamsAuthor = { + name?: string; + email?: string; +}; +declare type ReposCreateDispatchEventParamsClientPayload = {}; +declare type GitCreateCommitParamsAuthor = { + name?: string; + email?: string; + date?: string; +}; +declare type GitCreateCommitParamsCommitter = { + name?: string; + email?: string; + date?: string; +}; +declare type GitCreateTagParamsTagger = { + name?: string; + email?: string; + date?: string; +}; +declare type GitCreateTreeParamsTree = { + path?: string; + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + type?: "blob" | "tree" | "commit"; + sha?: string | null; + content?: string; +}; +declare type ReposCreateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type ReposUpdateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type ReposEnablePagesSiteParamsSource = { + branch?: "master" | "gh-pages"; + path?: string; +}; +declare type PullsCreateReviewParamsComments = { + path: string; + position: number; + body: string; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsLegacyParamsGroups = { + group_id: string; + group_name: string; + group_description: string; +}; +export {}; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/index.d.ts b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/index.d.ts new file mode 100644 index 0000000..5d2d5ae --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-types/index.d.ts @@ -0,0 +1,20 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js new file mode 100644 index 0000000..88fd0d5 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js @@ -0,0 +1,4 @@ +const VERSION = "4.0.1"; + +export { VERSION }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js.map b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js.map new file mode 100644 index 0000000..cd0e254 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/package.json b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/package.json new file mode 100644 index 0000000..efc0ef4 --- /dev/null +++ b/node_modules/@octokit/plugin-retry/node_modules/@octokit/types/package.json @@ -0,0 +1,49 @@ +{ + "name": "@octokit/types", + "description": "Shared TypeScript definitions for Octokit projects", + "version": "4.0.1", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "repository": "https://github.com/octokit/types.ts", + "dependencies": { + "@types/node": ">= 8" + }, + "devDependencies": { + "@octokit/graphql": "^4.2.2", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "handlebars": "^4.7.6", + "json-schema-to-typescript": "^9.1.0", + "lodash.set": "^4.3.2", + "npm-run-all": "^4.1.5", + "pascal-case": "^3.1.1", + "prettier": "^2.0.0", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^4.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.17.0", + "typescript": "^3.6.4" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/plugin-retry/package.json b/node_modules/@octokit/plugin-retry/package.json new file mode 100644 index 0000000..88eadfb --- /dev/null +++ b/node_modules/@octokit/plugin-retry/package.json @@ -0,0 +1,49 @@ +{ + "name": "@octokit/plugin-retry", + "description": "Automatic retry plugin for octokit", + "version": "3.0.2", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "homepage": "https://github.com/octokit/plugin-retry.js#readme", + "bugs": { + "url": "https://github.com/octokit/plugin-retry.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/octokit/plugin-retry.js.git" + }, + "dependencies": { + "@octokit/types": "^4.0.1", + "bottleneck": "^2.15.3" + }, + "devDependencies": { + "@octokit/core": "^2.0.0", + "@octokit/request-error": "^2.0.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^25.1.0", + "@types/node": "^14.0.0", + "fetch-mock": "^9.0.0", + "jest": "^24.9.0", + "prettier": "^2.0.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^25.1.0", + "typescript": "^3.7.2" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/plugin-throttling/LICENSE b/node_modules/@octokit/plugin-throttling/LICENSE new file mode 100644 index 0000000..af5366d --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/plugin-throttling/README.md b/node_modules/@octokit/plugin-throttling/README.md new file mode 100644 index 0000000..84a02cd --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/README.md @@ -0,0 +1,149 @@ +# plugin-throttling.js + +> Octokit plugin for GitHub’s recommended request throttling + +[![@latest](https://img.shields.io/npm/v/@octokit/plugin-throttling.svg)](https://www.npmjs.com/package/@octokit/plugin-throttling) +[![Build Status](https://github.com/octokit/plugin-throttling.js/workflows/Test/badge.svg)](https://github.com/octokit/plugin-throttling.js/actions?workflow=Test) + +Implements all [recommended best practises](https://developer.github.com/v3/guides/best-practices-for-integrators/) to prevent hitting abuse rate limits. + +## Usage + + + + + + +
+Browsers + + +Load `@octokit/plugin-throttling` and [`@octokit/core`](https://github.com/octokit/core.js) (or core-compatible module) directly from [cdn.pika.dev](https://cdn.pika.dev) + +```html + +``` + +
+Node + + +Install with `npm install @octokit/core @octokit/plugin-throttling`. Optionally replace `@octokit/core` with a core-compatible module. + +**Note**: If you use it with `@octokit/rest` v16, install `@octokit/core` as a devDependency. This is only temporary and will no longer be necessary with `@octokit/rest` v17. + +```js +const { Octokit } = require("@octokit/core"); +const { throttling } = require("@octokit/plugin-throttling"); +``` + +
+ +The code below creates a "Hello, world!" issue on every repository in a given organization. Without the throttling plugin it would send many requests in parallel and would hit rate limits very quickly. But the `@octokit/plugin-throttling` slows down your requests according to the official guidelines, so you don't get blocked before your quota is exhausted. + +The `throttle.onAbuseLimit` and `throttle.onRateLimit` options are required. Return `true` to automatically retry the request after `retryAfter` seconds. + +```js +const MyOctokit = Octokit.plugin(throttling); + +const octokit = new MyOctokit({ + auth: `secret123`, + throttle: { + onRateLimit: (retryAfter, options) => { + console.warn(`Request quota exhausted for request ${options.method} ${options.url}`) + + if (options.request.retryCount === 0) { // only retries once + console.log(`Retrying after ${retryAfter} seconds!`) + return true + } + }, + onAbuseLimit: (retryAfter, options) => { + // does not retry, only logs a warning + console.warn(`Abuse detected for request ${options.method} ${options.url}`) + } + } +}) + +async function createIssueOnAllRepos (org) { + const repos = await octokit.paginate(octokit.repos.listForOrg.endpoint({ org })) + return Promise.all(repos.forEach(({ name } => { + octokit.issues.create({ + owner, + repo: name, + title: 'Hello, world!' + }) + }))) +} +``` + +Pass `{ throttle: { enabled: false } }` to disable this plugin. + +### Clustering + +Enabling Clustering support ensures that your application will not go over rate limits **across Octokit instances and across Nodejs processes**. + +First install either `redis` or `ioredis`: + +``` +# NodeRedis (https://github.com/NodeRedis/node_redis) +npm install --save redis + +# or ioredis (https://github.com/luin/ioredis) +npm install --save ioredis +``` + +Then in your application: + +```js +const Bottleneck = require("bottleneck"); +const Redis = require("redis"); + +const client = Redis.createClient({ + /* options */ +}); +const connection = new Bottleneck.RedisConnection({ client }); +connection.on("error", err => console.error(err)); + +const octokit = new MyOctokit({ + auth: 'secret123' + throttle: { + onAbuseLimit: (retryAfter, options) => { + /* ... */ + }, + onRateLimit: (retryAfter, options) => { + /* ... */ + }, + + // The Bottleneck connection object + connection, + + // A "throttling ID". All octokit instances with the same ID + // using the same Redis server will share the throttling. + id: "my-super-app", + + // Otherwise the plugin uses a lighter version of Bottleneck without Redis support + Bottleneck + } +}); + +// To close the connection and allow your application to exit cleanly: +await connection.disconnect(); +``` + +To use the `ioredis` library instead: + +```js +const Redis = require("ioredis"); +const client = new Redis({ + /* options */ +}); +const connection = new Bottleneck.IORedisConnection({ client }); +connection.on("error", (err) => console.error(err)); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-throttling/dist-node/index.js b/node_modules/@octokit/plugin-throttling/dist-node/index.js new file mode 100644 index 0000000..887f6c0 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-node/index.js @@ -0,0 +1,289 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var BottleneckLight = _interopDefault(require('bottleneck/light')); + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +const VERSION = "3.2.1"; + +const noop = () => Promise.resolve(); // @ts-ignore + + +function wrapRequest(state, request, options) { + return state.retryLimiter.schedule(doRequest, state, request, options); +} // @ts-ignore + +async function doRequest(state, request, options) { + const isWrite = options.method !== "GET" && options.method !== "HEAD"; + const isSearch = options.method === "GET" && options.url.startsWith("/search/"); + const isGraphQL = options.url.startsWith("/graphql"); + const retryCount = ~~options.request.retryCount; + const jobOptions = retryCount > 0 ? { + priority: 0, + weight: 0 + } : {}; + + if (state.clustering) { + // Remove a job from Redis if it has not completed or failed within 60s + // Examples: Node process terminated, client disconnected, etc. + // @ts-ignore + jobOptions.expiration = 1000 * 60; + } // Guarantee at least 1000ms between writes + // GraphQL can also trigger writes + + + if (isWrite || isGraphQL) { + await state.write.key(state.id).schedule(jobOptions, noop); + } // Guarantee at least 3000ms between requests that trigger notifications + + + if (isWrite && state.triggersNotification(options.url)) { + await state.notifications.key(state.id).schedule(jobOptions, noop); + } // Guarantee at least 2000ms between search requests + + + if (isSearch) { + await state.search.key(state.id).schedule(jobOptions, noop); + } + + const req = state.global.key(state.id).schedule(jobOptions, request, options); + + if (isGraphQL) { + const res = await req; + + if (res.data.errors != null && // @ts-ignore + res.data.errors.some(error => error.type === "RATE_LIMITED")) { + const error = Object.assign(new Error("GraphQL Rate Limit Exceeded"), { + headers: res.headers, + data: res.data + }); + throw error; + } + } + + return req; +} + +var triggersNotificationPaths = ["/orgs/:org/invitations", "/orgs/:org/teams/:team_slug/discussions", "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments", "/repos/:owner/:repo/collaborators/:username", "/repos/:owner/:repo/commits/:commit_sha/comments", "/repos/:owner/:repo/issues", "/repos/:owner/:repo/issues/:issue_number/comments", "/repos/:owner/:repo/pulls", "/repos/:owner/:repo/pulls/:pull_number/comments", "/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies", "/repos/:owner/:repo/pulls/:pull_number/merge", "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers", "/repos/:owner/:repo/pulls/:pull_number/reviews", "/repos/:owner/:repo/releases", "/teams/:team_id/discussions", "/teams/:team_id/discussions/:discussion_number/comments"]; + +// @ts-ignore +function routeMatcher(paths) { + // EXAMPLE. For the following paths: + + /* [ + "/orgs/:org/invitations", + "/repos/:owner/:repo/collaborators/:username" + ] */ + // @ts-ignore + const regexes = paths.map(path => path.split("/") // @ts-ignore + .map(c => c.startsWith(":") ? "(?:.+?)" : c).join("/")); // 'regexes' would contain: + + /* [ + '/orgs/(?:.+?)/invitations', + '/repos/(?:.+?)/(?:.+?)/collaborators/(?:.+?)' + ] */ + // @ts-ignore + + const regex = `^(?:${regexes.map(r => `(?:${r})`).join("|")})[^/]*$`; // 'regex' would contain: + + /* + ^(?:(?:\/orgs\/(?:.+?)\/invitations)|(?:\/repos\/(?:.+?)\/(?:.+?)\/collaborators\/(?:.+?)))[^\/]*$ + It may look scary, but paste it into https://www.debuggex.com/ + and it will make a lot more sense! + */ + + return new RegExp(regex, "i"); +} + +const regex = routeMatcher(triggersNotificationPaths); +const triggersNotification = regex.test.bind(regex); +const groups = {}; // @ts-ignore + +const createGroups = function (Bottleneck, common) { + // @ts-ignore + groups.global = new Bottleneck.Group(_objectSpread2({ + id: "octokit-global", + maxConcurrent: 10 + }, common)); // @ts-ignore + + groups.search = new Bottleneck.Group(_objectSpread2({ + id: "octokit-search", + maxConcurrent: 1, + minTime: 2000 + }, common)); // @ts-ignore + + groups.write = new Bottleneck.Group(_objectSpread2({ + id: "octokit-write", + maxConcurrent: 1, + minTime: 1000 + }, common)); // @ts-ignore + + groups.notifications = new Bottleneck.Group(_objectSpread2({ + id: "octokit-notifications", + maxConcurrent: 1, + minTime: 3000 + }, common)); +}; + +function throttling(octokit, octokitOptions = {}) { + const { + enabled = true, + Bottleneck = BottleneckLight, + id = "no-id", + timeout = 1000 * 60 * 2, + // Redis TTL: 2 minutes + connection + } = octokitOptions.throttle || {}; + + if (!enabled) { + return; + } + + const common = { + connection, + timeout + }; // @ts-ignore + + if (groups.global == null) { + createGroups(Bottleneck, common); + } + + const state = Object.assign(_objectSpread2({ + clustering: connection != null, + triggersNotification, + minimumAbuseRetryAfter: 5, + retryAfterBaseValue: 1000, + retryLimiter: new Bottleneck(), + id + }, groups), // @ts-ignore + octokitOptions.throttle); + + if (typeof state.onAbuseLimit !== "function" || typeof state.onRateLimit !== "function") { + throw new Error(`octokit/plugin-throttling error: + You must pass the onAbuseLimit and onRateLimit error handlers. + See https://github.com/octokit/rest.js#throttling + + const octokit = new Octokit({ + throttle: { + onAbuseLimit: (retryAfter, options) => {/* ... */}, + onRateLimit: (retryAfter, options) => {/* ... */} + } + }) + `); + } + + const events = {}; + const emitter = new Bottleneck.Events(events); // @ts-ignore + + events.on("abuse-limit", state.onAbuseLimit); // @ts-ignore + + events.on("rate-limit", state.onRateLimit); // @ts-ignore + + events.on("error", e => console.warn("Error in throttling-plugin limit handler", e)); // @ts-ignore + + state.retryLimiter.on("failed", async function (error, info) { + const options = info.args[info.args.length - 1]; + const isGraphQL = options.url.startsWith("/graphql"); + + if (!(isGraphQL || error.status === 403)) { + return; + } + + const retryCount = ~~options.request.retryCount; + options.request.retryCount = retryCount; + const { + wantRetry, + retryAfter + } = await async function () { + if (/\babuse\b/i.test(error.message)) { + // The user has hit the abuse rate limit. (REST only) + // https://developer.github.com/v3/#abuse-rate-limits + // The Retry-After header can sometimes be blank when hitting an abuse limit, + // but is always present after 2-3s, so make sure to set `retryAfter` to at least 5s by default. + const retryAfter = Math.max(~~error.headers["retry-after"], state.minimumAbuseRetryAfter); + const wantRetry = await emitter.trigger("abuse-limit", retryAfter, options); + return { + wantRetry, + retryAfter + }; + } + + if (error.headers != null && error.headers["x-ratelimit-remaining"] === "0") { + // The user has used all their allowed calls for the current time period (REST and GraphQL) + // https://developer.github.com/v3/#rate-limiting + const rateLimitReset = new Date(~~error.headers["x-ratelimit-reset"] * 1000).getTime(); + const retryAfter = Math.max(Math.ceil((rateLimitReset - Date.now()) / 1000), 0); + const wantRetry = await emitter.trigger("rate-limit", retryAfter, options); + return { + wantRetry, + retryAfter + }; + } + + return {}; + }(); + + if (wantRetry) { + options.request.retryCount++; // @ts-ignore + + return retryAfter * state.retryAfterBaseValue; + } + }); + octokit.hook.wrap("request", wrapRequest.bind(null, state)); +} +throttling.VERSION = VERSION; +throttling.triggersNotification = triggersNotification; + +exports.throttling = throttling; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-throttling/dist-node/index.js.map b/node_modules/@octokit/plugin-throttling/dist-node/index.js.map new file mode 100644 index 0000000..c14308b --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/wrap-request.js","../dist-src/generated/triggers-notification-paths.js","../dist-src/route-matcher.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"3.2.1\";\n","const noop = () => Promise.resolve();\n// @ts-ignore\nexport function wrapRequest(state, request, options) {\n return state.retryLimiter.schedule(doRequest, state, request, options);\n}\n// @ts-ignore\nasync function doRequest(state, request, options) {\n const isWrite = options.method !== \"GET\" && options.method !== \"HEAD\";\n const isSearch = options.method === \"GET\" && options.url.startsWith(\"/search/\");\n const isGraphQL = options.url.startsWith(\"/graphql\");\n const retryCount = ~~options.request.retryCount;\n const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {};\n if (state.clustering) {\n // Remove a job from Redis if it has not completed or failed within 60s\n // Examples: Node process terminated, client disconnected, etc.\n // @ts-ignore\n jobOptions.expiration = 1000 * 60;\n }\n // Guarantee at least 1000ms between writes\n // GraphQL can also trigger writes\n if (isWrite || isGraphQL) {\n await state.write.key(state.id).schedule(jobOptions, noop);\n }\n // Guarantee at least 3000ms between requests that trigger notifications\n if (isWrite && state.triggersNotification(options.url)) {\n await state.notifications.key(state.id).schedule(jobOptions, noop);\n }\n // Guarantee at least 2000ms between search requests\n if (isSearch) {\n await state.search.key(state.id).schedule(jobOptions, noop);\n }\n const req = state.global.key(state.id).schedule(jobOptions, request, options);\n if (isGraphQL) {\n const res = await req;\n if (res.data.errors != null &&\n // @ts-ignore\n res.data.errors.some((error) => error.type === \"RATE_LIMITED\")) {\n const error = Object.assign(new Error(\"GraphQL Rate Limit Exceeded\"), {\n headers: res.headers,\n data: res.data,\n });\n throw error;\n }\n }\n return req;\n}\n","export default [\n \"/orgs/:org/invitations\",\n \"/orgs/:org/teams/:team_slug/discussions\",\n \"/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments\",\n \"/repos/:owner/:repo/collaborators/:username\",\n \"/repos/:owner/:repo/commits/:commit_sha/comments\",\n \"/repos/:owner/:repo/issues\",\n \"/repos/:owner/:repo/issues/:issue_number/comments\",\n \"/repos/:owner/:repo/pulls\",\n \"/repos/:owner/:repo/pulls/:pull_number/comments\",\n \"/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies\",\n \"/repos/:owner/:repo/pulls/:pull_number/merge\",\n \"/repos/:owner/:repo/pulls/:pull_number/requested_reviewers\",\n \"/repos/:owner/:repo/pulls/:pull_number/reviews\",\n \"/repos/:owner/:repo/releases\",\n \"/teams/:team_id/discussions\",\n \"/teams/:team_id/discussions/:discussion_number/comments\",\n];\n","// @ts-ignore\nexport function routeMatcher(paths) {\n // EXAMPLE. For the following paths:\n /* [\n \"/orgs/:org/invitations\",\n \"/repos/:owner/:repo/collaborators/:username\"\n ] */\n // @ts-ignore\n const regexes = paths.map((path) => path\n .split(\"/\")\n // @ts-ignore\n .map((c) => (c.startsWith(\":\") ? \"(?:.+?)\" : c))\n .join(\"/\"));\n // 'regexes' would contain:\n /* [\n '/orgs/(?:.+?)/invitations',\n '/repos/(?:.+?)/(?:.+?)/collaborators/(?:.+?)'\n ] */\n // @ts-ignore\n const regex = `^(?:${regexes.map((r) => `(?:${r})`).join(\"|\")})[^/]*$`;\n // 'regex' would contain:\n /*\n ^(?:(?:\\/orgs\\/(?:.+?)\\/invitations)|(?:\\/repos\\/(?:.+?)\\/(?:.+?)\\/collaborators\\/(?:.+?)))[^\\/]*$\n \n It may look scary, but paste it into https://www.debuggex.com/\n and it will make a lot more sense!\n */\n return new RegExp(regex, \"i\");\n}\n","// @ts-ignore\nimport BottleneckLight from \"bottleneck/light\";\nimport { VERSION } from \"./version\";\nimport { wrapRequest } from \"./wrap-request\";\nimport triggersNotificationPaths from \"./generated/triggers-notification-paths\";\nimport { routeMatcher } from \"./route-matcher\";\n// Workaround to allow tests to directly access the triggersNotification function.\nconst regex = routeMatcher(triggersNotificationPaths);\nconst triggersNotification = regex.test.bind(regex);\nconst groups = {};\n// @ts-ignore\nconst createGroups = function (Bottleneck, common) {\n // @ts-ignore\n groups.global = new Bottleneck.Group({\n id: \"octokit-global\",\n maxConcurrent: 10,\n ...common,\n });\n // @ts-ignore\n groups.search = new Bottleneck.Group({\n id: \"octokit-search\",\n maxConcurrent: 1,\n minTime: 2000,\n ...common,\n });\n // @ts-ignore\n groups.write = new Bottleneck.Group({\n id: \"octokit-write\",\n maxConcurrent: 1,\n minTime: 1000,\n ...common,\n });\n // @ts-ignore\n groups.notifications = new Bottleneck.Group({\n id: \"octokit-notifications\",\n maxConcurrent: 1,\n minTime: 3000,\n ...common,\n });\n};\nexport function throttling(octokit, octokitOptions = {}) {\n const { enabled = true, Bottleneck = BottleneckLight, id = \"no-id\", timeout = 1000 * 60 * 2, // Redis TTL: 2 minutes\n connection, } = octokitOptions.throttle || {};\n if (!enabled) {\n return;\n }\n const common = { connection, timeout };\n // @ts-ignore\n if (groups.global == null) {\n createGroups(Bottleneck, common);\n }\n const state = Object.assign({\n clustering: connection != null,\n triggersNotification,\n minimumAbuseRetryAfter: 5,\n retryAfterBaseValue: 1000,\n retryLimiter: new Bottleneck(),\n id,\n ...groups,\n }, \n // @ts-ignore\n octokitOptions.throttle);\n if (typeof state.onAbuseLimit !== \"function\" ||\n typeof state.onRateLimit !== \"function\") {\n throw new Error(`octokit/plugin-throttling error:\n You must pass the onAbuseLimit and onRateLimit error handlers.\n See https://github.com/octokit/rest.js#throttling\n\n const octokit = new Octokit({\n throttle: {\n onAbuseLimit: (retryAfter, options) => {/* ... */},\n onRateLimit: (retryAfter, options) => {/* ... */}\n }\n })\n `);\n }\n const events = {};\n const emitter = new Bottleneck.Events(events);\n // @ts-ignore\n events.on(\"abuse-limit\", state.onAbuseLimit);\n // @ts-ignore\n events.on(\"rate-limit\", state.onRateLimit);\n // @ts-ignore\n events.on(\"error\", (e) => console.warn(\"Error in throttling-plugin limit handler\", e));\n // @ts-ignore\n state.retryLimiter.on(\"failed\", async function (error, info) {\n const options = info.args[info.args.length - 1];\n const isGraphQL = options.url.startsWith(\"/graphql\");\n if (!(isGraphQL || error.status === 403)) {\n return;\n }\n const retryCount = ~~options.request.retryCount;\n options.request.retryCount = retryCount;\n const { wantRetry, retryAfter } = await (async function () {\n if (/\\babuse\\b/i.test(error.message)) {\n // The user has hit the abuse rate limit. (REST only)\n // https://developer.github.com/v3/#abuse-rate-limits\n // The Retry-After header can sometimes be blank when hitting an abuse limit,\n // but is always present after 2-3s, so make sure to set `retryAfter` to at least 5s by default.\n const retryAfter = Math.max(~~error.headers[\"retry-after\"], state.minimumAbuseRetryAfter);\n const wantRetry = await emitter.trigger(\"abuse-limit\", retryAfter, options);\n return { wantRetry, retryAfter };\n }\n if (error.headers != null &&\n error.headers[\"x-ratelimit-remaining\"] === \"0\") {\n // The user has used all their allowed calls for the current time period (REST and GraphQL)\n // https://developer.github.com/v3/#rate-limiting\n const rateLimitReset = new Date(~~error.headers[\"x-ratelimit-reset\"] * 1000).getTime();\n const retryAfter = Math.max(Math.ceil((rateLimitReset - Date.now()) / 1000), 0);\n const wantRetry = await emitter.trigger(\"rate-limit\", retryAfter, options);\n return { wantRetry, retryAfter };\n }\n return {};\n })();\n if (wantRetry) {\n options.request.retryCount++;\n // @ts-ignore\n return retryAfter * state.retryAfterBaseValue;\n }\n });\n octokit.hook.wrap(\"request\", wrapRequest.bind(null, state));\n}\nthrottling.VERSION = VERSION;\nthrottling.triggersNotification = triggersNotification;\n"],"names":["VERSION","noop","Promise","resolve","wrapRequest","state","request","options","retryLimiter","schedule","doRequest","isWrite","method","isSearch","url","startsWith","isGraphQL","retryCount","jobOptions","priority","weight","clustering","expiration","write","key","id","triggersNotification","notifications","search","req","global","res","data","errors","some","error","type","Object","assign","Error","headers","routeMatcher","paths","regexes","map","path","split","c","join","regex","r","RegExp","triggersNotificationPaths","test","bind","groups","createGroups","Bottleneck","common","Group","maxConcurrent","minTime","throttling","octokit","octokitOptions","enabled","BottleneckLight","timeout","connection","throttle","minimumAbuseRetryAfter","retryAfterBaseValue","onAbuseLimit","onRateLimit","events","emitter","Events","on","e","console","warn","info","args","length","status","wantRetry","retryAfter","message","Math","max","trigger","rateLimitReset","Date","getTime","ceil","now","hook","wrap"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAP,MAAMC,IAAI,GAAG,MAAMC,OAAO,CAACC,OAAR,EAAnB;;;AAEA,AAAO,SAASC,WAAT,CAAqBC,KAArB,EAA4BC,OAA5B,EAAqCC,OAArC,EAA8C;AACjD,SAAOF,KAAK,CAACG,YAAN,CAAmBC,QAAnB,CAA4BC,SAA5B,EAAuCL,KAAvC,EAA8CC,OAA9C,EAAuDC,OAAvD,CAAP;AACH;;AAED,eAAeG,SAAf,CAAyBL,KAAzB,EAAgCC,OAAhC,EAAyCC,OAAzC,EAAkD;AAC9C,QAAMI,OAAO,GAAGJ,OAAO,CAACK,MAAR,KAAmB,KAAnB,IAA4BL,OAAO,CAACK,MAAR,KAAmB,MAA/D;AACA,QAAMC,QAAQ,GAAGN,OAAO,CAACK,MAAR,KAAmB,KAAnB,IAA4BL,OAAO,CAACO,GAAR,CAAYC,UAAZ,CAAuB,UAAvB,CAA7C;AACA,QAAMC,SAAS,GAAGT,OAAO,CAACO,GAAR,CAAYC,UAAZ,CAAuB,UAAvB,CAAlB;AACA,QAAME,UAAU,GAAG,CAAC,CAACV,OAAO,CAACD,OAAR,CAAgBW,UAArC;AACA,QAAMC,UAAU,GAAGD,UAAU,GAAG,CAAb,GAAiB;AAAEE,IAAAA,QAAQ,EAAE,CAAZ;AAAeC,IAAAA,MAAM,EAAE;AAAvB,GAAjB,GAA8C,EAAjE;;AACA,MAAIf,KAAK,CAACgB,UAAV,EAAsB;AAClB;AACA;AACA;AACAH,IAAAA,UAAU,CAACI,UAAX,GAAwB,OAAO,EAA/B;AACH,GAX6C;AAa9C;;;AACA,MAAIX,OAAO,IAAIK,SAAf,EAA0B;AACtB,UAAMX,KAAK,CAACkB,KAAN,CAAYC,GAAZ,CAAgBnB,KAAK,CAACoB,EAAtB,EAA0BhB,QAA1B,CAAmCS,UAAnC,EAA+CjB,IAA/C,CAAN;AACH,GAhB6C;;;AAkB9C,MAAIU,OAAO,IAAIN,KAAK,CAACqB,oBAAN,CAA2BnB,OAAO,CAACO,GAAnC,CAAf,EAAwD;AACpD,UAAMT,KAAK,CAACsB,aAAN,CAAoBH,GAApB,CAAwBnB,KAAK,CAACoB,EAA9B,EAAkChB,QAAlC,CAA2CS,UAA3C,EAAuDjB,IAAvD,CAAN;AACH,GApB6C;;;AAsB9C,MAAIY,QAAJ,EAAc;AACV,UAAMR,KAAK,CAACuB,MAAN,CAAaJ,GAAb,CAAiBnB,KAAK,CAACoB,EAAvB,EAA2BhB,QAA3B,CAAoCS,UAApC,EAAgDjB,IAAhD,CAAN;AACH;;AACD,QAAM4B,GAAG,GAAGxB,KAAK,CAACyB,MAAN,CAAaN,GAAb,CAAiBnB,KAAK,CAACoB,EAAvB,EAA2BhB,QAA3B,CAAoCS,UAApC,EAAgDZ,OAAhD,EAAyDC,OAAzD,CAAZ;;AACA,MAAIS,SAAJ,EAAe;AACX,UAAMe,GAAG,GAAG,MAAMF,GAAlB;;AACA,QAAIE,GAAG,CAACC,IAAJ,CAASC,MAAT,IAAmB,IAAnB;AAEAF,IAAAA,GAAG,CAACC,IAAJ,CAASC,MAAT,CAAgBC,IAAhB,CAAsBC,KAAD,IAAWA,KAAK,CAACC,IAAN,KAAe,cAA/C,CAFJ,EAEoE;AAChE,YAAMD,KAAK,GAAGE,MAAM,CAACC,MAAP,CAAc,IAAIC,KAAJ,CAAU,6BAAV,CAAd,EAAwD;AAClEC,QAAAA,OAAO,EAAET,GAAG,CAACS,OADqD;AAElER,QAAAA,IAAI,EAAED,GAAG,CAACC;AAFwD,OAAxD,CAAd;AAIA,YAAMG,KAAN;AACH;AACJ;;AACD,SAAON,GAAP;AACH;;AC7CD,gCAAe,CACX,wBADW,EAEX,yCAFW,EAGX,qEAHW,EAIX,6CAJW,EAKX,kDALW,EAMX,4BANW,EAOX,mDAPW,EAQX,2BARW,EASX,iDATW,EAUX,qEAVW,EAWX,8CAXW,EAYX,4DAZW,EAaX,gDAbW,EAcX,8BAdW,EAeX,6BAfW,EAgBX,yDAhBW,CAAf;;ACAA;AACA,AAAO,SAASY,YAAT,CAAsBC,KAAtB,EAA6B;AAChC;;AACA;;;;AAIA;AACA,QAAMC,OAAO,GAAGD,KAAK,CAACE,GAAN,CAAWC,IAAD,IAAUA,IAAI,CACnCC,KAD+B,CACzB,GADyB;AAAA,GAG/BF,GAH+B,CAG1BG,CAAD,IAAQA,CAAC,CAAChC,UAAF,CAAa,GAAb,IAAoB,SAApB,GAAgCgC,CAHb,EAI/BC,IAJ+B,CAI1B,GAJ0B,CAApB,CAAhB,CAPgC;;AAahC;;;;AAIA;;AACA,QAAMC,KAAK,GAAI,OAAMN,OAAO,CAACC,GAAR,CAAaM,CAAD,IAAQ,MAAKA,CAAE,GAA3B,EAA+BF,IAA/B,CAAoC,GAApC,CAAyC,SAA9D,CAlBgC;;AAoBhC;;;;;;AAMA,SAAO,IAAIG,MAAJ,CAAWF,KAAX,EAAkB,GAAlB,CAAP;AACH;;ACrBD,MAAMA,KAAK,GAAGR,YAAY,CAACW,yBAAD,CAA1B;AACA,MAAM1B,oBAAoB,GAAGuB,KAAK,CAACI,IAAN,CAAWC,IAAX,CAAgBL,KAAhB,CAA7B;AACA,MAAMM,MAAM,GAAG,EAAf;;AAEA,MAAMC,YAAY,GAAG,UAAUC,UAAV,EAAsBC,MAAtB,EAA8B;AAC/C;AACAH,EAAAA,MAAM,CAACzB,MAAP,GAAgB,IAAI2B,UAAU,CAACE,KAAf;AACZlC,IAAAA,EAAE,EAAE,gBADQ;AAEZmC,IAAAA,aAAa,EAAE;AAFH,KAGTF,MAHS,EAAhB,CAF+C;;AAQ/CH,EAAAA,MAAM,CAAC3B,MAAP,GAAgB,IAAI6B,UAAU,CAACE,KAAf;AACZlC,IAAAA,EAAE,EAAE,gBADQ;AAEZmC,IAAAA,aAAa,EAAE,CAFH;AAGZC,IAAAA,OAAO,EAAE;AAHG,KAITH,MAJS,EAAhB,CAR+C;;AAe/CH,EAAAA,MAAM,CAAChC,KAAP,GAAe,IAAIkC,UAAU,CAACE,KAAf;AACXlC,IAAAA,EAAE,EAAE,eADO;AAEXmC,IAAAA,aAAa,EAAE,CAFJ;AAGXC,IAAAA,OAAO,EAAE;AAHE,KAIRH,MAJQ,EAAf,CAf+C;;AAsB/CH,EAAAA,MAAM,CAAC5B,aAAP,GAAuB,IAAI8B,UAAU,CAACE,KAAf;AACnBlC,IAAAA,EAAE,EAAE,uBADe;AAEnBmC,IAAAA,aAAa,EAAE,CAFI;AAGnBC,IAAAA,OAAO,EAAE;AAHU,KAIhBH,MAJgB,EAAvB;AAMH,CA5BD;;AA6BA,AAAO,SAASI,UAAT,CAAoBC,OAApB,EAA6BC,cAAc,GAAG,EAA9C,EAAkD;AACrD,QAAM;AAAEC,IAAAA,OAAO,GAAG,IAAZ;AAAkBR,IAAAA,UAAU,GAAGS,eAA/B;AAAgDzC,IAAAA,EAAE,GAAG,OAArD;AAA8D0C,IAAAA,OAAO,GAAG,OAAO,EAAP,GAAY,CAApF;AAAuF;AAC7FC,IAAAA;AADM,MACUJ,cAAc,CAACK,QAAf,IAA2B,EAD3C;;AAEA,MAAI,CAACJ,OAAL,EAAc;AACV;AACH;;AACD,QAAMP,MAAM,GAAG;AAAEU,IAAAA,UAAF;AAAcD,IAAAA;AAAd,GAAf,CANqD;;AAQrD,MAAIZ,MAAM,CAACzB,MAAP,IAAiB,IAArB,EAA2B;AACvB0B,IAAAA,YAAY,CAACC,UAAD,EAAaC,MAAb,CAAZ;AACH;;AACD,QAAMrD,KAAK,GAAGgC,MAAM,CAACC,MAAP;AACVjB,IAAAA,UAAU,EAAE+C,UAAU,IAAI,IADhB;AAEV1C,IAAAA,oBAFU;AAGV4C,IAAAA,sBAAsB,EAAE,CAHd;AAIVC,IAAAA,mBAAmB,EAAE,IAJX;AAKV/D,IAAAA,YAAY,EAAE,IAAIiD,UAAJ,EALJ;AAMVhC,IAAAA;AANU,KAOP8B,MAPO;AAUdS,EAAAA,cAAc,CAACK,QAVD,CAAd;;AAWA,MAAI,OAAOhE,KAAK,CAACmE,YAAb,KAA8B,UAA9B,IACA,OAAOnE,KAAK,CAACoE,WAAb,KAA6B,UADjC,EAC6C;AACzC,UAAM,IAAIlC,KAAJ,CAAW;;;;;;;;;;KAAX,CAAN;AAWH;;AACD,QAAMmC,MAAM,GAAG,EAAf;AACA,QAAMC,OAAO,GAAG,IAAIlB,UAAU,CAACmB,MAAf,CAAsBF,MAAtB,CAAhB,CArCqD;;AAuCrDA,EAAAA,MAAM,CAACG,EAAP,CAAU,aAAV,EAAyBxE,KAAK,CAACmE,YAA/B,EAvCqD;;AAyCrDE,EAAAA,MAAM,CAACG,EAAP,CAAU,YAAV,EAAwBxE,KAAK,CAACoE,WAA9B,EAzCqD;;AA2CrDC,EAAAA,MAAM,CAACG,EAAP,CAAU,OAAV,EAAoBC,CAAD,IAAOC,OAAO,CAACC,IAAR,CAAa,0CAAb,EAAyDF,CAAzD,CAA1B,EA3CqD;;AA6CrDzE,EAAAA,KAAK,CAACG,YAAN,CAAmBqE,EAAnB,CAAsB,QAAtB,EAAgC,gBAAgB1C,KAAhB,EAAuB8C,IAAvB,EAA6B;AACzD,UAAM1E,OAAO,GAAG0E,IAAI,CAACC,IAAL,CAAUD,IAAI,CAACC,IAAL,CAAUC,MAAV,GAAmB,CAA7B,CAAhB;AACA,UAAMnE,SAAS,GAAGT,OAAO,CAACO,GAAR,CAAYC,UAAZ,CAAuB,UAAvB,CAAlB;;AACA,QAAI,EAAEC,SAAS,IAAImB,KAAK,CAACiD,MAAN,KAAiB,GAAhC,CAAJ,EAA0C;AACtC;AACH;;AACD,UAAMnE,UAAU,GAAG,CAAC,CAACV,OAAO,CAACD,OAAR,CAAgBW,UAArC;AACAV,IAAAA,OAAO,CAACD,OAAR,CAAgBW,UAAhB,GAA6BA,UAA7B;AACA,UAAM;AAAEoE,MAAAA,SAAF;AAAaC,MAAAA;AAAb,QAA4B,MAAO,kBAAkB;AACvD,UAAI,aAAajC,IAAb,CAAkBlB,KAAK,CAACoD,OAAxB,CAAJ,EAAsC;AAClC;AACA;AACA;AACA;AACA,cAAMD,UAAU,GAAGE,IAAI,CAACC,GAAL,CAAS,CAAC,CAACtD,KAAK,CAACK,OAAN,CAAc,aAAd,CAAX,EAAyCnC,KAAK,CAACiE,sBAA/C,CAAnB;AACA,cAAMe,SAAS,GAAG,MAAMV,OAAO,CAACe,OAAR,CAAgB,aAAhB,EAA+BJ,UAA/B,EAA2C/E,OAA3C,CAAxB;AACA,eAAO;AAAE8E,UAAAA,SAAF;AAAaC,UAAAA;AAAb,SAAP;AACH;;AACD,UAAInD,KAAK,CAACK,OAAN,IAAiB,IAAjB,IACAL,KAAK,CAACK,OAAN,CAAc,uBAAd,MAA2C,GAD/C,EACoD;AAChD;AACA;AACA,cAAMmD,cAAc,GAAG,IAAIC,IAAJ,CAAS,CAAC,CAACzD,KAAK,CAACK,OAAN,CAAc,mBAAd,CAAF,GAAuC,IAAhD,EAAsDqD,OAAtD,EAAvB;AACA,cAAMP,UAAU,GAAGE,IAAI,CAACC,GAAL,CAASD,IAAI,CAACM,IAAL,CAAU,CAACH,cAAc,GAAGC,IAAI,CAACG,GAAL,EAAlB,IAAgC,IAA1C,CAAT,EAA0D,CAA1D,CAAnB;AACA,cAAMV,SAAS,GAAG,MAAMV,OAAO,CAACe,OAAR,CAAgB,YAAhB,EAA8BJ,UAA9B,EAA0C/E,OAA1C,CAAxB;AACA,eAAO;AAAE8E,UAAAA,SAAF;AAAaC,UAAAA;AAAb,SAAP;AACH;;AACD,aAAO,EAAP;AACH,KApBuC,EAAxC;;AAqBA,QAAID,SAAJ,EAAe;AACX9E,MAAAA,OAAO,CAACD,OAAR,CAAgBW,UAAhB,GADW;;AAGX,aAAOqE,UAAU,GAAGjF,KAAK,CAACkE,mBAA1B;AACH;AACJ,GAlCD;AAmCAR,EAAAA,OAAO,CAACiC,IAAR,CAAaC,IAAb,CAAkB,SAAlB,EAA6B7F,WAAW,CAACkD,IAAZ,CAAiB,IAAjB,EAAuBjD,KAAvB,CAA7B;AACH;AACDyD,UAAU,CAAC9D,OAAX,GAAqBA,OAArB;AACA8D,UAAU,CAACpC,oBAAX,GAAkCA,oBAAlC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-throttling/dist-src/generated/triggers-notification-paths.js b/node_modules/@octokit/plugin-throttling/dist-src/generated/triggers-notification-paths.js new file mode 100644 index 0000000..9779a28 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-src/generated/triggers-notification-paths.js @@ -0,0 +1,18 @@ +export default [ + "/orgs/:org/invitations", + "/orgs/:org/teams/:team_slug/discussions", + "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments", + "/repos/:owner/:repo/collaborators/:username", + "/repos/:owner/:repo/commits/:commit_sha/comments", + "/repos/:owner/:repo/issues", + "/repos/:owner/:repo/issues/:issue_number/comments", + "/repos/:owner/:repo/pulls", + "/repos/:owner/:repo/pulls/:pull_number/comments", + "/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies", + "/repos/:owner/:repo/pulls/:pull_number/merge", + "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers", + "/repos/:owner/:repo/pulls/:pull_number/reviews", + "/repos/:owner/:repo/releases", + "/teams/:team_id/discussions", + "/teams/:team_id/discussions/:discussion_number/comments", +]; diff --git a/node_modules/@octokit/plugin-throttling/dist-src/index.js b/node_modules/@octokit/plugin-throttling/dist-src/index.js new file mode 100644 index 0000000..d06fef2 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-src/index.js @@ -0,0 +1,124 @@ +// @ts-ignore +import BottleneckLight from "bottleneck/light"; +import { VERSION } from "./version"; +import { wrapRequest } from "./wrap-request"; +import triggersNotificationPaths from "./generated/triggers-notification-paths"; +import { routeMatcher } from "./route-matcher"; +// Workaround to allow tests to directly access the triggersNotification function. +const regex = routeMatcher(triggersNotificationPaths); +const triggersNotification = regex.test.bind(regex); +const groups = {}; +// @ts-ignore +const createGroups = function (Bottleneck, common) { + // @ts-ignore + groups.global = new Bottleneck.Group({ + id: "octokit-global", + maxConcurrent: 10, + ...common, + }); + // @ts-ignore + groups.search = new Bottleneck.Group({ + id: "octokit-search", + maxConcurrent: 1, + minTime: 2000, + ...common, + }); + // @ts-ignore + groups.write = new Bottleneck.Group({ + id: "octokit-write", + maxConcurrent: 1, + minTime: 1000, + ...common, + }); + // @ts-ignore + groups.notifications = new Bottleneck.Group({ + id: "octokit-notifications", + maxConcurrent: 1, + minTime: 3000, + ...common, + }); +}; +export function throttling(octokit, octokitOptions = {}) { + const { enabled = true, Bottleneck = BottleneckLight, id = "no-id", timeout = 1000 * 60 * 2, // Redis TTL: 2 minutes + connection, } = octokitOptions.throttle || {}; + if (!enabled) { + return; + } + const common = { connection, timeout }; + // @ts-ignore + if (groups.global == null) { + createGroups(Bottleneck, common); + } + const state = Object.assign({ + clustering: connection != null, + triggersNotification, + minimumAbuseRetryAfter: 5, + retryAfterBaseValue: 1000, + retryLimiter: new Bottleneck(), + id, + ...groups, + }, + // @ts-ignore + octokitOptions.throttle); + if (typeof state.onAbuseLimit !== "function" || + typeof state.onRateLimit !== "function") { + throw new Error(`octokit/plugin-throttling error: + You must pass the onAbuseLimit and onRateLimit error handlers. + See https://github.com/octokit/rest.js#throttling + + const octokit = new Octokit({ + throttle: { + onAbuseLimit: (retryAfter, options) => {/* ... */}, + onRateLimit: (retryAfter, options) => {/* ... */} + } + }) + `); + } + const events = {}; + const emitter = new Bottleneck.Events(events); + // @ts-ignore + events.on("abuse-limit", state.onAbuseLimit); + // @ts-ignore + events.on("rate-limit", state.onRateLimit); + // @ts-ignore + events.on("error", (e) => console.warn("Error in throttling-plugin limit handler", e)); + // @ts-ignore + state.retryLimiter.on("failed", async function (error, info) { + const options = info.args[info.args.length - 1]; + const isGraphQL = options.url.startsWith("/graphql"); + if (!(isGraphQL || error.status === 403)) { + return; + } + const retryCount = ~~options.request.retryCount; + options.request.retryCount = retryCount; + const { wantRetry, retryAfter } = await (async function () { + if (/\babuse\b/i.test(error.message)) { + // The user has hit the abuse rate limit. (REST only) + // https://developer.github.com/v3/#abuse-rate-limits + // The Retry-After header can sometimes be blank when hitting an abuse limit, + // but is always present after 2-3s, so make sure to set `retryAfter` to at least 5s by default. + const retryAfter = Math.max(~~error.headers["retry-after"], state.minimumAbuseRetryAfter); + const wantRetry = await emitter.trigger("abuse-limit", retryAfter, options); + return { wantRetry, retryAfter }; + } + if (error.headers != null && + error.headers["x-ratelimit-remaining"] === "0") { + // The user has used all their allowed calls for the current time period (REST and GraphQL) + // https://developer.github.com/v3/#rate-limiting + const rateLimitReset = new Date(~~error.headers["x-ratelimit-reset"] * 1000).getTime(); + const retryAfter = Math.max(Math.ceil((rateLimitReset - Date.now()) / 1000), 0); + const wantRetry = await emitter.trigger("rate-limit", retryAfter, options); + return { wantRetry, retryAfter }; + } + return {}; + })(); + if (wantRetry) { + options.request.retryCount++; + // @ts-ignore + return retryAfter * state.retryAfterBaseValue; + } + }); + octokit.hook.wrap("request", wrapRequest.bind(null, state)); +} +throttling.VERSION = VERSION; +throttling.triggersNotification = triggersNotification; diff --git a/node_modules/@octokit/plugin-throttling/dist-src/route-matcher.js b/node_modules/@octokit/plugin-throttling/dist-src/route-matcher.js new file mode 100644 index 0000000..b5fb90f --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-src/route-matcher.js @@ -0,0 +1,29 @@ +// @ts-ignore +export function routeMatcher(paths) { + // EXAMPLE. For the following paths: + /* [ + "/orgs/:org/invitations", + "/repos/:owner/:repo/collaborators/:username" + ] */ + // @ts-ignore + const regexes = paths.map((path) => path + .split("/") + // @ts-ignore + .map((c) => (c.startsWith(":") ? "(?:.+?)" : c)) + .join("/")); + // 'regexes' would contain: + /* [ + '/orgs/(?:.+?)/invitations', + '/repos/(?:.+?)/(?:.+?)/collaborators/(?:.+?)' + ] */ + // @ts-ignore + const regex = `^(?:${regexes.map((r) => `(?:${r})`).join("|")})[^/]*$`; + // 'regex' would contain: + /* + ^(?:(?:\/orgs\/(?:.+?)\/invitations)|(?:\/repos\/(?:.+?)\/(?:.+?)\/collaborators\/(?:.+?)))[^\/]*$ + + It may look scary, but paste it into https://www.debuggex.com/ + and it will make a lot more sense! + */ + return new RegExp(regex, "i"); +} diff --git a/node_modules/@octokit/plugin-throttling/dist-src/version.js b/node_modules/@octokit/plugin-throttling/dist-src/version.js new file mode 100644 index 0000000..f86ba5a --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "3.2.1"; diff --git a/node_modules/@octokit/plugin-throttling/dist-src/wrap-request.js b/node_modules/@octokit/plugin-throttling/dist-src/wrap-request.js new file mode 100644 index 0000000..533a6d1 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-src/wrap-request.js @@ -0,0 +1,46 @@ +const noop = () => Promise.resolve(); +// @ts-ignore +export function wrapRequest(state, request, options) { + return state.retryLimiter.schedule(doRequest, state, request, options); +} +// @ts-ignore +async function doRequest(state, request, options) { + const isWrite = options.method !== "GET" && options.method !== "HEAD"; + const isSearch = options.method === "GET" && options.url.startsWith("/search/"); + const isGraphQL = options.url.startsWith("/graphql"); + const retryCount = ~~options.request.retryCount; + const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {}; + if (state.clustering) { + // Remove a job from Redis if it has not completed or failed within 60s + // Examples: Node process terminated, client disconnected, etc. + // @ts-ignore + jobOptions.expiration = 1000 * 60; + } + // Guarantee at least 1000ms between writes + // GraphQL can also trigger writes + if (isWrite || isGraphQL) { + await state.write.key(state.id).schedule(jobOptions, noop); + } + // Guarantee at least 3000ms between requests that trigger notifications + if (isWrite && state.triggersNotification(options.url)) { + await state.notifications.key(state.id).schedule(jobOptions, noop); + } + // Guarantee at least 2000ms between search requests + if (isSearch) { + await state.search.key(state.id).schedule(jobOptions, noop); + } + const req = state.global.key(state.id).schedule(jobOptions, request, options); + if (isGraphQL) { + const res = await req; + if (res.data.errors != null && + // @ts-ignore + res.data.errors.some((error) => error.type === "RATE_LIMITED")) { + const error = Object.assign(new Error("GraphQL Rate Limit Exceeded"), { + headers: res.headers, + data: res.data, + }); + throw error; + } + } + return req; +} diff --git a/node_modules/@octokit/plugin-throttling/dist-types/generated/triggers-notification-paths.d.ts b/node_modules/@octokit/plugin-throttling/dist-types/generated/triggers-notification-paths.d.ts new file mode 100644 index 0000000..d451d2b --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-types/generated/triggers-notification-paths.d.ts @@ -0,0 +1,2 @@ +declare const _default: string[]; +export default _default; diff --git a/node_modules/@octokit/plugin-throttling/dist-types/index.d.ts b/node_modules/@octokit/plugin-throttling/dist-types/index.d.ts new file mode 100644 index 0000000..c689acc --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-types/index.d.ts @@ -0,0 +1,6 @@ +import { Octokit } from "@octokit/core"; +export declare function throttling(octokit: Octokit, octokitOptions?: {}): void; +export declare namespace throttling { + var VERSION: string; + var triggersNotification: (string: string) => boolean; +} diff --git a/node_modules/@octokit/plugin-throttling/dist-types/route-matcher.d.ts b/node_modules/@octokit/plugin-throttling/dist-types/route-matcher.d.ts new file mode 100644 index 0000000..4f91d22 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-types/route-matcher.d.ts @@ -0,0 +1 @@ +export declare function routeMatcher(paths: any): RegExp; diff --git a/node_modules/@octokit/plugin-throttling/dist-types/version.d.ts b/node_modules/@octokit/plugin-throttling/dist-types/version.d.ts new file mode 100644 index 0000000..6ea6751 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "3.2.1"; diff --git a/node_modules/@octokit/plugin-throttling/dist-types/wrap-request.d.ts b/node_modules/@octokit/plugin-throttling/dist-types/wrap-request.d.ts new file mode 100644 index 0000000..9b5bd25 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-types/wrap-request.d.ts @@ -0,0 +1 @@ +export declare function wrapRequest(state: any, request: any, options: any): any; diff --git a/node_modules/@octokit/plugin-throttling/dist-web/index.js b/node_modules/@octokit/plugin-throttling/dist-web/index.js new file mode 100644 index 0000000..a4f7ba5 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-web/index.js @@ -0,0 +1,222 @@ +import BottleneckLight from 'bottleneck/light'; + +const VERSION = "3.2.1"; + +const noop = () => Promise.resolve(); +// @ts-ignore +function wrapRequest(state, request, options) { + return state.retryLimiter.schedule(doRequest, state, request, options); +} +// @ts-ignore +async function doRequest(state, request, options) { + const isWrite = options.method !== "GET" && options.method !== "HEAD"; + const isSearch = options.method === "GET" && options.url.startsWith("/search/"); + const isGraphQL = options.url.startsWith("/graphql"); + const retryCount = ~~options.request.retryCount; + const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {}; + if (state.clustering) { + // Remove a job from Redis if it has not completed or failed within 60s + // Examples: Node process terminated, client disconnected, etc. + // @ts-ignore + jobOptions.expiration = 1000 * 60; + } + // Guarantee at least 1000ms between writes + // GraphQL can also trigger writes + if (isWrite || isGraphQL) { + await state.write.key(state.id).schedule(jobOptions, noop); + } + // Guarantee at least 3000ms between requests that trigger notifications + if (isWrite && state.triggersNotification(options.url)) { + await state.notifications.key(state.id).schedule(jobOptions, noop); + } + // Guarantee at least 2000ms between search requests + if (isSearch) { + await state.search.key(state.id).schedule(jobOptions, noop); + } + const req = state.global.key(state.id).schedule(jobOptions, request, options); + if (isGraphQL) { + const res = await req; + if (res.data.errors != null && + // @ts-ignore + res.data.errors.some((error) => error.type === "RATE_LIMITED")) { + const error = Object.assign(new Error("GraphQL Rate Limit Exceeded"), { + headers: res.headers, + data: res.data, + }); + throw error; + } + } + return req; +} + +var triggersNotificationPaths = [ + "/orgs/:org/invitations", + "/orgs/:org/teams/:team_slug/discussions", + "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments", + "/repos/:owner/:repo/collaborators/:username", + "/repos/:owner/:repo/commits/:commit_sha/comments", + "/repos/:owner/:repo/issues", + "/repos/:owner/:repo/issues/:issue_number/comments", + "/repos/:owner/:repo/pulls", + "/repos/:owner/:repo/pulls/:pull_number/comments", + "/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies", + "/repos/:owner/:repo/pulls/:pull_number/merge", + "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers", + "/repos/:owner/:repo/pulls/:pull_number/reviews", + "/repos/:owner/:repo/releases", + "/teams/:team_id/discussions", + "/teams/:team_id/discussions/:discussion_number/comments", +]; + +// @ts-ignore +function routeMatcher(paths) { + // EXAMPLE. For the following paths: + /* [ + "/orgs/:org/invitations", + "/repos/:owner/:repo/collaborators/:username" + ] */ + // @ts-ignore + const regexes = paths.map((path) => path + .split("/") + // @ts-ignore + .map((c) => (c.startsWith(":") ? "(?:.+?)" : c)) + .join("/")); + // 'regexes' would contain: + /* [ + '/orgs/(?:.+?)/invitations', + '/repos/(?:.+?)/(?:.+?)/collaborators/(?:.+?)' + ] */ + // @ts-ignore + const regex = `^(?:${regexes.map((r) => `(?:${r})`).join("|")})[^/]*$`; + // 'regex' would contain: + /* + ^(?:(?:\/orgs\/(?:.+?)\/invitations)|(?:\/repos\/(?:.+?)\/(?:.+?)\/collaborators\/(?:.+?)))[^\/]*$ + + It may look scary, but paste it into https://www.debuggex.com/ + and it will make a lot more sense! + */ + return new RegExp(regex, "i"); +} + +// @ts-ignore +// Workaround to allow tests to directly access the triggersNotification function. +const regex = routeMatcher(triggersNotificationPaths); +const triggersNotification = regex.test.bind(regex); +const groups = {}; +// @ts-ignore +const createGroups = function (Bottleneck, common) { + // @ts-ignore + groups.global = new Bottleneck.Group({ + id: "octokit-global", + maxConcurrent: 10, + ...common, + }); + // @ts-ignore + groups.search = new Bottleneck.Group({ + id: "octokit-search", + maxConcurrent: 1, + minTime: 2000, + ...common, + }); + // @ts-ignore + groups.write = new Bottleneck.Group({ + id: "octokit-write", + maxConcurrent: 1, + minTime: 1000, + ...common, + }); + // @ts-ignore + groups.notifications = new Bottleneck.Group({ + id: "octokit-notifications", + maxConcurrent: 1, + minTime: 3000, + ...common, + }); +}; +function throttling(octokit, octokitOptions = {}) { + const { enabled = true, Bottleneck = BottleneckLight, id = "no-id", timeout = 1000 * 60 * 2, // Redis TTL: 2 minutes + connection, } = octokitOptions.throttle || {}; + if (!enabled) { + return; + } + const common = { connection, timeout }; + // @ts-ignore + if (groups.global == null) { + createGroups(Bottleneck, common); + } + const state = Object.assign({ + clustering: connection != null, + triggersNotification, + minimumAbuseRetryAfter: 5, + retryAfterBaseValue: 1000, + retryLimiter: new Bottleneck(), + id, + ...groups, + }, + // @ts-ignore + octokitOptions.throttle); + if (typeof state.onAbuseLimit !== "function" || + typeof state.onRateLimit !== "function") { + throw new Error(`octokit/plugin-throttling error: + You must pass the onAbuseLimit and onRateLimit error handlers. + See https://github.com/octokit/rest.js#throttling + + const octokit = new Octokit({ + throttle: { + onAbuseLimit: (retryAfter, options) => {/* ... */}, + onRateLimit: (retryAfter, options) => {/* ... */} + } + }) + `); + } + const events = {}; + const emitter = new Bottleneck.Events(events); + // @ts-ignore + events.on("abuse-limit", state.onAbuseLimit); + // @ts-ignore + events.on("rate-limit", state.onRateLimit); + // @ts-ignore + events.on("error", (e) => console.warn("Error in throttling-plugin limit handler", e)); + // @ts-ignore + state.retryLimiter.on("failed", async function (error, info) { + const options = info.args[info.args.length - 1]; + const isGraphQL = options.url.startsWith("/graphql"); + if (!(isGraphQL || error.status === 403)) { + return; + } + const retryCount = ~~options.request.retryCount; + options.request.retryCount = retryCount; + const { wantRetry, retryAfter } = await (async function () { + if (/\babuse\b/i.test(error.message)) { + // The user has hit the abuse rate limit. (REST only) + // https://developer.github.com/v3/#abuse-rate-limits + // The Retry-After header can sometimes be blank when hitting an abuse limit, + // but is always present after 2-3s, so make sure to set `retryAfter` to at least 5s by default. + const retryAfter = Math.max(~~error.headers["retry-after"], state.minimumAbuseRetryAfter); + const wantRetry = await emitter.trigger("abuse-limit", retryAfter, options); + return { wantRetry, retryAfter }; + } + if (error.headers != null && + error.headers["x-ratelimit-remaining"] === "0") { + // The user has used all their allowed calls for the current time period (REST and GraphQL) + // https://developer.github.com/v3/#rate-limiting + const rateLimitReset = new Date(~~error.headers["x-ratelimit-reset"] * 1000).getTime(); + const retryAfter = Math.max(Math.ceil((rateLimitReset - Date.now()) / 1000), 0); + const wantRetry = await emitter.trigger("rate-limit", retryAfter, options); + return { wantRetry, retryAfter }; + } + return {}; + })(); + if (wantRetry) { + options.request.retryCount++; + // @ts-ignore + return retryAfter * state.retryAfterBaseValue; + } + }); + octokit.hook.wrap("request", wrapRequest.bind(null, state)); +} +throttling.VERSION = VERSION; +throttling.triggersNotification = triggersNotification; + +export { throttling }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-throttling/dist-web/index.js.map b/node_modules/@octokit/plugin-throttling/dist-web/index.js.map new file mode 100644 index 0000000..3d8bf60 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/wrap-request.js","../dist-src/generated/triggers-notification-paths.js","../dist-src/route-matcher.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"3.2.1\";\n","const noop = () => Promise.resolve();\n// @ts-ignore\nexport function wrapRequest(state, request, options) {\n return state.retryLimiter.schedule(doRequest, state, request, options);\n}\n// @ts-ignore\nasync function doRequest(state, request, options) {\n const isWrite = options.method !== \"GET\" && options.method !== \"HEAD\";\n const isSearch = options.method === \"GET\" && options.url.startsWith(\"/search/\");\n const isGraphQL = options.url.startsWith(\"/graphql\");\n const retryCount = ~~options.request.retryCount;\n const jobOptions = retryCount > 0 ? { priority: 0, weight: 0 } : {};\n if (state.clustering) {\n // Remove a job from Redis if it has not completed or failed within 60s\n // Examples: Node process terminated, client disconnected, etc.\n // @ts-ignore\n jobOptions.expiration = 1000 * 60;\n }\n // Guarantee at least 1000ms between writes\n // GraphQL can also trigger writes\n if (isWrite || isGraphQL) {\n await state.write.key(state.id).schedule(jobOptions, noop);\n }\n // Guarantee at least 3000ms between requests that trigger notifications\n if (isWrite && state.triggersNotification(options.url)) {\n await state.notifications.key(state.id).schedule(jobOptions, noop);\n }\n // Guarantee at least 2000ms between search requests\n if (isSearch) {\n await state.search.key(state.id).schedule(jobOptions, noop);\n }\n const req = state.global.key(state.id).schedule(jobOptions, request, options);\n if (isGraphQL) {\n const res = await req;\n if (res.data.errors != null &&\n // @ts-ignore\n res.data.errors.some((error) => error.type === \"RATE_LIMITED\")) {\n const error = Object.assign(new Error(\"GraphQL Rate Limit Exceeded\"), {\n headers: res.headers,\n data: res.data,\n });\n throw error;\n }\n }\n return req;\n}\n","export default [\n \"/orgs/:org/invitations\",\n \"/orgs/:org/teams/:team_slug/discussions\",\n \"/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments\",\n \"/repos/:owner/:repo/collaborators/:username\",\n \"/repos/:owner/:repo/commits/:commit_sha/comments\",\n \"/repos/:owner/:repo/issues\",\n \"/repos/:owner/:repo/issues/:issue_number/comments\",\n \"/repos/:owner/:repo/pulls\",\n \"/repos/:owner/:repo/pulls/:pull_number/comments\",\n \"/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies\",\n \"/repos/:owner/:repo/pulls/:pull_number/merge\",\n \"/repos/:owner/:repo/pulls/:pull_number/requested_reviewers\",\n \"/repos/:owner/:repo/pulls/:pull_number/reviews\",\n \"/repos/:owner/:repo/releases\",\n \"/teams/:team_id/discussions\",\n \"/teams/:team_id/discussions/:discussion_number/comments\",\n];\n","// @ts-ignore\nexport function routeMatcher(paths) {\n // EXAMPLE. For the following paths:\n /* [\n \"/orgs/:org/invitations\",\n \"/repos/:owner/:repo/collaborators/:username\"\n ] */\n // @ts-ignore\n const regexes = paths.map((path) => path\n .split(\"/\")\n // @ts-ignore\n .map((c) => (c.startsWith(\":\") ? \"(?:.+?)\" : c))\n .join(\"/\"));\n // 'regexes' would contain:\n /* [\n '/orgs/(?:.+?)/invitations',\n '/repos/(?:.+?)/(?:.+?)/collaborators/(?:.+?)'\n ] */\n // @ts-ignore\n const regex = `^(?:${regexes.map((r) => `(?:${r})`).join(\"|\")})[^/]*$`;\n // 'regex' would contain:\n /*\n ^(?:(?:\\/orgs\\/(?:.+?)\\/invitations)|(?:\\/repos\\/(?:.+?)\\/(?:.+?)\\/collaborators\\/(?:.+?)))[^\\/]*$\n \n It may look scary, but paste it into https://www.debuggex.com/\n and it will make a lot more sense!\n */\n return new RegExp(regex, \"i\");\n}\n","// @ts-ignore\nimport BottleneckLight from \"bottleneck/light\";\nimport { VERSION } from \"./version\";\nimport { wrapRequest } from \"./wrap-request\";\nimport triggersNotificationPaths from \"./generated/triggers-notification-paths\";\nimport { routeMatcher } from \"./route-matcher\";\n// Workaround to allow tests to directly access the triggersNotification function.\nconst regex = routeMatcher(triggersNotificationPaths);\nconst triggersNotification = regex.test.bind(regex);\nconst groups = {};\n// @ts-ignore\nconst createGroups = function (Bottleneck, common) {\n // @ts-ignore\n groups.global = new Bottleneck.Group({\n id: \"octokit-global\",\n maxConcurrent: 10,\n ...common,\n });\n // @ts-ignore\n groups.search = new Bottleneck.Group({\n id: \"octokit-search\",\n maxConcurrent: 1,\n minTime: 2000,\n ...common,\n });\n // @ts-ignore\n groups.write = new Bottleneck.Group({\n id: \"octokit-write\",\n maxConcurrent: 1,\n minTime: 1000,\n ...common,\n });\n // @ts-ignore\n groups.notifications = new Bottleneck.Group({\n id: \"octokit-notifications\",\n maxConcurrent: 1,\n minTime: 3000,\n ...common,\n });\n};\nexport function throttling(octokit, octokitOptions = {}) {\n const { enabled = true, Bottleneck = BottleneckLight, id = \"no-id\", timeout = 1000 * 60 * 2, // Redis TTL: 2 minutes\n connection, } = octokitOptions.throttle || {};\n if (!enabled) {\n return;\n }\n const common = { connection, timeout };\n // @ts-ignore\n if (groups.global == null) {\n createGroups(Bottleneck, common);\n }\n const state = Object.assign({\n clustering: connection != null,\n triggersNotification,\n minimumAbuseRetryAfter: 5,\n retryAfterBaseValue: 1000,\n retryLimiter: new Bottleneck(),\n id,\n ...groups,\n }, \n // @ts-ignore\n octokitOptions.throttle);\n if (typeof state.onAbuseLimit !== \"function\" ||\n typeof state.onRateLimit !== \"function\") {\n throw new Error(`octokit/plugin-throttling error:\n You must pass the onAbuseLimit and onRateLimit error handlers.\n See https://github.com/octokit/rest.js#throttling\n\n const octokit = new Octokit({\n throttle: {\n onAbuseLimit: (retryAfter, options) => {/* ... */},\n onRateLimit: (retryAfter, options) => {/* ... */}\n }\n })\n `);\n }\n const events = {};\n const emitter = new Bottleneck.Events(events);\n // @ts-ignore\n events.on(\"abuse-limit\", state.onAbuseLimit);\n // @ts-ignore\n events.on(\"rate-limit\", state.onRateLimit);\n // @ts-ignore\n events.on(\"error\", (e) => console.warn(\"Error in throttling-plugin limit handler\", e));\n // @ts-ignore\n state.retryLimiter.on(\"failed\", async function (error, info) {\n const options = info.args[info.args.length - 1];\n const isGraphQL = options.url.startsWith(\"/graphql\");\n if (!(isGraphQL || error.status === 403)) {\n return;\n }\n const retryCount = ~~options.request.retryCount;\n options.request.retryCount = retryCount;\n const { wantRetry, retryAfter } = await (async function () {\n if (/\\babuse\\b/i.test(error.message)) {\n // The user has hit the abuse rate limit. (REST only)\n // https://developer.github.com/v3/#abuse-rate-limits\n // The Retry-After header can sometimes be blank when hitting an abuse limit,\n // but is always present after 2-3s, so make sure to set `retryAfter` to at least 5s by default.\n const retryAfter = Math.max(~~error.headers[\"retry-after\"], state.minimumAbuseRetryAfter);\n const wantRetry = await emitter.trigger(\"abuse-limit\", retryAfter, options);\n return { wantRetry, retryAfter };\n }\n if (error.headers != null &&\n error.headers[\"x-ratelimit-remaining\"] === \"0\") {\n // The user has used all their allowed calls for the current time period (REST and GraphQL)\n // https://developer.github.com/v3/#rate-limiting\n const rateLimitReset = new Date(~~error.headers[\"x-ratelimit-reset\"] * 1000).getTime();\n const retryAfter = Math.max(Math.ceil((rateLimitReset - Date.now()) / 1000), 0);\n const wantRetry = await emitter.trigger(\"rate-limit\", retryAfter, options);\n return { wantRetry, retryAfter };\n }\n return {};\n })();\n if (wantRetry) {\n options.request.retryCount++;\n // @ts-ignore\n return retryAfter * state.retryAfterBaseValue;\n }\n });\n octokit.hook.wrap(\"request\", wrapRequest.bind(null, state));\n}\nthrottling.VERSION = VERSION;\nthrottling.triggersNotification = triggersNotification;\n"],"names":[],"mappings":";;AAAO,MAAM,OAAO,GAAG,mBAAmB;;ACA1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AACrC;AACA,AAAO,SAAS,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACrD,IAAI,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AACD;AACA,eAAe,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAClD,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;AAC1E,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACpF,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACzD,IAAI,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AACpD,IAAI,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AACxE,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B;AACA;AACA;AACA,QAAQ,UAAU,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;AAC1C,KAAK;AACL;AACA;AACA,IAAI,IAAI,OAAO,IAAI,SAAS,EAAE;AAC9B,QAAQ,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACnE,KAAK;AACL;AACA,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC5D,QAAQ,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3E,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,EAAE;AAClB,QAAQ,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAClF,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;AAC9B,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;AACnC;AACA,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE;AAC5E,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,EAAE;AAClF,gBAAgB,OAAO,EAAE,GAAG,CAAC,OAAO;AACpC,gBAAgB,IAAI,EAAE,GAAG,CAAC,IAAI;AAC9B,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,KAAK,CAAC;AACxB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;;AC7CD,gCAAe;AACf,IAAI,wBAAwB;AAC5B,IAAI,yCAAyC;AAC7C,IAAI,qEAAqE;AACzE,IAAI,6CAA6C;AACjD,IAAI,kDAAkD;AACtD,IAAI,4BAA4B;AAChC,IAAI,mDAAmD;AACvD,IAAI,2BAA2B;AAC/B,IAAI,iDAAiD;AACrD,IAAI,qEAAqE;AACzE,IAAI,8CAA8C;AAClD,IAAI,4DAA4D;AAChE,IAAI,gDAAgD;AACpD,IAAI,8BAA8B;AAClC,IAAI,6BAA6B;AACjC,IAAI,yDAAyD;AAC7D,CAAC,CAAC;;ACjBF;AACA,AAAO,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI;AAC5C,SAAS,KAAK,CAAC,GAAG,CAAC;AACnB;AACA,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;AACxD,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;;AC5BD;AACA,AAKA;AACA,MAAM,KAAK,GAAG,YAAY,CAAC,yBAAyB,CAAC,CAAC;AACtD,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB;AACA,MAAM,YAAY,GAAG,UAAU,UAAU,EAAE,MAAM,EAAE;AACnD;AACA,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AACzC,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,aAAa,EAAE,EAAE;AACzB,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AACzC,QAAQ,EAAE,EAAE,gBAAgB;AAC5B,QAAQ,aAAa,EAAE,CAAC;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AACxC,QAAQ,EAAE,EAAE,eAAe;AAC3B,QAAQ,aAAa,EAAE,CAAC;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC;AAChD,QAAQ,EAAE,EAAE,uBAAuB;AACnC,QAAQ,aAAa,EAAE,CAAC;AACxB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,GAAG,MAAM;AACjB,KAAK,CAAC,CAAC;AACP,CAAC,CAAC;AACF,AAAO,SAAS,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,EAAE,EAAE;AACzD,IAAI,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,GAAG,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;AAC/F,IAAI,UAAU,GAAG,GAAG,cAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;AAClD,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC3C;AACA,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;AAC/B,QAAQ,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;AAChC,QAAQ,UAAU,EAAE,UAAU,IAAI,IAAI;AACtC,QAAQ,oBAAoB;AAC5B,QAAQ,sBAAsB,EAAE,CAAC;AACjC,QAAQ,mBAAmB,EAAE,IAAI;AACjC,QAAQ,YAAY,EAAE,IAAI,UAAU,EAAE;AACtC,QAAQ,EAAE;AACV,QAAQ,GAAG,MAAM;AACjB,KAAK;AACL;AACA,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAI,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU;AAChD,QAAQ,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,EAAE;AACjD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC,CAAC;AACP,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClD;AACA,IAAI,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;AACjD;AACA,IAAI,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AAC/C;AACA,IAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F;AACA,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,EAAE,IAAI,EAAE;AACjE,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxD,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC7D,QAAQ,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,EAAE;AAClD,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AACxD,QAAQ,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AAChD,QAAQ,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,kBAAkB;AACnE,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAClD;AACA;AACA;AACA;AACA,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC1G,gBAAgB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5F,gBAAgB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACjD,aAAa;AACb,YAAY,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI;AACrC,gBAAgB,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,GAAG,EAAE;AAChE;AACA;AACA,gBAAgB,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACvG,gBAAgB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,gBAAgB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC3F,gBAAgB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACjD,aAAa;AACb,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS,GAAG,CAAC;AACb,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;AACzC;AACA,YAAY,OAAO,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC;AAC1D,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAChE,CAAC;AACD,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;AAC7B,UAAU,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/LICENSE b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/LICENSE new file mode 100644 index 0000000..57bee5f --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/README.md b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/README.md new file mode 100644 index 0000000..25b8f03 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/README.md @@ -0,0 +1,65 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/types.ts.svg)](https://greenkeeper.io/) + + + +- [Usage](#usage) +- [Examples](#examples) + - [Get parameter and response data types for a REST API endpoint](#get-parameter-and-response-data-types-for-a-rest-api-endpoint) + - [Get response types from endpoint methods](#get-response-types-from-endpoint-methods) +- [Contributing](#contributing) +- [License](#license) + + + +## Usage + +See all exported types at https://octokit.github.io/types.ts + +## Examples + +### Get parameter and response data types for a REST API endpoint + +```ts +import { Endpoints } from "./src"; + +type listUserReposParameters = Endpoints["GET /repos/:owner/:repo"]["parameters"]; +type listUserReposResponse = Endpoints["GET /repos/:owner/:repo"]["response"]; + +async function listRepos( + options: listUserReposParameters +): listUserReposResponse["data"] { + // ... +} +``` + +### Get response types from endpoint methods + +```ts +import { + GetResponseTypeFromEndpointMethod, + GetResponseDataTypeFromEndpointMethod, +} from "@octokit/types"; +import { Octokit } from "@octokit/rest"; + +const octokit = new Octokit(); +type CreateLabelResponseType = GetResponseTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +type CreateLabelResponseDataType = GetResponseDataTypeFromEndpointMethod< + typeof octokit.issues.createLabel +>; +``` + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js new file mode 100644 index 0000000..4d0c34b --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js @@ -0,0 +1,8 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const VERSION = "4.0.1"; + +exports.VERSION = VERSION; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js.map b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js.map new file mode 100644 index 0000000..2d148d3 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":["VERSION"],"mappings":";;;;MAAaA,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/AuthInterface.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/AuthInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointDefaults.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointDefaults.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointInterface.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointOptions.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/EndpointOptions.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Fetch.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Fetch.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/GetResponseTypeFromEndpointMethod.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/OctokitResponse.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/OctokitResponse.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestHeaders.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestHeaders.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestInterface.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestMethod.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestMethod.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestOptions.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestOptions.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestParameters.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestParameters.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestRequestOptions.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/RequestRequestOptions.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/ResponseHeaders.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/ResponseHeaders.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Route.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Route.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Signal.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Signal.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/StrategyInterface.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/StrategyInterface.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Url.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/Url.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/VERSION.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/VERSION.js new file mode 100644 index 0000000..16decb4 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/VERSION.js @@ -0,0 +1 @@ +export const VERSION = "4.0.1"; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/generated/Endpoints.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/generated/Endpoints.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/index.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/index.js new file mode 100644 index 0000000..04b2163 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-src/index.js @@ -0,0 +1 @@ +export * from "./VERSION"; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/AuthInterface.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/AuthInterface.d.ts new file mode 100644 index 0000000..0c19b50 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/AuthInterface.d.ts @@ -0,0 +1,31 @@ +import { EndpointOptions } from "./EndpointOptions"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestInterface } from "./RequestInterface"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface { + (...args: AuthOptions): Promise; + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise>; + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, route: Route, parameters?: RequestParameters): Promise>; + }; +} diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts new file mode 100644 index 0000000..a2c2307 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointDefaults.d.ts @@ -0,0 +1,21 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestParameters } from "./RequestParameters"; +import { Url } from "./Url"; +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export declare type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews: string[]; + }; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts new file mode 100644 index 0000000..df585be --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointInterface.d.ts @@ -0,0 +1,65 @@ +import { EndpointDefaults } from "./EndpointDefaults"; +import { RequestOptions } from "./RequestOptions"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `url` unless it's set defaults. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): RequestOptions & Pick; + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, parameters?: P): (R extends keyof Endpoints ? Endpoints[R]["request"] : RequestOptions) & Pick; + /** + * Object with current default route and parameters + */ + DEFAULTS: D & EndpointDefaults; + /** + * Returns a new `endpoint` interface with new defaults + */ + defaults: (newDefaults: O) => EndpointInterface; + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: keyof Endpoints | R, parameters?: P): D & (R extends keyof Endpoints ? Endpoints[R]["request"] & Endpoints[R]["parameters"] : EndpointDefaults) & P; + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ +

(options: P): EndpointDefaults & D & P; + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): D & EndpointDefaults; + }; + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: O) => RequestOptions & Pick; +} diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts new file mode 100644 index 0000000..b1b91f1 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/EndpointOptions.d.ts @@ -0,0 +1,7 @@ +import { RequestMethod } from "./RequestMethod"; +import { Url } from "./Url"; +import { RequestParameters } from "./RequestParameters"; +export declare type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Fetch.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Fetch.d.ts new file mode 100644 index 0000000..cbbd5e8 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Fetch.d.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export declare type Fetch = any; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts new file mode 100644 index 0000000..70e1a8d --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/GetResponseTypeFromEndpointMethod.d.ts @@ -0,0 +1,5 @@ +declare type Unwrap = T extends Promise ? U : T; +declare type AnyFunction = (...args: any[]) => any; +export declare type GetResponseTypeFromEndpointMethod = Unwrap>; +export declare type GetResponseDataTypeFromEndpointMethod = Unwrap>["data"]; +export {}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts new file mode 100644 index 0000000..9a2dd7f --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/OctokitResponse.d.ts @@ -0,0 +1,17 @@ +import { ResponseHeaders } from "./ResponseHeaders"; +import { Url } from "./Url"; +export declare type OctokitResponse = { + headers: ResponseHeaders; + /** + * http response code + */ + status: number; + /** + * URL of response after all redirects + */ + url: Url; + /** + * This is the data you would see in https://developer.Octokit.com/v3/ + */ + data: T; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts new file mode 100644 index 0000000..ac5aae0 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestHeaders.d.ts @@ -0,0 +1,15 @@ +export declare type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestInterface.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestInterface.d.ts new file mode 100644 index 0000000..ef4d8d3 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestInterface.d.ts @@ -0,0 +1,34 @@ +import { EndpointInterface } from "./EndpointInterface"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; +import { Endpoints } from "./generated/Endpoints"; +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: O & { + method?: string; + } & ("url" extends keyof D ? { + url?: string; + } : { + url: string; + })): Promise>; + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: keyof Endpoints | R, options?: R extends keyof Endpoints ? Endpoints[R]["parameters"] & RequestParameters : RequestParameters): R extends keyof Endpoints ? Promise : Promise>; + /** + * Returns a new `request` with updated route and parameters + */ + defaults: (newDefaults: O) => RequestInterface; + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestMethod.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestMethod.d.ts new file mode 100644 index 0000000..e999c8d --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestMethod.d.ts @@ -0,0 +1,4 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export declare type RequestMethod = "DELETE" | "GET" | "HEAD" | "PATCH" | "POST" | "PUT"; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestOptions.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestOptions.d.ts new file mode 100644 index 0000000..97e2181 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestOptions.d.ts @@ -0,0 +1,14 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { Url } from "./Url"; +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export declare type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestParameters.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestParameters.d.ts new file mode 100644 index 0000000..692d193 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestParameters.d.ts @@ -0,0 +1,45 @@ +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { RequestHeaders } from "./RequestHeaders"; +import { Url } from "./Url"; +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export declare type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/:org`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/:org`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: unknown; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts new file mode 100644 index 0000000..4482a8a --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/RequestRequestOptions.d.ts @@ -0,0 +1,26 @@ +/// +import { Agent } from "http"; +import { Fetch } from "./Fetch"; +import { Signal } from "./Signal"; +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export declare type RequestRequestOptions = { + /** + * Node only. Useful for custom proxy, certificate, or dns lookup. + */ + agent?: Agent; + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). `options.request.signal` is recommended instead. + */ + timeout?: number; + [option: string]: any; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts new file mode 100644 index 0000000..c8fbe43 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/ResponseHeaders.d.ts @@ -0,0 +1,20 @@ +export declare type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Route.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Route.d.ts new file mode 100644 index 0000000..8079044 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Route.d.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/:org'`, `'PUT /orgs/:org'`, `GET https://example.com/foo/bar` + */ +export declare type Route = string; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Signal.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Signal.d.ts new file mode 100644 index 0000000..4ebcf24 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Signal.d.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export declare type Signal = any; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts new file mode 100644 index 0000000..405cbd2 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/StrategyInterface.d.ts @@ -0,0 +1,4 @@ +import { AuthInterface } from "./AuthInterface"; +export interface StrategyInterface { + (...args: StrategyOptions): AuthInterface; +} diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Url.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Url.d.ts new file mode 100644 index 0000000..acaad63 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/Url.d.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/:org'`, `https://example.com/foo/bar` + */ +export declare type Url = string; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/VERSION.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/VERSION.d.ts new file mode 100644 index 0000000..7d7580c --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/VERSION.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "4.0.1"; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts new file mode 100644 index 0000000..4bc9a8c --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/generated/Endpoints.d.ts @@ -0,0 +1,36955 @@ +import { OctokitResponse } from "../OctokitResponse"; +import { RequestHeaders } from "../RequestHeaders"; +import { RequestRequestOptions } from "../RequestRequestOptions"; +declare type RequiredPreview = { + mediaType: { + previews: [T, ...string[]]; + }; +}; +export interface Endpoints { + /** + * @see https://developer.github.com/v3/apps/#delete-an-installation + */ + "DELETE /app/installations/:installation_id": { + parameters: AppsDeleteInstallationEndpoint; + request: AppsDeleteInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#unsuspend-an-installation + */ + "DELETE /app/installations/:installation_id/suspended": { + parameters: AppsUnsuspendInstallationEndpoint; + request: AppsUnsuspendInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#delete-an-app-authorization + */ + "DELETE /applications/:client_id/grant": { + parameters: AppsDeleteAuthorizationEndpoint; + request: AppsDeleteAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#revoke-a-grant-for-an-application + */ + "DELETE /applications/:client_id/grants/:access_token": { + parameters: AppsRevokeGrantForApplicationEndpoint; + request: AppsRevokeGrantForApplicationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#delete-an-app-token + */ + "DELETE /applications/:client_id/token": { + parameters: AppsDeleteTokenEndpoint; + request: AppsDeleteTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#revoke-an-authorization-for-an-application + */ + "DELETE /applications/:client_id/tokens/:access_token": { + parameters: AppsRevokeAuthorizationForApplicationEndpoint; + request: AppsRevokeAuthorizationForApplicationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#delete-a-grant + */ + "DELETE /applications/grants/:grant_id": { + parameters: OauthAuthorizationsDeleteGrantEndpoint; + request: OauthAuthorizationsDeleteGrantRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#delete-an-authorization + */ + "DELETE /authorizations/:authorization_id": { + parameters: OauthAuthorizationsDeleteAuthorizationEndpoint; + request: OauthAuthorizationsDeleteAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#delete-a-gist + */ + "DELETE /gists/:gist_id": { + parameters: GistsDeleteEndpoint; + request: GistsDeleteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#delete-a-comment + */ + "DELETE /gists/:gist_id/comments/:comment_id": { + parameters: GistsDeleteCommentEndpoint; + request: GistsDeleteCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#unstar-a-gist + */ + "DELETE /gists/:gist_id/star": { + parameters: GistsUnstarEndpoint; + request: GistsUnstarRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#revoke-an-installation-token + */ + "DELETE /installation/token": { + parameters: AppsRevokeInstallationTokenEndpoint; + request: AppsRevokeInstallationTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#delete-a-thread-subscription + */ + "DELETE /notifications/threads/:thread_id/subscription": { + parameters: ActivityDeleteThreadSubscriptionEndpoint; + request: ActivityDeleteThreadSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#delete-a-self-hosted-runner-from-an-organization + */ + "DELETE /orgs/:org/actions/runners/:runner_id": { + parameters: ActionsDeleteSelfHostedRunnerFromOrgEndpoint; + request: ActionsDeleteSelfHostedRunnerFromOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#delete-an-organization-secret + */ + "DELETE /orgs/:org/actions/secrets/:secret_name": { + parameters: ActionsDeleteOrgSecretEndpoint; + request: ActionsDeleteOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#remove-selected-repository-from-an-organization-secret + */ + "DELETE /orgs/:org/actions/secrets/:secret_name/repositories/:repository_id": { + parameters: ActionsRemoveSelectedRepoFromOrgSecretEndpoint; + request: ActionsRemoveSelectedRepoFromOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#unblock-a-user + */ + "DELETE /orgs/:org/blocks/:username": { + parameters: OrgsUnblockUserEndpoint; + request: OrgsUnblockUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#remove-a-credential-authorization-for-an-organization + */ + "DELETE /orgs/:org/credential-authorizations/:credential_id": { + parameters: OrgsRemoveCredentialAuthorizationEndpoint; + request: OrgsRemoveCredentialAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#delete-a-hook + */ + "DELETE /orgs/:org/hooks/:hook_id": { + parameters: OrgsDeleteHookEndpoint; + request: OrgsDeleteHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/orgs/#remove-interaction-restrictions-for-an-organization + */ + "DELETE /orgs/:org/interaction-limits": { + parameters: InteractionsRemoveRestrictionsForOrgEndpoint; + request: InteractionsRemoveRestrictionsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#remove-a-member + */ + "DELETE /orgs/:org/members/:username": { + parameters: OrgsRemoveMemberEndpoint; + request: OrgsRemoveMemberRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#remove-organization-membership + */ + "DELETE /orgs/:org/memberships/:username": { + parameters: OrgsRemoveMembershipEndpoint; + request: OrgsRemoveMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#delete-an-organization-migration-archive + */ + "DELETE /orgs/:org/migrations/:migration_id/archive": { + parameters: MigrationsDeleteArchiveForOrgEndpoint; + request: MigrationsDeleteArchiveForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#unlock-an-organization-repository + */ + "DELETE /orgs/:org/migrations/:migration_id/repos/:repo_name/lock": { + parameters: MigrationsUnlockRepoForOrgEndpoint; + request: MigrationsUnlockRepoForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/outside_collaborators/#remove-outside-collaborator + */ + "DELETE /orgs/:org/outside_collaborators/:username": { + parameters: OrgsRemoveOutsideCollaboratorEndpoint; + request: OrgsRemoveOutsideCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#conceal-a-users-membership + */ + "DELETE /orgs/:org/public_members/:username": { + parameters: OrgsConcealMembershipEndpoint; + request: OrgsConcealMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#delete-team + */ + "DELETE /orgs/:org/teams/:team_slug": { + parameters: TeamsDeleteInOrgEndpoint; + request: TeamsDeleteInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#delete-a-discussion + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number": { + parameters: TeamsDeleteDiscussionInOrgEndpoint; + request: TeamsDeleteDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#delete-a-comment + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsDeleteDiscussionCommentInOrgEndpoint; + request: TeamsDeleteDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-team-discussion-comment-reaction + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id": { + parameters: ReactionsDeleteForTeamDiscussionCommentEndpoint; + request: ReactionsDeleteForTeamDiscussionCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-team-discussion-reaction + */ + "DELETE /orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions/:reaction_id": { + parameters: ReactionsDeleteForTeamDiscussionEndpoint; + request: ReactionsDeleteForTeamDiscussionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#remove-team-membership + */ + "DELETE /orgs/:org/teams/:team_slug/memberships/:username": { + parameters: TeamsRemoveMembershipInOrgEndpoint; + request: TeamsRemoveMembershipInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-project + */ + "DELETE /orgs/:org/teams/:team_slug/projects/:project_id": { + parameters: TeamsRemoveProjectInOrgEndpoint; + request: TeamsRemoveProjectInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-repository + */ + "DELETE /orgs/:org/teams/:team_slug/repos/:owner/:repo": { + parameters: TeamsRemoveRepoInOrgEndpoint; + request: TeamsRemoveRepoInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#delete-a-project + */ + "DELETE /projects/:project_id": { + parameters: ProjectsDeleteEndpoint; + request: ProjectsDeleteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#remove-user-as-a-collaborator + */ + "DELETE /projects/:project_id/collaborators/:username": { + parameters: ProjectsRemoveCollaboratorEndpoint; + request: ProjectsRemoveCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#delete-a-project-column + */ + "DELETE /projects/columns/:column_id": { + parameters: ProjectsDeleteColumnEndpoint; + request: ProjectsDeleteColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#delete-a-project-card + */ + "DELETE /projects/columns/cards/:card_id": { + parameters: ProjectsDeleteCardEndpoint; + request: ProjectsDeleteCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-a-reaction-legacy + */ + "DELETE /reactions/:reaction_id": { + parameters: ReactionsDeleteLegacyEndpoint; + request: ReactionsDeleteLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#delete-a-repository + */ + "DELETE /repos/:owner/:repo": { + parameters: ReposDeleteEndpoint; + request: ReposDeleteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#delete-an-artifact + */ + "DELETE /repos/:owner/:repo/actions/artifacts/:artifact_id": { + parameters: ActionsDeleteArtifactEndpoint; + request: ActionsDeleteArtifactRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#delete-a-self-hosted-runner-from-a-repository + */ + "DELETE /repos/:owner/:repo/actions/runners/:runner_id": { + parameters: ActionsDeleteSelfHostedRunnerFromRepoEndpoint; + request: ActionsDeleteSelfHostedRunnerFromRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#delete-workflow-run-logs + */ + "DELETE /repos/:owner/:repo/actions/runs/:run_id/logs": { + parameters: ActionsDeleteWorkflowRunLogsEndpoint; + request: ActionsDeleteWorkflowRunLogsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#delete-a-repository-secret + */ + "DELETE /repos/:owner/:repo/actions/secrets/:secret_name": { + parameters: ActionsDeleteRepoSecretEndpoint; + request: ActionsDeleteRepoSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#disable-automated-security-fixes + */ + "DELETE /repos/:owner/:repo/automated-security-fixes": { + parameters: ReposDisableAutomatedSecurityFixesEndpoint; + request: ReposDisableAutomatedSecurityFixesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-branch-protection + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection": { + parameters: ReposRemoveBranchProtectionEndpoint; + request: ReposRemoveBranchProtectionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-admin-enforcement-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/enforce_admins": { + parameters: ReposRemoveProtectedBranchAdminEnforcementEndpoint; + request: ReposRemoveProtectedBranchAdminEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-pull-request-review-enforcement-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": { + parameters: ReposRemoveProtectedBranchPullRequestReviewEnforcementEndpoint; + request: ReposRemoveProtectedBranchPullRequestReviewEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-required-signatures-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_signatures": { + parameters: ReposRemoveProtectedBranchRequiredSignaturesEndpoint; + request: ReposRemoveProtectedBranchRequiredSignaturesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-required-status-checks-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks": { + parameters: ReposRemoveProtectedBranchRequiredStatusChecksEndpoint; + request: ReposRemoveProtectedBranchRequiredStatusChecksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-required-status-checks-contexts-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposRemoveProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposRemoveProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions": { + parameters: ReposRemoveProtectedBranchRestrictionsEndpoint; + request: ReposRemoveProtectedBranchRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-app-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposRemoveProtectedBranchAppRestrictionsEndpoint; + request: ReposRemoveProtectedBranchAppRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-team-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposRemoveProtectedBranchTeamRestrictionsEndpoint; + request: ReposRemoveProtectedBranchTeamRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#remove-user-restrictions-of-protected-branch + */ + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposRemoveProtectedBranchUserRestrictionsEndpoint; + request: ReposRemoveProtectedBranchUserRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#remove-user-as-a-collaborator + */ + "DELETE /repos/:owner/:repo/collaborators/:username": { + parameters: ReposRemoveCollaboratorEndpoint; + request: ReposRemoveCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#delete-a-commit-comment + */ + "DELETE /repos/:owner/:repo/comments/:comment_id": { + parameters: ReposDeleteCommitCommentEndpoint; + request: ReposDeleteCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-a-commit-comment-reaction + */ + "DELETE /repos/:owner/:repo/comments/:comment_id/reactions/:reaction_id": { + parameters: ReactionsDeleteForCommitCommentEndpoint; + request: ReactionsDeleteForCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#delete-a-file + */ + "DELETE /repos/:owner/:repo/contents/:path": { + parameters: ReposDeleteFileEndpoint; + request: ReposDeleteFileRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#delete-a-deployment + */ + "DELETE /repos/:owner/:repo/deployments/:deployment_id": { + parameters: ReposDeleteDeploymentEndpoint; + request: ReposDeleteDeploymentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/downloads/#delete-a-download + */ + "DELETE /repos/:owner/:repo/downloads/:download_id": { + parameters: ReposDeleteDownloadEndpoint; + request: ReposDeleteDownloadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#delete-a-reference + */ + "DELETE /repos/:owner/:repo/git/refs/:ref": { + parameters: GitDeleteRefEndpoint; + request: GitDeleteRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#delete-a-hook + */ + "DELETE /repos/:owner/:repo/hooks/:hook_id": { + parameters: ReposDeleteHookEndpoint; + request: ReposDeleteHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#cancel-an-import + */ + "DELETE /repos/:owner/:repo/import": { + parameters: MigrationsCancelImportEndpoint; + request: MigrationsCancelImportRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/repos/#remove-interaction-restrictions-for-a-repository + */ + "DELETE /repos/:owner/:repo/interaction-limits": { + parameters: InteractionsRemoveRestrictionsForRepoEndpoint; + request: InteractionsRemoveRestrictionsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#delete-a-repository-invitation + */ + "DELETE /repos/:owner/:repo/invitations/:invitation_id": { + parameters: ReposDeleteInvitationEndpoint; + request: ReposDeleteInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#remove-assignees-from-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/assignees": { + parameters: IssuesRemoveAssigneesEndpoint; + request: IssuesRemoveAssigneesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#remove-all-labels-from-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesRemoveAllLabelsEndpoint; + request: IssuesRemoveAllLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#remove-a-label-from-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/labels/:name": { + parameters: IssuesRemoveLabelEndpoint; + request: IssuesRemoveLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#unlock-an-issue + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/lock": { + parameters: IssuesUnlockEndpoint; + request: IssuesUnlockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-an-issue-reaction + */ + "DELETE /repos/:owner/:repo/issues/:issue_number/reactions/:reaction_id": { + parameters: ReactionsDeleteForIssueEndpoint; + request: ReactionsDeleteForIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#delete-a-comment + */ + "DELETE /repos/:owner/:repo/issues/comments/:comment_id": { + parameters: IssuesDeleteCommentEndpoint; + request: IssuesDeleteCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-an-issue-comment-reaction + */ + "DELETE /repos/:owner/:repo/issues/comments/:comment_id/reactions/:reaction_id": { + parameters: ReactionsDeleteForIssueCommentEndpoint; + request: ReactionsDeleteForIssueCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#remove-a-deploy-key + */ + "DELETE /repos/:owner/:repo/keys/:key_id": { + parameters: ReposRemoveDeployKeyEndpoint; + request: ReposRemoveDeployKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#delete-a-label + */ + "DELETE /repos/:owner/:repo/labels/:name": { + parameters: IssuesDeleteLabelEndpoint; + request: IssuesDeleteLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#delete-a-milestone + */ + "DELETE /repos/:owner/:repo/milestones/:milestone_number": { + parameters: IssuesDeleteMilestoneEndpoint; + request: IssuesDeleteMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#disable-a-pages-site + */ + "DELETE /repos/:owner/:repo/pages": { + parameters: ReposDisablePagesSiteEndpoint; + request: ReposDisablePagesSiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/review_requests/#delete-a-review-request + */ + "DELETE /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": { + parameters: PullsDeleteReviewRequestEndpoint; + request: PullsDeleteReviewRequestRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#delete-a-pending-review + */ + "DELETE /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": { + parameters: PullsDeletePendingReviewEndpoint; + request: PullsDeletePendingReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#delete-a-comment + */ + "DELETE /repos/:owner/:repo/pulls/comments/:comment_id": { + parameters: PullsDeleteCommentEndpoint; + request: PullsDeleteCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#delete-a-pull-request-comment-reaction + */ + "DELETE /repos/:owner/:repo/pulls/comments/:comment_id/reactions/:reaction_id": { + parameters: ReactionsDeleteForPullRequestCommentEndpoint; + request: ReactionsDeleteForPullRequestCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#delete-a-release + */ + "DELETE /repos/:owner/:repo/releases/:release_id": { + parameters: ReposDeleteReleaseEndpoint; + request: ReposDeleteReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#delete-a-release-asset + */ + "DELETE /repos/:owner/:repo/releases/assets/:asset_id": { + parameters: ReposDeleteReleaseAssetEndpoint; + request: ReposDeleteReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#delete-a-repository-subscription + */ + "DELETE /repos/:owner/:repo/subscription": { + parameters: ActivityDeleteRepoSubscriptionEndpoint; + request: ActivityDeleteRepoSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#disable-vulnerability-alerts + */ + "DELETE /repos/:owner/:repo/vulnerability-alerts": { + parameters: ReposDisableVulnerabilityAlertsEndpoint; + request: ReposDisableVulnerabilityAlertsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#remove-a-user-from-the-organization + */ + "DELETE /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimRemoveUserFromOrgEndpoint; + request: ScimRemoveUserFromOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#delete-team-legacy + */ + "DELETE /teams/:team_id": { + parameters: TeamsDeleteLegacyEndpoint; + request: TeamsDeleteLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#delete-a-discussion-legacy + */ + "DELETE /teams/:team_id/discussions/:discussion_number": { + parameters: TeamsDeleteDiscussionLegacyEndpoint; + request: TeamsDeleteDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#delete-a-comment-legacy + */ + "DELETE /teams/:team_id/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsDeleteDiscussionCommentLegacyEndpoint; + request: TeamsDeleteDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#remove-team-member-legacy + */ + "DELETE /teams/:team_id/members/:username": { + parameters: TeamsRemoveMemberLegacyEndpoint; + request: TeamsRemoveMemberLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#remove-team-membership-legacy + */ + "DELETE /teams/:team_id/memberships/:username": { + parameters: TeamsRemoveMembershipLegacyEndpoint; + request: TeamsRemoveMembershipLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-project-legacy + */ + "DELETE /teams/:team_id/projects/:project_id": { + parameters: TeamsRemoveProjectLegacyEndpoint; + request: TeamsRemoveProjectLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#remove-team-repository-legacy + */ + "DELETE /teams/:team_id/repos/:owner/:repo": { + parameters: TeamsRemoveRepoLegacyEndpoint; + request: TeamsRemoveRepoLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#unblock-a-user + */ + "DELETE /user/blocks/:username": { + parameters: UsersUnblockEndpoint; + request: UsersUnblockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#delete-email-addresses + */ + "DELETE /user/emails": { + parameters: UsersDeleteEmailsEndpoint; + request: UsersDeleteEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#unfollow-a-user + */ + "DELETE /user/following/:username": { + parameters: UsersUnfollowEndpoint; + request: UsersUnfollowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#delete-a-gpg-key + */ + "DELETE /user/gpg_keys/:gpg_key_id": { + parameters: UsersDeleteGpgKeyEndpoint; + request: UsersDeleteGpgKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#remove-repository-from-installation + */ + "DELETE /user/installations/:installation_id/repositories/:repository_id": { + parameters: AppsRemoveRepoFromInstallationEndpoint; + request: AppsRemoveRepoFromInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#delete-a-public-key + */ + "DELETE /user/keys/:key_id": { + parameters: UsersDeletePublicKeyEndpoint; + request: UsersDeletePublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#delete-a-user-migration-archive + */ + "DELETE /user/migrations/:migration_id/archive": { + parameters: MigrationsDeleteArchiveForAuthenticatedUserEndpoint; + request: MigrationsDeleteArchiveForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#unlock-a-user-repository + */ + "DELETE /user/migrations/:migration_id/repos/:repo_name/lock": { + parameters: MigrationsUnlockRepoForAuthenticatedUserEndpoint; + request: MigrationsUnlockRepoForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#decline-a-repository-invitation + */ + "DELETE /user/repository_invitations/:invitation_id": { + parameters: ReposDeclineInvitationEndpoint; + request: ReposDeclineInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#unstar-a-repository-for-the-authenticated-user + */ + "DELETE /user/starred/:owner/:repo": { + parameters: ActivityUnstarRepoForAuthenticatedUserEndpoint; + request: ActivityUnstarRepoForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-the-authenticated-github-app + */ + "GET /app": { + parameters: AppsGetAuthenticatedEndpoint; + request: AppsGetAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#list-installations + */ + "GET /app/installations": { + parameters: AppsListInstallationsEndpoint; + request: AppsListInstallationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-an-installation + */ + "GET /app/installations/:installation_id": { + parameters: AppsGetInstallationEndpoint; + request: AppsGetInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#check-an-authorization + */ + "GET /applications/:client_id/tokens/:access_token": { + parameters: AppsCheckAuthorizationEndpoint; + request: AppsCheckAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#list-your-grants + */ + "GET /applications/grants": { + parameters: OauthAuthorizationsListGrantsEndpoint; + request: OauthAuthorizationsListGrantsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-a-single-grant + */ + "GET /applications/grants/:grant_id": { + parameters: OauthAuthorizationsGetGrantEndpoint; + request: OauthAuthorizationsGetGrantRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-a-single-github-app + */ + "GET /apps/:app_slug": { + parameters: AppsGetBySlugEndpoint; + request: AppsGetBySlugRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#list-your-authorizations + */ + "GET /authorizations": { + parameters: OauthAuthorizationsListAuthorizationsEndpoint; + request: OauthAuthorizationsListAuthorizationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-a-single-authorization + */ + "GET /authorizations/:authorization_id": { + parameters: OauthAuthorizationsGetAuthorizationEndpoint; + request: OauthAuthorizationsGetAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/codes_of_conduct/#list-all-codes-of-conduct + */ + "GET /codes_of_conduct": { + parameters: CodesOfConductGetAllCodesOfConductEndpoint; + request: CodesOfConductGetAllCodesOfConductRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/codes_of_conduct/#get-an-individual-code-of-conduct + */ + "GET /codes_of_conduct/:key": { + parameters: CodesOfConductGetConductCodeEndpoint; + request: CodesOfConductGetConductCodeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/emojis/#emojis + */ + "GET /emojis": { + parameters: EmojisGetEndpoint; + request: EmojisGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events + */ + "GET /events": { + parameters: ActivityListPublicEventsEndpoint; + request: ActivityListPublicEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/feeds/#get-feeds + */ + "GET /feeds": { + parameters: ActivityGetFeedsEndpoint; + request: ActivityGetFeedsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gists-for-the-authenticated-user + */ + "GET /gists": { + parameters: GistsListEndpoint; + request: GistsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#get-a-gist + */ + "GET /gists/:gist_id": { + parameters: GistsGetEndpoint; + request: GistsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist + */ + "GET /gists/:gist_id/:sha": { + parameters: GistsGetRevisionEndpoint; + request: GistsGetRevisionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist + */ + "GET /gists/:gist_id/comments": { + parameters: GistsListCommentsEndpoint; + request: GistsListCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#get-a-single-comment + */ + "GET /gists/:gist_id/comments/:comment_id": { + parameters: GistsGetCommentEndpoint; + request: GistsGetCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gist-commits + */ + "GET /gists/:gist_id/commits": { + parameters: GistsListCommitsEndpoint; + request: GistsListCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gist-forks + */ + "GET /gists/:gist_id/forks": { + parameters: GistsListForksEndpoint; + request: GistsListForksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#check-if-a-gist-is-starred + */ + "GET /gists/:gist_id/star": { + parameters: GistsCheckIsStarredEndpoint; + request: GistsCheckIsStarredRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-public-gists + */ + "GET /gists/public": { + parameters: GistsListPublicEndpoint; + request: GistsListPublicRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-starred-gists + */ + "GET /gists/starred": { + parameters: GistsListStarredEndpoint; + request: GistsListStarredRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gitignore/#listing-available-templates + */ + "GET /gitignore/templates": { + parameters: GitignoreListTemplatesEndpoint; + request: GitignoreListTemplatesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gitignore/#get-a-single-template + */ + "GET /gitignore/templates/:name": { + parameters: GitignoreGetTemplateEndpoint; + request: GitignoreGetTemplateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#list-repositories + */ + "GET /installation/repositories": { + parameters: AppsListReposEndpoint; + request: AppsListReposRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-issues-assigned-to-the-authenticated-user + */ + "GET /issues": { + parameters: IssuesListEndpoint; + request: IssuesListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/licenses/#list-commonly-used-licenses + */ + "GET /licenses": { + parameters: LicensesListCommonlyUsedEndpoint; + request: LicensesListCommonlyUsedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/licenses/#get-an-individual-license + */ + "GET /licenses/:license": { + parameters: LicensesGetEndpoint; + request: LicensesGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#get-a-subscription-plan-for-an-account + */ + "GET /marketplace_listing/accounts/:account_id": { + parameters: AppsGetSubscriptionPlanForAccountEndpoint; + request: AppsGetSubscriptionPlanForAccountRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-plans + */ + "GET /marketplace_listing/plans": { + parameters: AppsListPlansEndpoint; + request: AppsListPlansRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-accounts-for-a-plan + */ + "GET /marketplace_listing/plans/:plan_id/accounts": { + parameters: AppsListAccountsForPlanEndpoint; + request: AppsListAccountsForPlanRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#get-a-subscription-plan-for-an-account-stubbed + */ + "GET /marketplace_listing/stubbed/accounts/:account_id": { + parameters: AppsGetSubscriptionPlanForAccountStubbedEndpoint; + request: AppsGetSubscriptionPlanForAccountStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-plans-stubbed + */ + "GET /marketplace_listing/stubbed/plans": { + parameters: AppsListPlansStubbedEndpoint; + request: AppsListPlansStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-accounts-for-a-plan-stubbed + */ + "GET /marketplace_listing/stubbed/plans/:plan_id/accounts": { + parameters: AppsListAccountsForPlanStubbedEndpoint; + request: AppsListAccountsForPlanStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/meta/#meta + */ + "GET /meta": { + parameters: MetaGetEndpoint; + request: MetaGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories + */ + "GET /networks/:owner/:repo/events": { + parameters: ActivityListPublicEventsForRepoNetworkEndpoint; + request: ActivityListPublicEventsForRepoNetworkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#list-notifications-for-the-authenticated-user + */ + "GET /notifications": { + parameters: ActivityListNotificationsForAuthenticatedUserEndpoint; + request: ActivityListNotificationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#get-a-thread + */ + "GET /notifications/threads/:thread_id": { + parameters: ActivityGetThreadEndpoint; + request: ActivityGetThreadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#get-a-thread-subscription-for-the-authenticated-user + */ + "GET /notifications/threads/:thread_id/subscription": { + parameters: ActivityGetThreadSubscriptionForAuthenticatedUserEndpoint; + request: ActivityGetThreadSubscriptionForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-all-organizations + */ + "GET /organizations": { + parameters: OrgsListEndpoint; + request: OrgsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#get-an-organization + */ + "GET /orgs/:org": { + parameters: OrgsGetEndpoint; + request: OrgsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-self-hosted-runners-for-an-organization + */ + "GET /orgs/:org/actions/runners": { + parameters: ActionsListSelfHostedRunnersForOrgEndpoint; + request: ActionsListSelfHostedRunnersForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#get-a-self-hosted-runner-for-an-organization + */ + "GET /orgs/:org/actions/runners/:runner_id": { + parameters: ActionsGetSelfHostedRunnerForOrgEndpoint; + request: ActionsGetSelfHostedRunnerForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-runner-applications-for-an-organization + */ + "GET /orgs/:org/actions/runners/downloads": { + parameters: ActionsListRunnerApplicationsForOrgEndpoint; + request: ActionsListRunnerApplicationsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#list-organization-secrets + */ + "GET /orgs/:org/actions/secrets": { + parameters: ActionsListOrgSecretsEndpoint; + request: ActionsListOrgSecretsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-an-organization-secret + */ + "GET /orgs/:org/actions/secrets/:secret_name": { + parameters: ActionsGetOrgSecretEndpoint; + request: ActionsGetOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#list-selected-repositories-for-an-organization-secret + */ + "GET /orgs/:org/actions/secrets/:secret_name/repositories": { + parameters: ActionsListSelectedReposForOrgSecretEndpoint; + request: ActionsListSelectedReposForOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-an-organization-public-key + */ + "GET /orgs/:org/actions/secrets/public-key": { + parameters: ActionsGetOrgPublicKeyEndpoint; + request: ActionsGetOrgPublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#list-blocked-users + */ + "GET /orgs/:org/blocks": { + parameters: OrgsListBlockedUsersEndpoint; + request: OrgsListBlockedUsersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#check-whether-a-user-is-blocked-from-an-organization + */ + "GET /orgs/:org/blocks/:username": { + parameters: OrgsCheckBlockedUserEndpoint; + request: OrgsCheckBlockedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-credential-authorizations-for-an-organization + */ + "GET /orgs/:org/credential-authorizations": { + parameters: OrgsListCredentialAuthorizationsEndpoint; + request: OrgsListCredentialAuthorizationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-organization-events + */ + "GET /orgs/:org/events": { + parameters: ActivityListPublicOrgEventsEndpoint; + request: ActivityListPublicOrgEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#list-hooks + */ + "GET /orgs/:org/hooks": { + parameters: OrgsListHooksEndpoint; + request: OrgsListHooksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#get-single-hook + */ + "GET /orgs/:org/hooks/:hook_id": { + parameters: OrgsGetHookEndpoint; + request: OrgsGetHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-an-organization-installation + */ + "GET /orgs/:org/installation": { + parameters: AppsGetOrgInstallationEndpoint; + request: AppsGetOrgInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-installations-for-an-organization + */ + "GET /orgs/:org/installations": { + parameters: OrgsListInstallationsEndpoint; + request: OrgsListInstallationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/orgs/#get-interaction-restrictions-for-an-organization + */ + "GET /orgs/:org/interaction-limits": { + parameters: InteractionsGetRestrictionsForOrgEndpoint; + request: InteractionsGetRestrictionsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#list-pending-organization-invitations + */ + "GET /orgs/:org/invitations": { + parameters: OrgsListPendingInvitationsEndpoint; + request: OrgsListPendingInvitationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#list-organization-invitation-teams + */ + "GET /orgs/:org/invitations/:invitation_id/teams": { + parameters: OrgsListInvitationTeamsEndpoint; + request: OrgsListInvitationTeamsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-organization-issues-assigned-to-the-authenticated-user + */ + "GET /orgs/:org/issues": { + parameters: IssuesListForOrgEndpoint; + request: IssuesListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#members-list + */ + "GET /orgs/:org/members": { + parameters: OrgsListMembersEndpoint; + request: OrgsListMembersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#check-membership + */ + "GET /orgs/:org/members/:username": { + parameters: OrgsCheckMembershipEndpoint; + request: OrgsCheckMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#get-organization-membership + */ + "GET /orgs/:org/memberships/:username": { + parameters: OrgsGetMembershipEndpoint; + request: OrgsGetMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#list-organization-migrations + */ + "GET /orgs/:org/migrations": { + parameters: MigrationsListForOrgEndpoint; + request: MigrationsListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#get-the-status-of-an-organization-migration + */ + "GET /orgs/:org/migrations/:migration_id": { + parameters: MigrationsGetStatusForOrgEndpoint; + request: MigrationsGetStatusForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#download-an-organization-migration-archive + */ + "GET /orgs/:org/migrations/:migration_id/archive": { + parameters: MigrationsDownloadArchiveForOrgEndpoint; + request: MigrationsDownloadArchiveForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#list-repositories-in-an-organization-migration + */ + "GET /orgs/:org/migrations/:migration_id/repositories": { + parameters: MigrationsListReposForOrgEndpoint; + request: MigrationsListReposForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/outside_collaborators/#list-outside-collaborators + */ + "GET /orgs/:org/outside_collaborators": { + parameters: OrgsListOutsideCollaboratorsEndpoint; + request: OrgsListOutsideCollaboratorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#list-organization-projects + */ + "GET /orgs/:org/projects": { + parameters: ProjectsListForOrgEndpoint; + request: ProjectsListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#public-members-list + */ + "GET /orgs/:org/public_members": { + parameters: OrgsListPublicMembersEndpoint; + request: OrgsListPublicMembersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#check-public-membership + */ + "GET /orgs/:org/public_members/:username": { + parameters: OrgsCheckPublicMembershipEndpoint; + request: OrgsCheckPublicMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-organization-repositories + */ + "GET /orgs/:org/repos": { + parameters: ReposListForOrgEndpoint; + request: ReposListForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#list-idp-groups-in-an-organization + */ + "GET /orgs/:org/team-sync/groups": { + parameters: TeamsListIdPGroupsForOrgEndpoint; + request: TeamsListIdPGroupsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-teams + */ + "GET /orgs/:org/teams": { + parameters: TeamsListEndpoint; + request: TeamsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#get-team-by-name + */ + "GET /orgs/:org/teams/:team_slug": { + parameters: TeamsGetByNameEndpoint; + request: TeamsGetByNameRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#list-discussions + */ + "GET /orgs/:org/teams/:team_slug/discussions": { + parameters: TeamsListDiscussionsInOrgEndpoint; + request: TeamsListDiscussionsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#get-a-single-discussion + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number": { + parameters: TeamsGetDiscussionInOrgEndpoint; + request: TeamsGetDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#list-comments + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments": { + parameters: TeamsListDiscussionCommentsInOrgEndpoint; + request: TeamsListDiscussionCommentsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#get-a-single-comment + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsGetDiscussionCommentInOrgEndpoint; + request: TeamsGetDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsListForTeamDiscussionCommentInOrgEndpoint; + request: ReactionsListForTeamDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion + */ + "GET /orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions": { + parameters: ReactionsListForTeamDiscussionInOrgEndpoint; + request: ReactionsListForTeamDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-pending-team-invitations + */ + "GET /orgs/:org/teams/:team_slug/invitations": { + parameters: TeamsListPendingInvitationsInOrgEndpoint; + request: TeamsListPendingInvitationsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-team-members + */ + "GET /orgs/:org/teams/:team_slug/members": { + parameters: TeamsListMembersInOrgEndpoint; + request: TeamsListMembersInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#get-team-membership + */ + "GET /orgs/:org/teams/:team_slug/memberships/:username": { + parameters: TeamsGetMembershipInOrgEndpoint; + request: TeamsGetMembershipInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-projects + */ + "GET /orgs/:org/teams/:team_slug/projects": { + parameters: TeamsListProjectsInOrgEndpoint; + request: TeamsListProjectsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#review-a-team-project + */ + "GET /orgs/:org/teams/:team_slug/projects/:project_id": { + parameters: TeamsReviewProjectInOrgEndpoint; + request: TeamsReviewProjectInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-repos + */ + "GET /orgs/:org/teams/:team_slug/repos": { + parameters: TeamsListReposInOrgEndpoint; + request: TeamsListReposInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#check-if-a-team-manages-a-repository + */ + "GET /orgs/:org/teams/:team_slug/repos/:owner/:repo": { + parameters: TeamsCheckManagesRepoInOrgEndpoint; + request: TeamsCheckManagesRepoInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#list-idp-groups-for-a-team + */ + "GET /orgs/:org/teams/:team_slug/team-sync/group-mappings": { + parameters: TeamsListIdPGroupsInOrgEndpoint; + request: TeamsListIdPGroupsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-child-teams + */ + "GET /orgs/:org/teams/:team_slug/teams": { + parameters: TeamsListChildInOrgEndpoint; + request: TeamsListChildInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#get-a-project + */ + "GET /projects/:project_id": { + parameters: ProjectsGetEndpoint; + request: ProjectsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#list-collaborators + */ + "GET /projects/:project_id/collaborators": { + parameters: ProjectsListCollaboratorsEndpoint; + request: ProjectsListCollaboratorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#review-a-users-permission-level + */ + "GET /projects/:project_id/collaborators/:username/permission": { + parameters: ProjectsReviewUserPermissionLevelEndpoint; + request: ProjectsReviewUserPermissionLevelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#list-project-columns + */ + "GET /projects/:project_id/columns": { + parameters: ProjectsListColumnsEndpoint; + request: ProjectsListColumnsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#get-a-project-column + */ + "GET /projects/columns/:column_id": { + parameters: ProjectsGetColumnEndpoint; + request: ProjectsGetColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#list-project-cards + */ + "GET /projects/columns/:column_id/cards": { + parameters: ProjectsListCardsEndpoint; + request: ProjectsListCardsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#get-a-project-card + */ + "GET /projects/columns/cards/:card_id": { + parameters: ProjectsGetCardEndpoint; + request: ProjectsGetCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/rate_limit/#get-your-current-rate-limit-status + */ + "GET /rate_limit": { + parameters: RateLimitGetEndpoint; + request: RateLimitGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#get-a-repository + */ + "GET /repos/:owner/:repo": { + parameters: ReposGetEndpoint; + request: ReposGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#get-archive-link + */ + "GET /repos/:owner/:repo/:archive_format/:ref": { + parameters: ReposGetArchiveLinkEndpoint; + request: ReposGetArchiveLinkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#list-artifacts-for-a-repository + */ + "GET /repos/:owner/:repo/actions/artifacts": { + parameters: ActionsListArtifactsForRepoEndpoint; + request: ActionsListArtifactsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#get-an-artifact + */ + "GET /repos/:owner/:repo/actions/artifacts/:artifact_id": { + parameters: ActionsGetArtifactEndpoint; + request: ActionsGetArtifactRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#download-an-artifact + */ + "GET /repos/:owner/:repo/actions/artifacts/:artifact_id/:archive_format": { + parameters: ActionsDownloadArtifactEndpoint; + request: ActionsDownloadArtifactRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-jobs/#get-a-workflow-job + */ + "GET /repos/:owner/:repo/actions/jobs/:job_id": { + parameters: ActionsGetWorkflowJobEndpoint; + request: ActionsGetWorkflowJobRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-jobs/#download-workflow-job-logs + */ + "GET /repos/:owner/:repo/actions/jobs/:job_id/logs": { + parameters: ActionsDownloadWorkflowJobLogsEndpoint; + request: ActionsDownloadWorkflowJobLogsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-self-hosted-runners-for-a-repository + */ + "GET /repos/:owner/:repo/actions/runners": { + parameters: ActionsListSelfHostedRunnersForRepoEndpoint; + request: ActionsListSelfHostedRunnersForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#get-a-self-hosted-runner-for-a-repository + */ + "GET /repos/:owner/:repo/actions/runners/:runner_id": { + parameters: ActionsGetSelfHostedRunnerForRepoEndpoint; + request: ActionsGetSelfHostedRunnerForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#list-runner-applications-for-a-repository + */ + "GET /repos/:owner/:repo/actions/runners/downloads": { + parameters: ActionsListRunnerApplicationsForRepoEndpoint; + request: ActionsListRunnerApplicationsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#list-repository-workflow-runs + */ + "GET /repos/:owner/:repo/actions/runs": { + parameters: ActionsListRepoWorkflowRunsEndpoint; + request: ActionsListRepoWorkflowRunsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#get-a-workflow-run + */ + "GET /repos/:owner/:repo/actions/runs/:run_id": { + parameters: ActionsGetWorkflowRunEndpoint; + request: ActionsGetWorkflowRunRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/artifacts/#list-workflow-run-artifacts + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/artifacts": { + parameters: ActionsListWorkflowRunArtifactsEndpoint; + request: ActionsListWorkflowRunArtifactsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-jobs/#list-jobs-for-a-workflow-run + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/jobs": { + parameters: ActionsListJobsForWorkflowRunEndpoint; + request: ActionsListJobsForWorkflowRunRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#download-workflow-run-logs + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/logs": { + parameters: ActionsDownloadWorkflowRunLogsEndpoint; + request: ActionsDownloadWorkflowRunLogsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#get-workflow-run-usage + */ + "GET /repos/:owner/:repo/actions/runs/:run_id/timing": { + parameters: ActionsGetWorkflowRunUsageEndpoint; + request: ActionsGetWorkflowRunUsageRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#list-repository-secrets + */ + "GET /repos/:owner/:repo/actions/secrets": { + parameters: ActionsListRepoSecretsEndpoint; + request: ActionsListRepoSecretsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-a-repository-secret + */ + "GET /repos/:owner/:repo/actions/secrets/:secret_name": { + parameters: ActionsGetRepoSecretEndpoint; + request: ActionsGetRepoSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#get-a-repository-public-key + */ + "GET /repos/:owner/:repo/actions/secrets/public-key": { + parameters: ActionsGetRepoPublicKeyEndpoint; + request: ActionsGetRepoPublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflows/#list-repository-workflows + */ + "GET /repos/:owner/:repo/actions/workflows": { + parameters: ActionsListRepoWorkflowsEndpoint; + request: ActionsListRepoWorkflowsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflows/#get-a-workflow + */ + "GET /repos/:owner/:repo/actions/workflows/:workflow_id": { + parameters: ActionsGetWorkflowEndpoint; + request: ActionsGetWorkflowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs + */ + "GET /repos/:owner/:repo/actions/workflows/:workflow_id/runs": { + parameters: ActionsListWorkflowRunsEndpoint; + request: ActionsListWorkflowRunsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflows/#get-workflow-usage + */ + "GET /repos/:owner/:repo/actions/workflows/:workflow_id/timing": { + parameters: ActionsGetWorkflowUsageEndpoint; + request: ActionsGetWorkflowUsageRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#list-assignees + */ + "GET /repos/:owner/:repo/assignees": { + parameters: IssuesListAssigneesEndpoint; + request: IssuesListAssigneesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#check-assignee + */ + "GET /repos/:owner/:repo/assignees/:assignee": { + parameters: IssuesCheckAssigneeEndpoint; + request: IssuesCheckAssigneeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-branches + */ + "GET /repos/:owner/:repo/branches": { + parameters: ReposListBranchesEndpoint; + request: ReposListBranchesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-branch + */ + "GET /repos/:owner/:repo/branches/:branch": { + parameters: ReposGetBranchEndpoint; + request: ReposGetBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-branch-protection + */ + "GET /repos/:owner/:repo/branches/:branch/protection": { + parameters: ReposGetBranchProtectionEndpoint; + request: ReposGetBranchProtectionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-admin-enforcement-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/enforce_admins": { + parameters: ReposGetProtectedBranchAdminEnforcementEndpoint; + request: ReposGetProtectedBranchAdminEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-pull-request-review-enforcement-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": { + parameters: ReposGetProtectedBranchPullRequestReviewEnforcementEndpoint; + request: ReposGetProtectedBranchPullRequestReviewEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-required-signatures-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_signatures": { + parameters: ReposGetProtectedBranchRequiredSignaturesEndpoint; + request: ReposGetProtectedBranchRequiredSignaturesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-required-status-checks-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks": { + parameters: ReposGetProtectedBranchRequiredStatusChecksEndpoint; + request: ReposGetProtectedBranchRequiredStatusChecksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-required-status-checks-contexts-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposListProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposListProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#get-restrictions-of-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions": { + parameters: ReposGetProtectedBranchRestrictionsEndpoint; + request: ReposGetProtectedBranchRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-apps-with-access-to-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposGetAppsWithAccessToProtectedBranchEndpoint; + request: ReposGetAppsWithAccessToProtectedBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-teams-with-access-to-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposGetTeamsWithAccessToProtectedBranchEndpoint; + request: ReposGetTeamsWithAccessToProtectedBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#list-users-with-access-to-protected-branch + */ + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposGetUsersWithAccessToProtectedBranchEndpoint; + request: ReposGetUsersWithAccessToProtectedBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#get-a-check-run + */ + "GET /repos/:owner/:repo/check-runs/:check_run_id": { + parameters: ChecksGetEndpoint; + request: ChecksGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#list-check-run-annotations + */ + "GET /repos/:owner/:repo/check-runs/:check_run_id/annotations": { + parameters: ChecksListAnnotationsEndpoint; + request: ChecksListAnnotationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#get-a-check-suite + */ + "GET /repos/:owner/:repo/check-suites/:check_suite_id": { + parameters: ChecksGetSuiteEndpoint; + request: ChecksGetSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#list-check-runs-in-a-check-suite + */ + "GET /repos/:owner/:repo/check-suites/:check_suite_id/check-runs": { + parameters: ChecksListForSuiteEndpoint; + request: ChecksListForSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/code-scanning/#list-code-scanning-alerts-for-a-repository + */ + "GET /repos/:owner/:repo/code-scanning/alerts": { + parameters: CodeScanningListAlertsForRepoEndpoint; + request: CodeScanningListAlertsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/code-scanning/#get-a-code-scanning-alert + */ + "GET /repos/:owner/:repo/code-scanning/alerts/:alert_id": { + parameters: CodeScanningGetAlertEndpoint; + request: CodeScanningGetAlertRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#list-collaborators + */ + "GET /repos/:owner/:repo/collaborators": { + parameters: ReposListCollaboratorsEndpoint; + request: ReposListCollaboratorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#check-if-a-user-is-a-collaborator + */ + "GET /repos/:owner/:repo/collaborators/:username": { + parameters: ReposCheckCollaboratorEndpoint; + request: ReposCheckCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level + */ + "GET /repos/:owner/:repo/collaborators/:username/permission": { + parameters: ReposGetCollaboratorPermissionLevelEndpoint; + request: ReposGetCollaboratorPermissionLevelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#list-commit-comments-for-a-repository + */ + "GET /repos/:owner/:repo/comments": { + parameters: ReposListCommitCommentsEndpoint; + request: ReposListCommitCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#get-a-single-commit-comment + */ + "GET /repos/:owner/:repo/comments/:comment_id": { + parameters: ReposGetCommitCommentEndpoint; + request: ReposGetCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-commit-comment + */ + "GET /repos/:owner/:repo/comments/:comment_id/reactions": { + parameters: ReactionsListForCommitCommentEndpoint; + request: ReactionsListForCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository + */ + "GET /repos/:owner/:repo/commits": { + parameters: ReposListCommitsEndpoint; + request: ReposListCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#list-branches-for-head-commit + */ + "GET /repos/:owner/:repo/commits/:commit_sha/branches-where-head": { + parameters: ReposListBranchesForHeadCommitEndpoint; + request: ReposListBranchesForHeadCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#list-comments-for-a-single-commit + */ + "GET /repos/:owner/:repo/commits/:commit_sha/comments": { + parameters: ReposListCommentsForCommitEndpoint; + request: ReposListCommentsForCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#list-pull-requests-associated-with-commit + */ + "GET /repos/:owner/:repo/commits/:commit_sha/pulls": { + parameters: ReposListPullRequestsAssociatedWithCommitEndpoint; + request: ReposListPullRequestsAssociatedWithCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit + */ + "GET /repos/:owner/:repo/commits/:ref": { + parameters: ReposGetCommitEndpoint; + request: ReposGetCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#list-check-runs-for-a-git-reference + */ + "GET /repos/:owner/:repo/commits/:ref/check-runs": { + parameters: ChecksListForRefEndpoint; + request: ChecksListForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#list-check-suites-for-a-git-reference + */ + "GET /repos/:owner/:repo/commits/:ref/check-suites": { + parameters: ChecksListSuitesForRefEndpoint; + request: ChecksListSuitesForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ + "GET /repos/:owner/:repo/commits/:ref/status": { + parameters: ReposGetCombinedStatusForRefEndpoint; + request: ReposGetCombinedStatusForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref + */ + "GET /repos/:owner/:repo/commits/:ref/statuses": { + parameters: ReposListStatusesForRefEndpoint; + request: ReposListStatusesForRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/codes_of_conduct/#get-the-contents-of-a-repositorys-code-of-conduct + */ + "GET /repos/:owner/:repo/community/code_of_conduct": { + parameters: CodesOfConductGetForRepoEndpoint; + request: CodesOfConductGetForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/community/#retrieve-community-profile-metrics + */ + "GET /repos/:owner/:repo/community/profile": { + parameters: ReposRetrieveCommunityProfileMetricsEndpoint; + request: ReposRetrieveCommunityProfileMetricsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/commits/#compare-two-commits + */ + "GET /repos/:owner/:repo/compare/:base...:head": { + parameters: ReposCompareCommitsEndpoint; + request: ReposCompareCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#get-contents + */ + "GET /repos/:owner/:repo/contents/:path": { + parameters: ReposGetContentsEndpoint; + request: ReposGetContentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-contributors + */ + "GET /repos/:owner/:repo/contributors": { + parameters: ReposListContributorsEndpoint; + request: ReposListContributorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#list-deployments + */ + "GET /repos/:owner/:repo/deployments": { + parameters: ReposListDeploymentsEndpoint; + request: ReposListDeploymentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#get-a-single-deployment + */ + "GET /repos/:owner/:repo/deployments/:deployment_id": { + parameters: ReposGetDeploymentEndpoint; + request: ReposGetDeploymentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#list-deployment-statuses + */ + "GET /repos/:owner/:repo/deployments/:deployment_id/statuses": { + parameters: ReposListDeploymentStatusesEndpoint; + request: ReposListDeploymentStatusesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#get-a-single-deployment-status + */ + "GET /repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id": { + parameters: ReposGetDeploymentStatusEndpoint; + request: ReposGetDeploymentStatusRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/downloads/#list-downloads-for-a-repository + */ + "GET /repos/:owner/:repo/downloads": { + parameters: ReposListDownloadsEndpoint; + request: ReposListDownloadsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/downloads/#get-a-single-download + */ + "GET /repos/:owner/:repo/downloads/:download_id": { + parameters: ReposGetDownloadEndpoint; + request: ReposGetDownloadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-repository-events + */ + "GET /repos/:owner/:repo/events": { + parameters: ActivityListRepoEventsEndpoint; + request: ActivityListRepoEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/forks/#list-forks + */ + "GET /repos/:owner/:repo/forks": { + parameters: ReposListForksEndpoint; + request: ReposListForksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/blobs/#get-a-blob + */ + "GET /repos/:owner/:repo/git/blobs/:file_sha": { + parameters: GitGetBlobEndpoint; + request: GitGetBlobRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/commits/#get-a-commit + */ + "GET /repos/:owner/:repo/git/commits/:commit_sha": { + parameters: GitGetCommitEndpoint; + request: GitGetCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#list-matching-references + */ + "GET /repos/:owner/:repo/git/matching-refs/:ref": { + parameters: GitListMatchingRefsEndpoint; + request: GitListMatchingRefsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#get-a-single-reference + */ + "GET /repos/:owner/:repo/git/ref/:ref": { + parameters: GitGetRefEndpoint; + request: GitGetRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/tags/#get-a-tag + */ + "GET /repos/:owner/:repo/git/tags/:tag_sha": { + parameters: GitGetTagEndpoint; + request: GitGetTagRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/trees/#get-a-tree + */ + "GET /repos/:owner/:repo/git/trees/:tree_sha": { + parameters: GitGetTreeEndpoint; + request: GitGetTreeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#list-hooks + */ + "GET /repos/:owner/:repo/hooks": { + parameters: ReposListHooksEndpoint; + request: ReposListHooksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#get-single-hook + */ + "GET /repos/:owner/:repo/hooks/:hook_id": { + parameters: ReposGetHookEndpoint; + request: ReposGetHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#get-import-progress + */ + "GET /repos/:owner/:repo/import": { + parameters: MigrationsGetImportProgressEndpoint; + request: MigrationsGetImportProgressRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#get-commit-authors + */ + "GET /repos/:owner/:repo/import/authors": { + parameters: MigrationsGetCommitAuthorsEndpoint; + request: MigrationsGetCommitAuthorsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#get-large-files + */ + "GET /repos/:owner/:repo/import/large_files": { + parameters: MigrationsGetLargeFilesEndpoint; + request: MigrationsGetLargeFilesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-a-repository-installation + */ + "GET /repos/:owner/:repo/installation": { + parameters: AppsGetRepoInstallationEndpoint; + request: AppsGetRepoInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/repos/#get-interaction-restrictions-for-a-repository + */ + "GET /repos/:owner/:repo/interaction-limits": { + parameters: InteractionsGetRestrictionsForRepoEndpoint; + request: InteractionsGetRestrictionsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#list-invitations-for-a-repository + */ + "GET /repos/:owner/:repo/invitations": { + parameters: ReposListInvitationsEndpoint; + request: ReposListInvitationsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-repository-issues + */ + "GET /repos/:owner/:repo/issues": { + parameters: IssuesListForRepoEndpoint; + request: IssuesListForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#get-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number": { + parameters: IssuesGetEndpoint; + request: IssuesGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/comments": { + parameters: IssuesListCommentsEndpoint; + request: IssuesListCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/events/#list-events-for-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/events": { + parameters: IssuesListEventsEndpoint; + request: IssuesListEventsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#list-labels-on-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesListLabelsOnIssueEndpoint; + request: IssuesListLabelsOnIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/reactions": { + parameters: ReactionsListForIssueEndpoint; + request: ReactionsListForIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/timeline/#list-events-for-an-issue + */ + "GET /repos/:owner/:repo/issues/:issue_number/timeline": { + parameters: IssuesListEventsForTimelineEndpoint; + request: IssuesListEventsForTimelineRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#list-comments-in-a-repository + */ + "GET /repos/:owner/:repo/issues/comments": { + parameters: IssuesListCommentsForRepoEndpoint; + request: IssuesListCommentsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#get-a-single-comment + */ + "GET /repos/:owner/:repo/issues/comments/:comment_id": { + parameters: IssuesGetCommentEndpoint; + request: IssuesGetCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-an-issue-comment + */ + "GET /repos/:owner/:repo/issues/comments/:comment_id/reactions": { + parameters: ReactionsListForIssueCommentEndpoint; + request: ReactionsListForIssueCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/events/#list-events-for-a-repository + */ + "GET /repos/:owner/:repo/issues/events": { + parameters: IssuesListEventsForRepoEndpoint; + request: IssuesListEventsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/events/#get-a-single-event + */ + "GET /repos/:owner/:repo/issues/events/:event_id": { + parameters: IssuesGetEventEndpoint; + request: IssuesGetEventRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#list-deploy-keys + */ + "GET /repos/:owner/:repo/keys": { + parameters: ReposListDeployKeysEndpoint; + request: ReposListDeployKeysRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#get-a-deploy-key + */ + "GET /repos/:owner/:repo/keys/:key_id": { + parameters: ReposGetDeployKeyEndpoint; + request: ReposGetDeployKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository + */ + "GET /repos/:owner/:repo/labels": { + parameters: IssuesListLabelsForRepoEndpoint; + request: IssuesListLabelsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#get-a-single-label + */ + "GET /repos/:owner/:repo/labels/:name": { + parameters: IssuesGetLabelEndpoint; + request: IssuesGetLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-languages + */ + "GET /repos/:owner/:repo/languages": { + parameters: ReposListLanguagesEndpoint; + request: ReposListLanguagesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/licenses/#get-the-contents-of-a-repositorys-license + */ + "GET /repos/:owner/:repo/license": { + parameters: LicensesGetForRepoEndpoint; + request: LicensesGetForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository + */ + "GET /repos/:owner/:repo/milestones": { + parameters: IssuesListMilestonesForRepoEndpoint; + request: IssuesListMilestonesForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#get-a-single-milestone + */ + "GET /repos/:owner/:repo/milestones/:milestone_number": { + parameters: IssuesGetMilestoneEndpoint; + request: IssuesGetMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#get-labels-for-every-issue-in-a-milestone + */ + "GET /repos/:owner/:repo/milestones/:milestone_number/labels": { + parameters: IssuesListLabelsForMilestoneEndpoint; + request: IssuesListLabelsForMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#list-repository-notifications-for-the-authenticated-user + */ + "GET /repos/:owner/:repo/notifications": { + parameters: ActivityListRepoNotificationsForAuthenticatedUserEndpoint; + request: ActivityListRepoNotificationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#get-information-about-a-pages-site + */ + "GET /repos/:owner/:repo/pages": { + parameters: ReposGetPagesEndpoint; + request: ReposGetPagesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#list-pages-builds + */ + "GET /repos/:owner/:repo/pages/builds": { + parameters: ReposListPagesBuildsEndpoint; + request: ReposListPagesBuildsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#get-a-specific-pages-build + */ + "GET /repos/:owner/:repo/pages/builds/:build_id": { + parameters: ReposGetPagesBuildEndpoint; + request: ReposGetPagesBuildRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#get-latest-pages-build + */ + "GET /repos/:owner/:repo/pages/builds/latest": { + parameters: ReposGetLatestPagesBuildEndpoint; + request: ReposGetLatestPagesBuildRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#list-repository-projects + */ + "GET /repos/:owner/:repo/projects": { + parameters: ProjectsListForRepoEndpoint; + request: ProjectsListForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#list-pull-requests + */ + "GET /repos/:owner/:repo/pulls": { + parameters: PullsListEndpoint; + request: PullsListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#get-a-single-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number": { + parameters: PullsGetEndpoint; + request: PullsGetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number/comments": { + parameters: PullsListCommentsEndpoint; + request: PullsListCommentsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#list-commits-on-a-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number/commits": { + parameters: PullsListCommitsEndpoint; + request: PullsListCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#list-pull-requests-files + */ + "GET /repos/:owner/:repo/pulls/:pull_number/files": { + parameters: PullsListFilesEndpoint; + request: PullsListFilesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#get-if-a-pull-request-has-been-merged + */ + "GET /repos/:owner/:repo/pulls/:pull_number/merge": { + parameters: PullsCheckIfMergedEndpoint; + request: PullsCheckIfMergedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/review_requests/#list-review-requests + */ + "GET /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": { + parameters: PullsListReviewRequestsEndpoint; + request: PullsListReviewRequestsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request + */ + "GET /repos/:owner/:repo/pulls/:pull_number/reviews": { + parameters: PullsListReviewsEndpoint; + request: PullsListReviewsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#get-a-single-review + */ + "GET /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": { + parameters: PullsGetReviewEndpoint; + request: PullsGetReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review + */ + "GET /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/comments": { + parameters: PullsGetCommentsForReviewEndpoint; + request: PullsGetCommentsForReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#list-comments-in-a-repository + */ + "GET /repos/:owner/:repo/pulls/comments": { + parameters: PullsListCommentsForRepoEndpoint; + request: PullsListCommentsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#get-a-single-comment + */ + "GET /repos/:owner/:repo/pulls/comments/:comment_id": { + parameters: PullsGetCommentEndpoint; + request: PullsGetCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-pull-request-review-comment + */ + "GET /repos/:owner/:repo/pulls/comments/:comment_id/reactions": { + parameters: ReactionsListForPullRequestReviewCommentEndpoint; + request: ReactionsListForPullRequestReviewCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#get-the-readme + */ + "GET /repos/:owner/:repo/readme": { + parameters: ReposGetReadmeEndpoint; + request: ReposGetReadmeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository + */ + "GET /repos/:owner/:repo/releases": { + parameters: ReposListReleasesEndpoint; + request: ReposListReleasesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-a-single-release + */ + "GET /repos/:owner/:repo/releases/:release_id": { + parameters: ReposGetReleaseEndpoint; + request: ReposGetReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#list-assets-for-a-release + */ + "GET /repos/:owner/:repo/releases/:release_id/assets": { + parameters: ReposListAssetsForReleaseEndpoint; + request: ReposListAssetsForReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-a-single-release-asset + */ + "GET /repos/:owner/:repo/releases/assets/:asset_id": { + parameters: ReposGetReleaseAssetEndpoint; + request: ReposGetReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-the-latest-release + */ + "GET /repos/:owner/:repo/releases/latest": { + parameters: ReposGetLatestReleaseEndpoint; + request: ReposGetLatestReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#get-a-release-by-tag-name + */ + "GET /repos/:owner/:repo/releases/tags/:tag": { + parameters: ReposGetReleaseByTagEndpoint; + request: ReposGetReleaseByTagRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#list-stargazers + */ + "GET /repos/:owner/:repo/stargazers": { + parameters: ActivityListStargazersForRepoEndpoint; + request: ActivityListStargazersForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-number-of-additions-and-deletions-per-week + */ + "GET /repos/:owner/:repo/stats/code_frequency": { + parameters: ReposGetCodeFrequencyStatsEndpoint; + request: ReposGetCodeFrequencyStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-last-year-of-commit-activity-data + */ + "GET /repos/:owner/:repo/stats/commit_activity": { + parameters: ReposGetCommitActivityStatsEndpoint; + request: ReposGetCommitActivityStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-contributors-list-with-additions-deletions-and-commit-counts + */ + "GET /repos/:owner/:repo/stats/contributors": { + parameters: ReposGetContributorsStatsEndpoint; + request: ReposGetContributorsStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-weekly-commit-count-for-the-repository-owner-and-everyone-else + */ + "GET /repos/:owner/:repo/stats/participation": { + parameters: ReposGetParticipationStatsEndpoint; + request: ReposGetParticipationStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statistics/#get-the-number-of-commits-per-hour-in-each-day + */ + "GET /repos/:owner/:repo/stats/punch_card": { + parameters: ReposGetPunchCardStatsEndpoint; + request: ReposGetPunchCardStatsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#list-watchers + */ + "GET /repos/:owner/:repo/subscribers": { + parameters: ActivityListWatchersForRepoEndpoint; + request: ActivityListWatchersForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#get-a-repository-subscription + */ + "GET /repos/:owner/:repo/subscription": { + parameters: ActivityGetRepoSubscriptionEndpoint; + request: ActivityGetRepoSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-tags + */ + "GET /repos/:owner/:repo/tags": { + parameters: ReposListTagsEndpoint; + request: ReposListTagsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-teams + */ + "GET /repos/:owner/:repo/teams": { + parameters: ReposListTeamsEndpoint; + request: ReposListTeamsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#get-all-repository-topics + */ + "GET /repos/:owner/:repo/topics": { + parameters: ReposGetAllTopicsEndpoint; + request: ReposGetAllTopicsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#clones + */ + "GET /repos/:owner/:repo/traffic/clones": { + parameters: ReposGetClonesEndpoint; + request: ReposGetClonesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#list-paths + */ + "GET /repos/:owner/:repo/traffic/popular/paths": { + parameters: ReposGetTopPathsEndpoint; + request: ReposGetTopPathsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#list-referrers + */ + "GET /repos/:owner/:repo/traffic/popular/referrers": { + parameters: ReposGetTopReferrersEndpoint; + request: ReposGetTopReferrersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/traffic/#views + */ + "GET /repos/:owner/:repo/traffic/views": { + parameters: ReposGetViewsEndpoint; + request: ReposGetViewsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#check-if-vulnerability-alerts-are-enabled-for-a-repository + */ + "GET /repos/:owner/:repo/vulnerability-alerts": { + parameters: ReposCheckVulnerabilityAlertsEndpoint; + request: ReposCheckVulnerabilityAlertsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-public-repositories + */ + "GET /repositories": { + parameters: ReposListPublicEndpoint; + request: ReposListPublicRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#get-a-list-of-provisioned-identities + */ + "GET /scim/v2/organizations/:org/Users": { + parameters: ScimListProvisionedIdentitiesEndpoint; + request: ScimListProvisionedIdentitiesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#get-provisioning-details-for-a-single-user + */ + "GET /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimGetProvisioningDetailsForUserEndpoint; + request: ScimGetProvisioningDetailsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-code + */ + "GET /search/code": { + parameters: SearchCodeEndpoint; + request: SearchCodeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-commits + */ + "GET /search/commits": { + parameters: SearchCommitsEndpoint; + request: SearchCommitsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-issues-and-pull-requests + */ + "GET /search/issues": { + parameters: SearchIssuesAndPullRequestsEndpoint; + request: SearchIssuesAndPullRequestsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-labels + */ + "GET /search/labels": { + parameters: SearchLabelsEndpoint; + request: SearchLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-repositories + */ + "GET /search/repositories": { + parameters: SearchReposEndpoint; + request: SearchReposRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-topics + */ + "GET /search/topics": { + parameters: SearchTopicsEndpoint; + request: SearchTopicsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/search/#search-users + */ + "GET /search/users": { + parameters: SearchUsersEndpoint; + request: SearchUsersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#get-team-legacy + */ + "GET /teams/:team_id": { + parameters: TeamsGetLegacyEndpoint; + request: TeamsGetLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#list-discussions-legacy + */ + "GET /teams/:team_id/discussions": { + parameters: TeamsListDiscussionsLegacyEndpoint; + request: TeamsListDiscussionsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#get-a-single-discussion-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number": { + parameters: TeamsGetDiscussionLegacyEndpoint; + request: TeamsGetDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#list-comments-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/comments": { + parameters: TeamsListDiscussionCommentsLegacyEndpoint; + request: TeamsListDiscussionCommentsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#get-a-single-comment-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsGetDiscussionCommentLegacyEndpoint; + request: TeamsGetDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-comment-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsListForTeamDiscussionCommentLegacyEndpoint; + request: ReactionsListForTeamDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#list-reactions-for-a-team-discussion-legacy + */ + "GET /teams/:team_id/discussions/:discussion_number/reactions": { + parameters: ReactionsListForTeamDiscussionLegacyEndpoint; + request: ReactionsListForTeamDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-pending-team-invitations-legacy + */ + "GET /teams/:team_id/invitations": { + parameters: TeamsListPendingInvitationsLegacyEndpoint; + request: TeamsListPendingInvitationsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#list-team-members-legacy + */ + "GET /teams/:team_id/members": { + parameters: TeamsListMembersLegacyEndpoint; + request: TeamsListMembersLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#get-team-member-legacy + */ + "GET /teams/:team_id/members/:username": { + parameters: TeamsGetMemberLegacyEndpoint; + request: TeamsGetMemberLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#get-team-membership-legacy + */ + "GET /teams/:team_id/memberships/:username": { + parameters: TeamsGetMembershipLegacyEndpoint; + request: TeamsGetMembershipLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-projects-legacy + */ + "GET /teams/:team_id/projects": { + parameters: TeamsListProjectsLegacyEndpoint; + request: TeamsListProjectsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#review-a-team-project-legacy + */ + "GET /teams/:team_id/projects/:project_id": { + parameters: TeamsReviewProjectLegacyEndpoint; + request: TeamsReviewProjectLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-team-repos-legacy + */ + "GET /teams/:team_id/repos": { + parameters: TeamsListReposLegacyEndpoint; + request: TeamsListReposLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#check-if-a-team-manages-a-repository-legacy + */ + "GET /teams/:team_id/repos/:owner/:repo": { + parameters: TeamsCheckManagesRepoLegacyEndpoint; + request: TeamsCheckManagesRepoLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#list-idp-groups-for-a-team-legacy + */ + "GET /teams/:team_id/team-sync/group-mappings": { + parameters: TeamsListIdPGroupsForLegacyEndpoint; + request: TeamsListIdPGroupsForLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-child-teams-legacy + */ + "GET /teams/:team_id/teams": { + parameters: TeamsListChildLegacyEndpoint; + request: TeamsListChildLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-the-authenticated-user + */ + "GET /user": { + parameters: UsersGetAuthenticatedEndpoint; + request: UsersGetAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#list-repositories-for-a-user-migration + */ + "GET /user/:migration_id/repositories": { + parameters: MigrationsListReposForUserEndpoint; + request: MigrationsListReposForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#list-blocked-users + */ + "GET /user/blocks": { + parameters: UsersListBlockedEndpoint; + request: UsersListBlockedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#check-whether-youve-blocked-a-user + */ + "GET /user/blocks/:username": { + parameters: UsersCheckBlockedEndpoint; + request: UsersCheckBlockedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user + */ + "GET /user/emails": { + parameters: UsersListEmailsEndpoint; + request: UsersListEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-followers-of-the-authenticated-user + */ + "GET /user/followers": { + parameters: UsersListFollowersForAuthenticatedUserEndpoint; + request: UsersListFollowersForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-users-followed-by-the-authenticated-user + */ + "GET /user/following": { + parameters: UsersListFollowedByAuthenticatedEndpoint; + request: UsersListFollowedByAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#check-if-you-are-following-a-user + */ + "GET /user/following/:username": { + parameters: UsersCheckFollowingEndpoint; + request: UsersCheckFollowingRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#list-your-gpg-keys + */ + "GET /user/gpg_keys": { + parameters: UsersListGpgKeysEndpoint; + request: UsersListGpgKeysRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#get-a-single-gpg-key + */ + "GET /user/gpg_keys/:gpg_key_id": { + parameters: UsersGetGpgKeyEndpoint; + request: UsersGetGpgKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#list-installations-for-a-user + */ + "GET /user/installations": { + parameters: AppsListInstallationsForAuthenticatedUserEndpoint; + request: AppsListInstallationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#list-repositories-accessible-to-the-user-for-an-installation + */ + "GET /user/installations/:installation_id/repositories": { + parameters: AppsListInstallationReposForAuthenticatedUserEndpoint; + request: AppsListInstallationReposForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#list-user-account-issues-assigned-to-the-authenticated-user + */ + "GET /user/issues": { + parameters: IssuesListForAuthenticatedUserEndpoint; + request: IssuesListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#list-your-public-keys + */ + "GET /user/keys": { + parameters: UsersListPublicKeysEndpoint; + request: UsersListPublicKeysRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#get-a-single-public-key + */ + "GET /user/keys/:key_id": { + parameters: UsersGetPublicKeyEndpoint; + request: UsersGetPublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-subscriptions-for-the-authenticated-user + */ + "GET /user/marketplace_purchases": { + parameters: AppsListSubscriptionsForAuthenticatedUserEndpoint; + request: AppsListSubscriptionsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/marketplace/#list-subscriptions-for-the-authenticated-user-stubbed + */ + "GET /user/marketplace_purchases/stubbed": { + parameters: AppsListSubscriptionsForAuthenticatedUserStubbedEndpoint; + request: AppsListSubscriptionsForAuthenticatedUserStubbedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#list-your-organization-memberships + */ + "GET /user/memberships/orgs": { + parameters: OrgsListMembershipsEndpoint; + request: OrgsListMembershipsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#get-your-organization-membership + */ + "GET /user/memberships/orgs/:org": { + parameters: OrgsGetMembershipForAuthenticatedUserEndpoint; + request: OrgsGetMembershipForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#list-user-migrations + */ + "GET /user/migrations": { + parameters: MigrationsListForAuthenticatedUserEndpoint; + request: MigrationsListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#get-the-status-of-a-user-migration + */ + "GET /user/migrations/:migration_id": { + parameters: MigrationsGetStatusForAuthenticatedUserEndpoint; + request: MigrationsGetStatusForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#download-a-user-migration-archive + */ + "GET /user/migrations/:migration_id/archive": { + parameters: MigrationsGetArchiveForAuthenticatedUserEndpoint; + request: MigrationsGetArchiveForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-your-organizations + */ + "GET /user/orgs": { + parameters: OrgsListForAuthenticatedUserEndpoint; + request: OrgsListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#list-public-email-addresses-for-a-user + */ + "GET /user/public_emails": { + parameters: UsersListPublicEmailsEndpoint; + request: UsersListPublicEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-repositories-for-the-authenticated-user + */ + "GET /user/repos": { + parameters: ReposListForAuthenticatedUserEndpoint; + request: ReposListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#list-a-users-repository-invitations + */ + "GET /user/repository_invitations": { + parameters: ReposListInvitationsForAuthenticatedUserEndpoint; + request: ReposListInvitationsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#list-repositories-starred-by-the-authenticated-user + */ + "GET /user/starred": { + parameters: ActivityListReposStarredByAuthenticatedUserEndpoint; + request: ActivityListReposStarredByAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#check-if-a-repository-is-starred-by-the-authenticated-user + */ + "GET /user/starred/:owner/:repo": { + parameters: ActivityCheckRepoIsStarredByAuthenticatedUserEndpoint; + request: ActivityCheckRepoIsStarredByAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#list-repositories-watched-by-the-authenticated-user + */ + "GET /user/subscriptions": { + parameters: ActivityListWatchedReposForAuthenticatedUserEndpoint; + request: ActivityListWatchedReposForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#list-user-teams + */ + "GET /user/teams": { + parameters: TeamsListForAuthenticatedUserEndpoint; + request: TeamsListForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-all-users + */ + "GET /users": { + parameters: UsersListEndpoint; + request: UsersListRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-a-single-user + */ + "GET /users/:username": { + parameters: UsersGetByUsernameEndpoint; + request: UsersGetByUsernameRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-events-for-the-authenticated-user + */ + "GET /users/:username/events": { + parameters: ActivityListEventsForAuthenticatedUserEndpoint; + request: ActivityListEventsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-organization-events-for-the-authenticated-user + */ + "GET /users/:username/events/orgs/:org": { + parameters: ActivityListOrgEventsForAuthenticatedUserEndpoint; + request: ActivityListOrgEventsForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events-for-a-user + */ + "GET /users/:username/events/public": { + parameters: ActivityListPublicEventsForUserEndpoint; + request: ActivityListPublicEventsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-followers-of-a-user + */ + "GET /users/:username/followers": { + parameters: UsersListFollowersForUserEndpoint; + request: UsersListFollowersForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user + */ + "GET /users/:username/following": { + parameters: UsersListFollowingForUserEndpoint; + request: UsersListFollowingForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#check-if-one-user-follows-another + */ + "GET /users/:username/following/:target_user": { + parameters: UsersCheckFollowingForUserEndpoint; + request: UsersCheckFollowingForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#list-gists-for-a-user + */ + "GET /users/:username/gists": { + parameters: GistsListForUserEndpoint; + request: GistsListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#list-gpg-keys-for-a-user + */ + "GET /users/:username/gpg_keys": { + parameters: UsersListGpgKeysForUserEndpoint; + request: UsersListGpgKeysForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#get-contextual-information-about-a-user + */ + "GET /users/:username/hovercard": { + parameters: UsersGetContextForUserEndpoint; + request: UsersGetContextForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#get-a-user-installation + */ + "GET /users/:username/installation": { + parameters: AppsGetUserInstallationEndpoint; + request: AppsGetUserInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#list-public-keys-for-a-user + */ + "GET /users/:username/keys": { + parameters: UsersListPublicKeysForUserEndpoint; + request: UsersListPublicKeysForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#list-user-organizations + */ + "GET /users/:username/orgs": { + parameters: OrgsListForUserEndpoint; + request: OrgsListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#list-user-projects + */ + "GET /users/:username/projects": { + parameters: ProjectsListForUserEndpoint; + request: ProjectsListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-events-received-by-the-authenticated-user + */ + "GET /users/:username/received_events": { + parameters: ActivityListReceivedEventsForUserEndpoint; + request: ActivityListReceivedEventsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/events/#list-public-events-received-by-a-user + */ + "GET /users/:username/received_events/public": { + parameters: ActivityListReceivedPublicEventsForUserEndpoint; + request: ActivityListReceivedPublicEventsForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#list-repositories-for-a-user + */ + "GET /users/:username/repos": { + parameters: ReposListForUserEndpoint; + request: ReposListForUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#list-repositories-starred-by-a-user + */ + "GET /users/:username/starred": { + parameters: ActivityListReposStarredByUserEndpoint; + request: ActivityListReposStarredByUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#list-repositories-watched-by-a-user + */ + "GET /users/:username/subscriptions": { + parameters: ActivityListReposWatchedByUserEndpoint; + request: ActivityListReposWatchedByUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#reset-a-token + */ + "PATCH /applications/:client_id/token": { + parameters: AppsResetTokenEndpoint; + request: AppsResetTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#update-an-existing-authorization + */ + "PATCH /authorizations/:authorization_id": { + parameters: OauthAuthorizationsUpdateAuthorizationEndpoint; + request: OauthAuthorizationsUpdateAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#update-a-gist + */ + "PATCH /gists/:gist_id": { + parameters: GistsUpdateEndpoint; + request: GistsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#edit-a-comment + */ + "PATCH /gists/:gist_id/comments/:comment_id": { + parameters: GistsUpdateCommentEndpoint; + request: GistsUpdateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#mark-a-thread-as-read + */ + "PATCH /notifications/threads/:thread_id": { + parameters: ActivityMarkThreadAsReadEndpoint; + request: ActivityMarkThreadAsReadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/#edit-an-organization + */ + "PATCH /orgs/:org": { + parameters: OrgsUpdateEndpoint; + request: OrgsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#edit-a-hook + */ + "PATCH /orgs/:org/hooks/:hook_id": { + parameters: OrgsUpdateHookEndpoint; + request: OrgsUpdateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#edit-team + */ + "PATCH /orgs/:org/teams/:team_slug": { + parameters: TeamsUpdateInOrgEndpoint; + request: TeamsUpdateInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#edit-a-discussion + */ + "PATCH /orgs/:org/teams/:team_slug/discussions/:discussion_number": { + parameters: TeamsUpdateDiscussionInOrgEndpoint; + request: TeamsUpdateDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#edit-a-comment + */ + "PATCH /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsUpdateDiscussionCommentInOrgEndpoint; + request: TeamsUpdateDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#create-or-update-idp-group-connections + */ + "PATCH /orgs/:org/teams/:team_slug/team-sync/group-mappings": { + parameters: TeamsCreateOrUpdateIdPGroupConnectionsInOrgEndpoint; + request: TeamsCreateOrUpdateIdPGroupConnectionsInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#update-a-project + */ + "PATCH /projects/:project_id": { + parameters: ProjectsUpdateEndpoint; + request: ProjectsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#update-a-project-column + */ + "PATCH /projects/columns/:column_id": { + parameters: ProjectsUpdateColumnEndpoint; + request: ProjectsUpdateColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#update-a-project-card + */ + "PATCH /projects/columns/cards/:card_id": { + parameters: ProjectsUpdateCardEndpoint; + request: ProjectsUpdateCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#update-a-repository + */ + "PATCH /repos/:owner/:repo": { + parameters: ReposUpdateEndpoint; + request: ReposUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#update-pull-request-review-enforcement-of-protected-branch + */ + "PATCH /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": { + parameters: ReposUpdateProtectedBranchPullRequestReviewEnforcementEndpoint; + request: ReposUpdateProtectedBranchPullRequestReviewEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#update-required-status-checks-of-protected-branch + */ + "PATCH /repos/:owner/:repo/branches/:branch/protection/required_status_checks": { + parameters: ReposUpdateProtectedBranchRequiredStatusChecksEndpoint; + request: ReposUpdateProtectedBranchRequiredStatusChecksRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#update-a-check-run + */ + "PATCH /repos/:owner/:repo/check-runs/:check_run_id": { + parameters: ChecksUpdateEndpoint; + request: ChecksUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#update-repository-preferences-for-check-suites + */ + "PATCH /repos/:owner/:repo/check-suites/preferences": { + parameters: ChecksSetSuitesPreferencesEndpoint; + request: ChecksSetSuitesPreferencesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#update-a-commit-comment + */ + "PATCH /repos/:owner/:repo/comments/:comment_id": { + parameters: ReposUpdateCommitCommentEndpoint; + request: ReposUpdateCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#update-a-reference + */ + "PATCH /repos/:owner/:repo/git/refs/:ref": { + parameters: GitUpdateRefEndpoint; + request: GitUpdateRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#edit-a-hook + */ + "PATCH /repos/:owner/:repo/hooks/:hook_id": { + parameters: ReposUpdateHookEndpoint; + request: ReposUpdateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#update-existing-import + */ + "PATCH /repos/:owner/:repo/import": { + parameters: MigrationsUpdateImportEndpoint; + request: MigrationsUpdateImportRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#map-a-commit-author + */ + "PATCH /repos/:owner/:repo/import/authors/:author_id": { + parameters: MigrationsMapCommitAuthorEndpoint; + request: MigrationsMapCommitAuthorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#set-git-lfs-preference + */ + "PATCH /repos/:owner/:repo/import/lfs": { + parameters: MigrationsSetLfsPreferenceEndpoint; + request: MigrationsSetLfsPreferenceRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#update-a-repository-invitation + */ + "PATCH /repos/:owner/:repo/invitations/:invitation_id": { + parameters: ReposUpdateInvitationEndpoint; + request: ReposUpdateInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#update-an-issue + */ + "PATCH /repos/:owner/:repo/issues/:issue_number": { + parameters: IssuesUpdateEndpoint; + request: IssuesUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#edit-a-comment + */ + "PATCH /repos/:owner/:repo/issues/comments/:comment_id": { + parameters: IssuesUpdateCommentEndpoint; + request: IssuesUpdateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#update-a-label + */ + "PATCH /repos/:owner/:repo/labels/:name": { + parameters: IssuesUpdateLabelEndpoint; + request: IssuesUpdateLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#update-a-milestone + */ + "PATCH /repos/:owner/:repo/milestones/:milestone_number": { + parameters: IssuesUpdateMilestoneEndpoint; + request: IssuesUpdateMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#update-a-pull-request + */ + "PATCH /repos/:owner/:repo/pulls/:pull_number": { + parameters: PullsUpdateEndpoint; + request: PullsUpdateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#edit-a-comment + */ + "PATCH /repos/:owner/:repo/pulls/comments/:comment_id": { + parameters: PullsUpdateCommentEndpoint; + request: PullsUpdateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#edit-a-release + */ + "PATCH /repos/:owner/:repo/releases/:release_id": { + parameters: ReposUpdateReleaseEndpoint; + request: ReposUpdateReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#edit-a-release-asset + */ + "PATCH /repos/:owner/:repo/releases/assets/:asset_id": { + parameters: ReposUpdateReleaseAssetEndpoint; + request: ReposUpdateReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#update-a-user-attribute + */ + "PATCH /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimUpdateUserAttributeEndpoint; + request: ScimUpdateUserAttributeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#edit-team-legacy + */ + "PATCH /teams/:team_id": { + parameters: TeamsUpdateLegacyEndpoint; + request: TeamsUpdateLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#edit-a-discussion-legacy + */ + "PATCH /teams/:team_id/discussions/:discussion_number": { + parameters: TeamsUpdateDiscussionLegacyEndpoint; + request: TeamsUpdateDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#edit-a-comment-legacy + */ + "PATCH /teams/:team_id/discussions/:discussion_number/comments/:comment_number": { + parameters: TeamsUpdateDiscussionCommentLegacyEndpoint; + request: TeamsUpdateDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/team_sync/#create-or-update-idp-group-connections-legacy + */ + "PATCH /teams/:team_id/team-sync/group-mappings": { + parameters: TeamsCreateOrUpdateIdPGroupConnectionsLegacyEndpoint; + request: TeamsCreateOrUpdateIdPGroupConnectionsLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/#update-the-authenticated-user + */ + "PATCH /user": { + parameters: UsersUpdateAuthenticatedEndpoint; + request: UsersUpdateAuthenticatedRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#toggle-primary-email-visibility + */ + "PATCH /user/email/visibility": { + parameters: UsersTogglePrimaryEmailVisibilityEndpoint; + request: UsersTogglePrimaryEmailVisibilityRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#edit-your-organization-membership + */ + "PATCH /user/memberships/orgs/:org": { + parameters: OrgsUpdateMembershipEndpoint; + request: OrgsUpdateMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/invitations/#accept-a-repository-invitation + */ + "PATCH /user/repository_invitations/:invitation_id": { + parameters: ReposAcceptInvitationEndpoint; + request: ReposAcceptInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#create-a-github-app-from-a-manifest + */ + "POST /app-manifests/:code/conversions": { + parameters: AppsCreateFromManifestEndpoint; + request: AppsCreateFromManifestRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#create-a-new-installation-token + */ + "POST /app/installations/:installation_id/access_tokens": { + parameters: AppsCreateInstallationTokenEndpoint; + request: AppsCreateInstallationTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#check-a-token + */ + "POST /applications/:client_id/token": { + parameters: AppsCheckTokenEndpoint; + request: AppsCheckTokenRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/oauth_applications/#reset-an-authorization + */ + "POST /applications/:client_id/tokens/:access_token": { + parameters: AppsResetAuthorizationEndpoint; + request: AppsResetAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization + */ + "POST /authorizations": { + parameters: OauthAuthorizationsCreateAuthorizationEndpoint; + request: OauthAuthorizationsCreateAuthorizationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#create-a-content-attachment + */ + "POST /content_references/:content_reference_id/attachments": { + parameters: AppsCreateContentAttachmentEndpoint; + request: AppsCreateContentAttachmentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#create-a-gist + */ + "POST /gists": { + parameters: GistsCreateEndpoint; + request: GistsCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/comments/#create-a-comment + */ + "POST /gists/:gist_id/comments": { + parameters: GistsCreateCommentEndpoint; + request: GistsCreateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#fork-a-gist + */ + "POST /gists/:gist_id/forks": { + parameters: GistsForkEndpoint; + request: GistsForkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/markdown/#render-an-arbitrary-markdown-document + */ + "POST /markdown": { + parameters: MarkdownRenderEndpoint; + request: MarkdownRenderRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode + */ + "POST /markdown/raw": { + parameters: MarkdownRenderRawEndpoint; + request: MarkdownRenderRawRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-registration-token-for-an-organization + */ + "POST /orgs/:org/actions/runners/registration-token": { + parameters: ActionsCreateRegistrationTokenForOrgEndpoint; + request: ActionsCreateRegistrationTokenForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-remove-token-for-an-organization + */ + "POST /orgs/:org/actions/runners/remove-token": { + parameters: ActionsCreateRemoveTokenForOrgEndpoint; + request: ActionsCreateRemoveTokenForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#create-a-hook + */ + "POST /orgs/:org/hooks": { + parameters: OrgsCreateHookEndpoint; + request: OrgsCreateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/hooks/#ping-a-hook + */ + "POST /orgs/:org/hooks/:hook_id/pings": { + parameters: OrgsPingHookEndpoint; + request: OrgsPingHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#create-organization-invitation + */ + "POST /orgs/:org/invitations": { + parameters: OrgsCreateInvitationEndpoint; + request: OrgsCreateInvitationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/orgs/#start-an-organization-migration + */ + "POST /orgs/:org/migrations": { + parameters: MigrationsStartForOrgEndpoint; + request: MigrationsStartForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#create-an-organization-project + */ + "POST /orgs/:org/projects": { + parameters: ProjectsCreateForOrgEndpoint; + request: ProjectsCreateForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-an-organization-repository + */ + "POST /orgs/:org/repos": { + parameters: ReposCreateInOrgEndpoint; + request: ReposCreateInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#create-team + */ + "POST /orgs/:org/teams": { + parameters: TeamsCreateEndpoint; + request: TeamsCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#create-a-discussion + */ + "POST /orgs/:org/teams/:team_slug/discussions": { + parameters: TeamsCreateDiscussionInOrgEndpoint; + request: TeamsCreateDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#create-a-comment + */ + "POST /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments": { + parameters: TeamsCreateDiscussionCommentInOrgEndpoint; + request: TeamsCreateDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment + */ + "POST /orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionCommentInOrgEndpoint; + request: ReactionsCreateForTeamDiscussionCommentInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion + */ + "POST /orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionInOrgEndpoint; + request: ReactionsCreateForTeamDiscussionInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#create-a-project-column + */ + "POST /projects/:project_id/columns": { + parameters: ProjectsCreateColumnEndpoint; + request: ProjectsCreateColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#create-a-project-card + */ + "POST /projects/columns/:column_id/cards": { + parameters: ProjectsCreateCardEndpoint; + request: ProjectsCreateCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/columns/#move-a-project-column + */ + "POST /projects/columns/:column_id/moves": { + parameters: ProjectsMoveColumnEndpoint; + request: ProjectsMoveColumnRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/cards/#move-a-project-card + */ + "POST /projects/columns/cards/:card_id/moves": { + parameters: ProjectsMoveCardEndpoint; + request: ProjectsMoveCardRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-registration-token-for-a-repository + */ + "POST /repos/:owner/:repo/actions/runners/registration-token": { + parameters: ActionsCreateRegistrationTokenForRepoEndpoint; + request: ActionsCreateRegistrationTokenForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/self-hosted-runners/#create-a-remove-token-for-a-repository + */ + "POST /repos/:owner/:repo/actions/runners/remove-token": { + parameters: ActionsCreateRemoveTokenForRepoEndpoint; + request: ActionsCreateRemoveTokenForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#cancel-a-workflow-run + */ + "POST /repos/:owner/:repo/actions/runs/:run_id/cancel": { + parameters: ActionsCancelWorkflowRunEndpoint; + request: ActionsCancelWorkflowRunRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/workflow-runs/#re-run-a-workflow + */ + "POST /repos/:owner/:repo/actions/runs/:run_id/rerun": { + parameters: ActionsReRunWorkflowEndpoint; + request: ActionsReRunWorkflowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-admin-enforcement-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/enforce_admins": { + parameters: ReposAddProtectedBranchAdminEnforcementEndpoint; + request: ReposAddProtectedBranchAdminEnforcementRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-required-signatures-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/required_signatures": { + parameters: ReposAddProtectedBranchRequiredSignaturesEndpoint; + request: ReposAddProtectedBranchRequiredSignaturesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-required-status-checks-contexts-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposAddProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposAddProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-app-restrictions-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposAddProtectedBranchAppRestrictionsEndpoint; + request: ReposAddProtectedBranchAppRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-team-restrictions-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposAddProtectedBranchTeamRestrictionsEndpoint; + request: ReposAddProtectedBranchTeamRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#add-user-restrictions-of-protected-branch + */ + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposAddProtectedBranchUserRestrictionsEndpoint; + request: ReposAddProtectedBranchUserRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/runs/#create-a-check-run + */ + "POST /repos/:owner/:repo/check-runs": { + parameters: ChecksCreateEndpoint; + request: ChecksCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#create-a-check-suite + */ + "POST /repos/:owner/:repo/check-suites": { + parameters: ChecksCreateSuiteEndpoint; + request: ChecksCreateSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/checks/suites/#rerequest-a-check-suite + */ + "POST /repos/:owner/:repo/check-suites/:check_suite_id/rerequest": { + parameters: ChecksRerequestSuiteEndpoint; + request: ChecksRerequestSuiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-commit-comment + */ + "POST /repos/:owner/:repo/comments/:comment_id/reactions": { + parameters: ReactionsCreateForCommitCommentEndpoint; + request: ReactionsCreateForCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/comments/#create-a-commit-comment + */ + "POST /repos/:owner/:repo/commits/:commit_sha/comments": { + parameters: ReposCreateCommitCommentEndpoint; + request: ReposCreateCommitCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#create-a-deployment + */ + "POST /repos/:owner/:repo/deployments": { + parameters: ReposCreateDeploymentEndpoint; + request: ReposCreateDeploymentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/deployments/#create-a-deployment-status + */ + "POST /repos/:owner/:repo/deployments/:deployment_id/statuses": { + parameters: ReposCreateDeploymentStatusEndpoint; + request: ReposCreateDeploymentStatusRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-a-repository-dispatch-event + */ + "POST /repos/:owner/:repo/dispatches": { + parameters: ReposCreateDispatchEventEndpoint; + request: ReposCreateDispatchEventRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/forks/#create-a-fork + */ + "POST /repos/:owner/:repo/forks": { + parameters: ReposCreateForkEndpoint; + request: ReposCreateForkRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/blobs/#create-a-blob + */ + "POST /repos/:owner/:repo/git/blobs": { + parameters: GitCreateBlobEndpoint; + request: GitCreateBlobRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/commits/#create-a-commit + */ + "POST /repos/:owner/:repo/git/commits": { + parameters: GitCreateCommitEndpoint; + request: GitCreateCommitRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/refs/#create-a-reference + */ + "POST /repos/:owner/:repo/git/refs": { + parameters: GitCreateRefEndpoint; + request: GitCreateRefRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/tags/#create-a-tag-object + */ + "POST /repos/:owner/:repo/git/tags": { + parameters: GitCreateTagEndpoint; + request: GitCreateTagRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/git/trees/#create-a-tree + */ + "POST /repos/:owner/:repo/git/trees": { + parameters: GitCreateTreeEndpoint; + request: GitCreateTreeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#create-a-hook + */ + "POST /repos/:owner/:repo/hooks": { + parameters: ReposCreateHookEndpoint; + request: ReposCreateHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#ping-a-hook + */ + "POST /repos/:owner/:repo/hooks/:hook_id/pings": { + parameters: ReposPingHookEndpoint; + request: ReposPingHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/hooks/#test-a-push-hook + */ + "POST /repos/:owner/:repo/hooks/:hook_id/tests": { + parameters: ReposTestPushHookEndpoint; + request: ReposTestPushHookRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#create-an-issue + */ + "POST /repos/:owner/:repo/issues": { + parameters: IssuesCreateEndpoint; + request: IssuesCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/assignees/#add-assignees-to-an-issue + */ + "POST /repos/:owner/:repo/issues/:issue_number/assignees": { + parameters: IssuesAddAssigneesEndpoint; + request: IssuesAddAssigneesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/comments/#create-a-comment + */ + "POST /repos/:owner/:repo/issues/:issue_number/comments": { + parameters: IssuesCreateCommentEndpoint; + request: IssuesCreateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue + */ + "POST /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesAddLabelsEndpoint; + request: IssuesAddLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-an-issue + */ + "POST /repos/:owner/:repo/issues/:issue_number/reactions": { + parameters: ReactionsCreateForIssueEndpoint; + request: ReactionsCreateForIssueRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-an-issue-comment + */ + "POST /repos/:owner/:repo/issues/comments/:comment_id/reactions": { + parameters: ReactionsCreateForIssueCommentEndpoint; + request: ReactionsCreateForIssueCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/keys/#add-a-new-deploy-key + */ + "POST /repos/:owner/:repo/keys": { + parameters: ReposAddDeployKeyEndpoint; + request: ReposAddDeployKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#create-a-label + */ + "POST /repos/:owner/:repo/labels": { + parameters: IssuesCreateLabelEndpoint; + request: IssuesCreateLabelRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/merging/#perform-a-merge + */ + "POST /repos/:owner/:repo/merges": { + parameters: ReposMergeEndpoint; + request: ReposMergeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/milestones/#create-a-milestone + */ + "POST /repos/:owner/:repo/milestones": { + parameters: IssuesCreateMilestoneEndpoint; + request: IssuesCreateMilestoneRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#enable-a-pages-site + */ + "POST /repos/:owner/:repo/pages": { + parameters: ReposEnablePagesSiteEndpoint; + request: ReposEnablePagesSiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#request-a-page-build + */ + "POST /repos/:owner/:repo/pages/builds": { + parameters: ReposRequestPageBuildEndpoint; + request: ReposRequestPageBuildRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#create-a-repository-project + */ + "POST /repos/:owner/:repo/projects": { + parameters: ProjectsCreateForRepoEndpoint; + request: ProjectsCreateForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#create-a-pull-request + */ + "POST /repos/:owner/:repo/pulls": { + parameters: PullsCreateEndpoint; + request: PullsCreateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#create-a-comment + */ + "POST /repos/:owner/:repo/pulls/:pull_number/comments": { + parameters: PullsCreateCommentEndpoint; + request: PullsCreateCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/comments/#create-a-review-comment-reply + */ + "POST /repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies": { + parameters: PullsCreateReviewCommentReplyEndpoint; + request: PullsCreateReviewCommentReplyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/review_requests/#create-a-review-request + */ + "POST /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": { + parameters: PullsCreateReviewRequestEndpoint; + request: PullsCreateReviewRequestRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review + */ + "POST /repos/:owner/:repo/pulls/:pull_number/reviews": { + parameters: PullsCreateReviewEndpoint; + request: PullsCreateReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review + */ + "POST /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/events": { + parameters: PullsSubmitReviewEndpoint; + request: PullsSubmitReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-pull-request-review-comment + */ + "POST /repos/:owner/:repo/pulls/comments/:comment_id/reactions": { + parameters: ReactionsCreateForPullRequestReviewCommentEndpoint; + request: ReactionsCreateForPullRequestReviewCommentRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#create-a-release + */ + "POST /repos/:owner/:repo/releases": { + parameters: ReposCreateReleaseEndpoint; + request: ReposCreateReleaseRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/releases/#upload-a-release-asset + */ + "POST /repos/:owner/:repo/releases/:release_id/assets{?name,label}": { + parameters: ReposUploadReleaseAssetEndpoint; + request: ReposUploadReleaseAssetRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/statuses/#create-a-status + */ + "POST /repos/:owner/:repo/statuses/:sha": { + parameters: ReposCreateStatusEndpoint; + request: ReposCreateStatusRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#transfer-a-repository + */ + "POST /repos/:owner/:repo/transfer": { + parameters: ReposTransferEndpoint; + request: ReposTransferRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-a-repository-using-a-template + */ + "POST /repos/:template_owner/:template_repo/generate": { + parameters: ReposCreateUsingTemplateEndpoint; + request: ReposCreateUsingTemplateRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#provision-and-invite-users + */ + "POST /scim/v2/organizations/:org/Users": { + parameters: ScimProvisionAndInviteUsersEndpoint; + request: ScimProvisionAndInviteUsersRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussions/#create-a-discussion-legacy + */ + "POST /teams/:team_id/discussions": { + parameters: TeamsCreateDiscussionLegacyEndpoint; + request: TeamsCreateDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/discussion_comments/#create-a-comment-legacy + */ + "POST /teams/:team_id/discussions/:discussion_number/comments": { + parameters: TeamsCreateDiscussionCommentLegacyEndpoint; + request: TeamsCreateDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-comment-legacy + */ + "POST /teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionCommentLegacyEndpoint; + request: ReactionsCreateForTeamDiscussionCommentLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/reactions/#create-reaction-for-a-team-discussion-legacy + */ + "POST /teams/:team_id/discussions/:discussion_number/reactions": { + parameters: ReactionsCreateForTeamDiscussionLegacyEndpoint; + request: ReactionsCreateForTeamDiscussionLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/emails/#add-email-addresses + */ + "POST /user/emails": { + parameters: UsersAddEmailsEndpoint; + request: UsersAddEmailsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/gpg_keys/#create-a-gpg-key + */ + "POST /user/gpg_keys": { + parameters: UsersCreateGpgKeyEndpoint; + request: UsersCreateGpgKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/keys/#create-a-public-key + */ + "POST /user/keys": { + parameters: UsersCreatePublicKeyEndpoint; + request: UsersCreatePublicKeyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/users/#start-a-user-migration + */ + "POST /user/migrations": { + parameters: MigrationsStartForAuthenticatedUserEndpoint; + request: MigrationsStartForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/#create-a-user-project + */ + "POST /user/projects": { + parameters: ProjectsCreateForAuthenticatedUserEndpoint; + request: ProjectsCreateForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#create-a-repository-for-the-authenticated-user + */ + "POST /user/repos": { + parameters: ReposCreateForAuthenticatedUserEndpoint; + request: ReposCreateForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/#suspend-an-installation + */ + "PUT /app/installations/:installation_id/suspended": { + parameters: AppsSuspendInstallationEndpoint; + request: AppsSuspendInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app + */ + "PUT /authorizations/clients/:client_id": { + parameters: OauthAuthorizationsGetOrCreateAuthorizationForAppEndpoint; + request: OauthAuthorizationsGetOrCreateAuthorizationForAppRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint + */ + "PUT /authorizations/clients/:client_id/:fingerprint": { + parameters: OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintEndpoint; + request: OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/gists/#star-a-gist + */ + "PUT /gists/:gist_id/star": { + parameters: GistsStarEndpoint; + request: GistsStarRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#mark-notifications-as-read + */ + "PUT /notifications": { + parameters: ActivityMarkNotificationsAsReadEndpoint; + request: ActivityMarkNotificationsAsReadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#set-a-thread-subscription + */ + "PUT /notifications/threads/:thread_id/subscription": { + parameters: ActivitySetThreadSubscriptionEndpoint; + request: ActivitySetThreadSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#create-or-update-an-organization-secret + */ + "PUT /orgs/:org/actions/secrets/:secret_name": { + parameters: ActionsCreateOrUpdateOrgSecretEndpoint; + request: ActionsCreateOrUpdateOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#set-selected-repositories-for-an-organization-secret + */ + "PUT /orgs/:org/actions/secrets/:secret_name/repositories": { + parameters: ActionsSetSelectedReposForOrgSecretEndpoint; + request: ActionsSetSelectedReposForOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#add-selected-repository-to-an-organization-secret + */ + "PUT /orgs/:org/actions/secrets/:secret_name/repositories/:repository_id": { + parameters: ActionsAddSelectedRepoToOrgSecretEndpoint; + request: ActionsAddSelectedRepoToOrgSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/blocking/#block-a-user + */ + "PUT /orgs/:org/blocks/:username": { + parameters: OrgsBlockUserEndpoint; + request: OrgsBlockUserRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/orgs/#add-or-update-interaction-restrictions-for-an-organization + */ + "PUT /orgs/:org/interaction-limits": { + parameters: InteractionsAddOrUpdateRestrictionsForOrgEndpoint; + request: InteractionsAddOrUpdateRestrictionsForOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#add-or-update-organization-membership + */ + "PUT /orgs/:org/memberships/:username": { + parameters: OrgsAddOrUpdateMembershipEndpoint; + request: OrgsAddOrUpdateMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/outside_collaborators/#convert-member-to-outside-collaborator + */ + "PUT /orgs/:org/outside_collaborators/:username": { + parameters: OrgsConvertMemberToOutsideCollaboratorEndpoint; + request: OrgsConvertMemberToOutsideCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/orgs/members/#publicize-a-users-membership + */ + "PUT /orgs/:org/public_members/:username": { + parameters: OrgsPublicizeMembershipEndpoint; + request: OrgsPublicizeMembershipRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#add-or-update-team-membership + */ + "PUT /orgs/:org/teams/:team_slug/memberships/:username": { + parameters: TeamsAddOrUpdateMembershipInOrgEndpoint; + request: TeamsAddOrUpdateMembershipInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-project + */ + "PUT /orgs/:org/teams/:team_slug/projects/:project_id": { + parameters: TeamsAddOrUpdateProjectInOrgEndpoint; + request: TeamsAddOrUpdateProjectInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-repository + */ + "PUT /orgs/:org/teams/:team_slug/repos/:owner/:repo": { + parameters: TeamsAddOrUpdateRepoInOrgEndpoint; + request: TeamsAddOrUpdateRepoInOrgRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/projects/collaborators/#add-user-as-a-collaborator + */ + "PUT /projects/:project_id/collaborators/:username": { + parameters: ProjectsAddCollaboratorEndpoint; + request: ProjectsAddCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/actions/secrets/#create-or-update-a-repository-secret + */ + "PUT /repos/:owner/:repo/actions/secrets/:secret_name": { + parameters: ActionsCreateOrUpdateRepoSecretEndpoint; + request: ActionsCreateOrUpdateRepoSecretRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#enable-automated-security-fixes + */ + "PUT /repos/:owner/:repo/automated-security-fixes": { + parameters: ReposEnableAutomatedSecurityFixesEndpoint; + request: ReposEnableAutomatedSecurityFixesRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#update-branch-protection + */ + "PUT /repos/:owner/:repo/branches/:branch/protection": { + parameters: ReposUpdateBranchProtectionEndpoint; + request: ReposUpdateBranchProtectionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-required-status-checks-contexts-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": { + parameters: ReposReplaceProtectedBranchRequiredStatusChecksContextsEndpoint; + request: ReposReplaceProtectedBranchRequiredStatusChecksContextsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-app-restrictions-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": { + parameters: ReposReplaceProtectedBranchAppRestrictionsEndpoint; + request: ReposReplaceProtectedBranchAppRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-team-restrictions-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": { + parameters: ReposReplaceProtectedBranchTeamRestrictionsEndpoint; + request: ReposReplaceProtectedBranchTeamRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/branches/#replace-user-restrictions-of-protected-branch + */ + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/users": { + parameters: ReposReplaceProtectedBranchUserRestrictionsEndpoint; + request: ReposReplaceProtectedBranchUserRestrictionsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/collaborators/#add-user-as-a-collaborator + */ + "PUT /repos/:owner/:repo/collaborators/:username": { + parameters: ReposAddCollaboratorEndpoint; + request: ReposAddCollaboratorRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/contents/#create-or-update-a-file + */ + "PUT /repos/:owner/:repo/contents/:path": { + parameters: ReposCreateOrUpdateFileEndpoint; + request: ReposCreateOrUpdateFileRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/migrations/source_imports/#start-an-import + */ + "PUT /repos/:owner/:repo/import": { + parameters: MigrationsStartImportEndpoint; + request: MigrationsStartImportRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/interactions/repos/#add-or-update-interaction-restrictions-for-a-repository + */ + "PUT /repos/:owner/:repo/interaction-limits": { + parameters: InteractionsAddOrUpdateRestrictionsForRepoEndpoint; + request: InteractionsAddOrUpdateRestrictionsForRepoRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/labels/#replace-all-labels-for-an-issue + */ + "PUT /repos/:owner/:repo/issues/:issue_number/labels": { + parameters: IssuesReplaceAllLabelsEndpoint; + request: IssuesReplaceAllLabelsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/issues/#lock-an-issue + */ + "PUT /repos/:owner/:repo/issues/:issue_number/lock": { + parameters: IssuesLockEndpoint; + request: IssuesLockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/notifications/#mark-repository-notifications-as-read + */ + "PUT /repos/:owner/:repo/notifications": { + parameters: ActivityMarkRepoNotificationsAsReadEndpoint; + request: ActivityMarkRepoNotificationsAsReadRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/pages/#update-information-about-a-pages-site + */ + "PUT /repos/:owner/:repo/pages": { + parameters: ReposUpdateInformationAboutPagesSiteEndpoint; + request: ReposUpdateInformationAboutPagesSiteRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/merge": { + parameters: PullsMergeEndpoint; + request: PullsMergeRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#update-a-pull-request-review + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": { + parameters: PullsUpdateReviewEndpoint; + request: PullsUpdateReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/reviews/#dismiss-a-pull-request-review + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/dismissals": { + parameters: PullsDismissReviewEndpoint; + request: PullsDismissReviewRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/pulls/#update-a-pull-request-branch + */ + "PUT /repos/:owner/:repo/pulls/:pull_number/update-branch": { + parameters: PullsUpdateBranchEndpoint; + request: PullsUpdateBranchRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/watching/#set-a-repository-subscription + */ + "PUT /repos/:owner/:repo/subscription": { + parameters: ActivitySetRepoSubscriptionEndpoint; + request: ActivitySetRepoSubscriptionRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#replace-all-repository-topics + */ + "PUT /repos/:owner/:repo/topics": { + parameters: ReposReplaceAllTopicsEndpoint; + request: ReposReplaceAllTopicsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/repos/#enable-vulnerability-alerts + */ + "PUT /repos/:owner/:repo/vulnerability-alerts": { + parameters: ReposEnableVulnerabilityAlertsEndpoint; + request: ReposEnableVulnerabilityAlertsRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/scim/#replace-a-provisioned-users-information + */ + "PUT /scim/v2/organizations/:org/Users/:scim_user_id": { + parameters: ScimReplaceProvisionedUserInformationEndpoint; + request: ScimReplaceProvisionedUserInformationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#add-team-member-legacy + */ + "PUT /teams/:team_id/members/:username": { + parameters: TeamsAddMemberLegacyEndpoint; + request: TeamsAddMemberLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/members/#add-or-update-team-membership-legacy + */ + "PUT /teams/:team_id/memberships/:username": { + parameters: TeamsAddOrUpdateMembershipLegacyEndpoint; + request: TeamsAddOrUpdateMembershipLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-project-legacy + */ + "PUT /teams/:team_id/projects/:project_id": { + parameters: TeamsAddOrUpdateProjectLegacyEndpoint; + request: TeamsAddOrUpdateProjectLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/teams/#add-or-update-team-repository-legacy + */ + "PUT /teams/:team_id/repos/:owner/:repo": { + parameters: TeamsAddOrUpdateRepoLegacyEndpoint; + request: TeamsAddOrUpdateRepoLegacyRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/blocking/#block-a-user + */ + "PUT /user/blocks/:username": { + parameters: UsersBlockEndpoint; + request: UsersBlockRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/users/followers/#follow-a-user + */ + "PUT /user/following/:username": { + parameters: UsersFollowEndpoint; + request: UsersFollowRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/apps/installations/#add-repository-to-installation + */ + "PUT /user/installations/:installation_id/repositories/:repository_id": { + parameters: AppsAddRepoToInstallationEndpoint; + request: AppsAddRepoToInstallationRequestOptions; + response: OctokitResponse; + }; + /** + * @see https://developer.github.com/v3/activity/starring/#star-a-repository-for-the-authenticated-user + */ + "PUT /user/starred/:owner/:repo": { + parameters: ActivityStarRepoForAuthenticatedUserEndpoint; + request: ActivityStarRepoForAuthenticatedUserRequestOptions; + response: OctokitResponse; + }; +} +declare type AppsGetAuthenticatedEndpoint = {} & RequiredPreview<"machine-man">; +declare type AppsGetAuthenticatedRequestOptions = { + method: "GET"; + url: "/app"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetAuthenticatedResponseData { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + installations_count: number; +} +declare type AppsCreateFromManifestEndpoint = { + code: string; +}; +declare type AppsCreateFromManifestRequestOptions = { + method: "POST"; + url: "/app-manifests/:code/conversions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCreateFromManifestResponseData { + id: number; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + client_id: string; + client_secret: string; + webhook_secret: string; + pem: string; +} +declare type AppsListInstallationsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListInstallationsRequestOptions = { + method: "GET"; + url: "/app/installations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListInstallationsResponseData = { + id: number; + account: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + single_file_name: string; + repository_selection: string; +}[]; +declare type AppsGetInstallationEndpoint = { + installation_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsGetInstallationRequestOptions = { + method: "GET"; + url: "/app/installations/:installation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetInstallationResponseData { + id: number; + account: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + single_file_name: string; + repository_selection: string; +} +declare type AppsDeleteInstallationEndpoint = { + installation_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsDeleteInstallationRequestOptions = { + method: "DELETE"; + url: "/app/installations/:installation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsCreateInstallationTokenEndpoint = { + installation_id: number; + /** + * The `id`s of the repositories that the installation token can access. Providing repository `id`s restricts the access of an installation token to specific repositories. You can use the "[List repositories](https://developer.github.com/v3/apps/installations/#list-repositories)" endpoint to get the `id` of all repositories that an installation can access. For example, you can select specific repositories when creating an installation token to restrict the number of repositories that can be cloned using the token. + */ + repository_ids?: number[]; + /** + * The permissions granted to the access token. The permissions object includes the permission names and their access type. For a complete list of permissions and allowable values, see "[GitHub App permissions](https://developer.github.com/apps/building-github-apps/creating-github-apps-using-url-parameters/#github-app-permissions)." + */ + permissions?: AppsCreateInstallationTokenParamsPermissions; +} & RequiredPreview<"machine-man">; +declare type AppsCreateInstallationTokenRequestOptions = { + method: "POST"; + url: "/app/installations/:installation_id/access_tokens"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCreateInstallationTokenResponseData { + token: string; + expires_at: string; + permissions: { + issues: string; + contents: string; + }; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; +} +declare type AppsSuspendInstallationEndpoint = { + installation_id: number; +}; +declare type AppsSuspendInstallationRequestOptions = { + method: "PUT"; + url: "/app/installations/:installation_id/suspended"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsUnsuspendInstallationEndpoint = { + installation_id: number; +}; +declare type AppsUnsuspendInstallationRequestOptions = { + method: "DELETE"; + url: "/app/installations/:installation_id/suspended"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OauthAuthorizationsListGrantsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OauthAuthorizationsListGrantsRequestOptions = { + method: "GET"; + url: "/applications/grants"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OauthAuthorizationsListGrantsResponseData = { + id: number; + url: string; + app: { + url: string; + name: string; + client_id: string; + }; + created_at: string; + updated_at: string; + scopes: string[]; +}[]; +declare type OauthAuthorizationsGetGrantEndpoint = { + grant_id: number; +}; +declare type OauthAuthorizationsGetGrantRequestOptions = { + method: "GET"; + url: "/applications/grants/:grant_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetGrantResponseData { + id: number; + url: string; + app: { + url: string; + name: string; + client_id: string; + }; + created_at: string; + updated_at: string; + scopes: string[]; +} +declare type OauthAuthorizationsDeleteGrantEndpoint = { + grant_id: number; +}; +declare type OauthAuthorizationsDeleteGrantRequestOptions = { + method: "DELETE"; + url: "/applications/grants/:grant_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsDeleteAuthorizationEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsDeleteAuthorizationRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/grant"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsRevokeGrantForApplicationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsRevokeGrantForApplicationRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/grants/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsCheckTokenEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsCheckTokenRequestOptions = { + method: "POST"; + url: "/applications/:client_id/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCheckTokenResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsResetTokenEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsResetTokenRequestOptions = { + method: "PATCH"; + url: "/applications/:client_id/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsResetTokenResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsDeleteTokenEndpoint = { + client_id: string; + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; +}; +declare type AppsDeleteTokenRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsCheckAuthorizationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsCheckAuthorizationRequestOptions = { + method: "GET"; + url: "/applications/:client_id/tokens/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCheckAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsResetAuthorizationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsResetAuthorizationRequestOptions = { + method: "POST"; + url: "/applications/:client_id/tokens/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsResetAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type AppsRevokeAuthorizationForApplicationEndpoint = { + client_id: string; + access_token: string; +}; +declare type AppsRevokeAuthorizationForApplicationRequestOptions = { + method: "DELETE"; + url: "/applications/:client_id/tokens/:access_token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsGetBySlugEndpoint = { + app_slug: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetBySlugRequestOptions = { + method: "GET"; + url: "/apps/:app_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetBySlugResponseData { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +} +declare type OauthAuthorizationsListAuthorizationsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OauthAuthorizationsListAuthorizationsRequestOptions = { + method: "GET"; + url: "/authorizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OauthAuthorizationsListAuthorizationsResponseData = { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +}[]; +declare type OauthAuthorizationsCreateAuthorizationEndpoint = { + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * The 20 character OAuth app client key for which to create the token. + */ + client_id?: string; + /** + * The 40 character OAuth app client secret for which to create the token. + */ + client_secret?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; +}; +declare type OauthAuthorizationsCreateAuthorizationRequestOptions = { + method: "POST"; + url: "/authorizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsCreateAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppEndpoint = { + client_id: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client and user. If provided, this API is functionally equivalent to [Get-or-create an authorization for a specific app and fingerprint](https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint). + */ + fingerprint?: string; +}; +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppRequestOptions = { + method: "PUT"; + url: "/authorizations/clients/:client_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppResponse201Data { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintEndpoint = { + client_id: string; + fingerprint: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; +}; +declare type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintRequestOptions = { + method: "PUT"; + url: "/authorizations/clients/:client_id/:fingerprint"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +export interface OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponse201Data { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsGetAuthorizationEndpoint = { + authorization_id: number; +}; +declare type OauthAuthorizationsGetAuthorizationRequestOptions = { + method: "GET"; + url: "/authorizations/:authorization_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsGetAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsUpdateAuthorizationEndpoint = { + authorization_id: number; + /** + * Replaces the authorization scopes with these. + */ + scopes?: string[]; + /** + * A list of scopes to add to this authorization. + */ + add_scopes?: string[]; + /** + * A list of scopes to remove from this authorization. + */ + remove_scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; +}; +declare type OauthAuthorizationsUpdateAuthorizationRequestOptions = { + method: "PATCH"; + url: "/authorizations/:authorization_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OauthAuthorizationsUpdateAuthorizationResponseData { + id: number; + url: string; + scopes: string[]; + token: string; + token_last_eight: string; + hashed_token: string; + app: { + url: string; + name: string; + client_id: string; + }; + note: string; + note_url: string; + updated_at: string; + created_at: string; + fingerprint: string; +} +declare type OauthAuthorizationsDeleteAuthorizationEndpoint = { + authorization_id: number; +}; +declare type OauthAuthorizationsDeleteAuthorizationRequestOptions = { + method: "DELETE"; + url: "/authorizations/:authorization_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type CodesOfConductGetAllCodesOfConductEndpoint = {} & RequiredPreview<"scarlet-witch">; +declare type CodesOfConductGetAllCodesOfConductRequestOptions = { + method: "GET"; + url: "/codes_of_conduct"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type CodesOfConductGetAllCodesOfConductResponseData = { + key: string; + name: string; + url: string; +}[]; +declare type CodesOfConductGetConductCodeEndpoint = { + key: string; +} & RequiredPreview<"scarlet-witch">; +declare type CodesOfConductGetConductCodeRequestOptions = { + method: "GET"; + url: "/codes_of_conduct/:key"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface CodesOfConductGetConductCodeResponseData { + key: string; + name: string; + url: string; + body: string; +} +declare type AppsCreateContentAttachmentEndpoint = { + content_reference_id: number; + /** + * The title of the content attachment displayed in the body or comment of an issue or pull request. + */ + title: string; + /** + * The body text of the content attachment displayed in the body or comment of an issue or pull request. This parameter supports markdown. + */ + body: string; +} & RequiredPreview<"corsair">; +declare type AppsCreateContentAttachmentRequestOptions = { + method: "POST"; + url: "/content_references/:content_reference_id/attachments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsCreateContentAttachmentResponseData { + id: number; + title: string; + body: string; +} +declare type EmojisGetEndpoint = {}; +declare type EmojisGetRequestOptions = { + method: "GET"; + url: "/emojis"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListPublicEventsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicEventsRequestOptions = { + method: "GET"; + url: "/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityGetFeedsEndpoint = {}; +declare type ActivityGetFeedsRequestOptions = { + method: "GET"; + url: "/feeds"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetFeedsResponseData { + timeline_url: string; + user_url: string; + current_user_public_url: string; + current_user_url: string; + current_user_actor_url: string; + current_user_organization_url: string; + current_user_organization_urls: string[]; + security_advisories_url: string; + _links: { + timeline: { + href: string; + type: string; + }; + user: { + href: string; + type: string; + }; + current_user_public: { + href: string; + type: string; + }; + current_user: { + href: string; + type: string; + }; + current_user_actor: { + href: string; + type: string; + }; + current_user_organization: { + href: string; + type: string; + }; + current_user_organizations: { + href: string; + type: string; + }[]; + security_advisories: { + href: string; + type: string; + }; + }; +} +declare type GistsListEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListRequestOptions = { + method: "GET"; + url: "/gists"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type GistsCreateEndpoint = { + /** + * The filenames and content of each file in the gist. The keys in the `files` object represent the filename and have the type `string`. + */ + files: GistsCreateParamsFiles; + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * When `true`, the gist will be public and available for anyone to see. + */ + public?: boolean; +}; +declare type GistsCreateRequestOptions = { + method: "POST"; + url: "/gists"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsCreateResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GistsListPublicEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListPublicRequestOptions = { + method: "GET"; + url: "/gists/public"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListPublicResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type GistsListStarredEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListStarredRequestOptions = { + method: "GET"; + url: "/gists/starred"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListStarredResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type GistsGetEndpoint = { + gist_id: string; +}; +declare type GistsGetRequestOptions = { + method: "GET"; + url: "/gists/:gist_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsGetResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GistsUpdateEndpoint = { + gist_id: string; + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * The filenames and content that make up this gist. + */ + files?: GistsUpdateParamsFiles; +}; +declare type GistsUpdateRequestOptions = { + method: "PATCH"; + url: "/gists/:gist_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsUpdateResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GistsDeleteEndpoint = { + gist_id: string; +}; +declare type GistsDeleteRequestOptions = { + method: "DELETE"; + url: "/gists/:gist_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsListCommentsEndpoint = { + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListCommentsRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListCommentsResponseData = { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type GistsCreateCommentEndpoint = { + gist_id: string; + /** + * The comment text. + */ + body: string; +}; +declare type GistsCreateCommentRequestOptions = { + method: "POST"; + url: "/gists/:gist_id/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsCreateCommentResponseData { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type GistsGetCommentEndpoint = { + gist_id: string; + comment_id: number; +}; +declare type GistsGetCommentRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsGetCommentResponseData { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type GistsUpdateCommentEndpoint = { + gist_id: string; + comment_id: number; + /** + * The comment text. + */ + body: string; +}; +declare type GistsUpdateCommentRequestOptions = { + method: "PATCH"; + url: "/gists/:gist_id/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsUpdateCommentResponseData { + id: number; + node_id: string; + url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type GistsDeleteCommentEndpoint = { + gist_id: string; + comment_id: number; +}; +declare type GistsDeleteCommentRequestOptions = { + method: "DELETE"; + url: "/gists/:gist_id/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsListCommitsEndpoint = { + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListCommitsRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListCommitsResponseData = { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; +}[]; +declare type GistsForkEndpoint = { + gist_id: string; +}; +declare type GistsForkRequestOptions = { + method: "POST"; + url: "/gists/:gist_id/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsForkResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +} +declare type GistsListForksEndpoint = { + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListForksRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListForksResponseData = { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; +}[]; +declare type GistsStarEndpoint = { + gist_id: string; +}; +declare type GistsStarRequestOptions = { + method: "PUT"; + url: "/gists/:gist_id/star"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsUnstarEndpoint = { + gist_id: string; +}; +declare type GistsUnstarRequestOptions = { + method: "DELETE"; + url: "/gists/:gist_id/star"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsCheckIsStarredEndpoint = { + gist_id: string; +}; +declare type GistsCheckIsStarredRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/star"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsGetRevisionEndpoint = { + gist_id: string; + sha: string; +}; +declare type GistsGetRevisionRequestOptions = { + method: "GET"; + url: "/gists/:gist_id/:sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GistsGetRevisionResponseData { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + truncated?: boolean; + content?: string; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; + forks: { + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + url: string; + id: string; + created_at: string; + updated_at: string; + }[]; + history: { + url: string; + version: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + change_status: { + deletions: number; + additions: number; + total: number; + }; + committed_at: string; + }[]; +} +declare type GitignoreListTemplatesEndpoint = {}; +declare type GitignoreListTemplatesRequestOptions = { + method: "GET"; + url: "/gitignore/templates"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GitignoreListTemplatesResponseData = string[]; +declare type GitignoreGetTemplateEndpoint = { + name: string; +}; +declare type GitignoreGetTemplateRequestOptions = { + method: "GET"; + url: "/gitignore/templates/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitignoreGetTemplateResponseData { + name: string; + source: string; +} +declare type AppsListReposEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListReposRequestOptions = { + method: "GET"; + url: "/installation/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsListReposResponseData { + total_count: number; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; +} +declare type AppsRevokeInstallationTokenEndpoint = {}; +declare type AppsRevokeInstallationTokenRequestOptions = { + method: "DELETE"; + url: "/installation/token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListEndpoint = { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListRequestOptions = { + method: "GET"; + url: "/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type LicensesListCommonlyUsedEndpoint = {}; +declare type LicensesListCommonlyUsedRequestOptions = { + method: "GET"; + url: "/licenses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type LicensesListCommonlyUsedResponseData = { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; +}[]; +declare type LicensesGetEndpoint = { + license: string; +}; +declare type LicensesGetRequestOptions = { + method: "GET"; + url: "/licenses/:license"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface LicensesGetResponseData { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + html_url: string; + description: string; + implementation: string; + permissions: string[]; + conditions: string[]; + limitations: string[]; + body: string; + featured: boolean; +} +declare type MarkdownRenderEndpoint = { + /** + * The Markdown text to render in HTML. Markdown content must be 400 KB or less. + */ + text: string; + /** + * The rendering mode. Can be either: + * \* `markdown` to render a document in plain Markdown, just like README.md files are rendered. + * \* `gfm` to render a document in [GitHub Flavored Markdown](https://github.github.com/gfm/), which creates links for user mentions as well as references to SHA-1 hashes, issues, and pull requests. + */ + mode?: "markdown" | "gfm"; + /** + * The repository context to use when creating references in `gfm` mode. Omit this parameter when using `markdown` mode. + */ + context?: string; +}; +declare type MarkdownRenderRequestOptions = { + method: "POST"; + url: "/markdown"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MarkdownRenderRawEndpoint = { + /** + * data parameter + */ + data: string; +} & { + headers: { + "content-type": "text/plain; charset=utf-8"; + }; +}; +declare type MarkdownRenderRawRequestOptions = { + method: "POST"; + url: "/markdown/raw"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsGetSubscriptionPlanForAccountEndpoint = { + account_id: number; +}; +declare type AppsGetSubscriptionPlanForAccountRequestOptions = { + method: "GET"; + url: "/marketplace_listing/accounts/:account_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetSubscriptionPlanForAccountResponseData { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +} +declare type AppsListPlansEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListPlansRequestOptions = { + method: "GET"; + url: "/marketplace_listing/plans"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListPlansResponseData = { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; +}[]; +declare type AppsListAccountsForPlanEndpoint = { + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListAccountsForPlanRequestOptions = { + method: "GET"; + url: "/marketplace_listing/plans/:plan_id/accounts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListAccountsForPlanResponseData = { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +}[]; +declare type AppsGetSubscriptionPlanForAccountStubbedEndpoint = { + account_id: number; +}; +declare type AppsGetSubscriptionPlanForAccountStubbedRequestOptions = { + method: "GET"; + url: "/marketplace_listing/stubbed/accounts/:account_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetSubscriptionPlanForAccountStubbedResponseData { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +} +declare type AppsListPlansStubbedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListPlansStubbedRequestOptions = { + method: "GET"; + url: "/marketplace_listing/stubbed/plans"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListPlansStubbedResponseData = { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; +}[]; +declare type AppsListAccountsForPlanStubbedEndpoint = { + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListAccountsForPlanStubbedRequestOptions = { + method: "GET"; + url: "/marketplace_listing/stubbed/plans/:plan_id/accounts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListAccountsForPlanStubbedResponseData = { + url: string; + type: string; + id: number; + login: string; + email: string; + organization_billing_email: string; + marketplace_pending_change: { + effective_date: string; + unit_count: string; + id: number; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + state: string; + unit_name: string; + bullets: string[]; + }; + }; + marketplace_purchase: { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; + }; +}[]; +declare type MetaGetEndpoint = {}; +declare type MetaGetRequestOptions = { + method: "GET"; + url: "/meta"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MetaGetResponseData { + verifiable_password_authentication: boolean; + ssh_key_fingerprints: { + MD5_RSA: string; + MD5_DSA: string; + SHA256_RSA: string; + SHA256_DSA: string; + }; + hooks: string[]; + web: string[]; + api: string[]; + git: string[]; + pages: string[]; + importer: string[]; +} +declare type ActivityListPublicEventsForRepoNetworkEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicEventsForRepoNetworkRequestOptions = { + method: "GET"; + url: "/networks/:owner/:repo/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListNotificationsForAuthenticatedUserEndpoint = { + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListNotificationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListNotificationsForAuthenticatedUserResponseData = { + id: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string; + url: string; +}[]; +declare type ActivityMarkNotificationsAsReadEndpoint = { + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; +}; +declare type ActivityMarkNotificationsAsReadRequestOptions = { + method: "PUT"; + url: "/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityGetThreadEndpoint = { + thread_id: number; +}; +declare type ActivityGetThreadRequestOptions = { + method: "GET"; + url: "/notifications/threads/:thread_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetThreadResponseData { + id: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string; + url: string; +} +declare type ActivityMarkThreadAsReadEndpoint = { + thread_id: number; +}; +declare type ActivityMarkThreadAsReadRequestOptions = { + method: "PATCH"; + url: "/notifications/threads/:thread_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityGetThreadSubscriptionForAuthenticatedUserEndpoint = { + thread_id: number; +}; +declare type ActivityGetThreadSubscriptionForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/notifications/threads/:thread_id/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetThreadSubscriptionForAuthenticatedUserResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + thread_url: string; +} +declare type ActivitySetThreadSubscriptionEndpoint = { + thread_id: number; + /** + * Unsubscribes and subscribes you to a conversation. Set `ignored` to `true` to block all notifications from this thread. + */ + ignored?: boolean; +}; +declare type ActivitySetThreadSubscriptionRequestOptions = { + method: "PUT"; + url: "/notifications/threads/:thread_id/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivitySetThreadSubscriptionResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + thread_url: string; +} +declare type ActivityDeleteThreadSubscriptionEndpoint = { + thread_id: number; +}; +declare type ActivityDeleteThreadSubscriptionRequestOptions = { + method: "DELETE"; + url: "/notifications/threads/:thread_id/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListEndpoint = { + /** + * The integer ID of the last organization that you've seen. + */ + since?: number; +}; +declare type OrgsListRequestOptions = { + method: "GET"; + url: "/organizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListResponseData = { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; +}[]; +declare type OrgsGetEndpoint = { + org: string; +}; +declare type OrgsGetRequestOptions = { + method: "GET"; + url: "/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetResponseData { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + total_private_repos: number; + owned_private_repos: number; + private_gists: number; + disk_usage: number; + collaborators: number; + billing_email: string; + plan: { + name: string; + space: number; + private_repos: number; + }; + default_repository_permission: string; + members_can_create_repositories: boolean; + two_factor_requirement_enabled: boolean; + members_allowed_repository_creation_type: string; + members_can_create_public_repositories: boolean; + members_can_create_private_repositories: boolean; + members_can_create_internal_repositories: boolean; +} +declare type OrgsUpdateEndpoint = { + org: string; + /** + * Billing email address. This address is not publicized. + */ + billing_email?: string; + /** + * The company name. + */ + company?: string; + /** + * The publicly visible email address. + */ + email?: string; + /** + * The location. + */ + location?: string; + /** + * The shorthand name of the company. + */ + name?: string; + /** + * The description of the company. + */ + description?: string; + /** + * Toggles whether an organization can use organization projects. + */ + has_organization_projects?: boolean; + /** + * Toggles whether repositories that belong to the organization can use repository projects. + */ + has_repository_projects?: boolean; + /** + * Default permission level members have for organization repositories: + * \* `read` - can pull, but not push to or administer this repository. + * \* `write` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push, and administer this repository. + * \* `none` - no permissions granted by default. + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * Toggles the ability of non-admin organization members to create repositories. Can be one of: + * \* `true` - all organization members can create repositories. + * \* `false` - only organization owners can create repositories. + * Default: `true` + * **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. **Note:** A parameter can override this parameter. See `members_allowed_repository_creation_type` in this table for details. + */ + members_can_create_repositories?: boolean; + /** + * Toggles whether organization members can create internal repositories, which are visible to all enterprise members. You can only allow members to create internal repositories if your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. Can be one of: + * \* `true` - all organization members can create internal repositories. + * \* `false` - only organization owners can create internal repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_internal_repositories?: boolean; + /** + * Toggles whether organization members can create private repositories, which are visible to organization members with permission. Can be one of: + * \* `true` - all organization members can create private repositories. + * \* `false` - only organization owners can create private repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_private_repositories?: boolean; + /** + * Toggles whether organization members can create public repositories, which are visible to anyone. Can be one of: + * \* `true` - all organization members can create public repositories. + * \* `false` - only organization owners can create public repositories. + * Default: `true`. For more information, see "[Restricting repository creation in your organization](https://help.github.com/github/setting-up-and-managing-organizations-and-teams/restricting-repository-creation-in-your-organization)" in the GitHub Help documentation. + */ + members_can_create_public_repositories?: boolean; + /** + * Specifies which types of repositories non-admin organization members can create. Can be one of: + * \* `all` - all organization members can create public and private repositories. + * \* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on GitHub Enterprise Cloud. + * \* `none` - only admin members can create repositories. + * **Note:** This parameter is deprecated and will be removed in the future. Its return value ignores internal repositories. Using this parameter overrides values set in `members_can_create_repositories`. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; +}; +declare type OrgsUpdateRequestOptions = { + method: "PATCH"; + url: "/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsUpdateResponseData { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + total_private_repos: number; + owned_private_repos: number; + private_gists: number; + disk_usage: number; + collaborators: number; + billing_email: string; + plan: { + name: string; + space: number; + private_repos: number; + }; + default_repository_permission: string; + members_can_create_repositories: boolean; + two_factor_requirement_enabled: boolean; + members_allowed_repository_creation_type: string; + members_can_create_public_repositories: boolean; + members_can_create_private_repositories: boolean; + members_can_create_internal_repositories: boolean; +} +declare type ActionsListSelfHostedRunnersForOrgEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListSelfHostedRunnersForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/runners"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListSelfHostedRunnersForOrgResponseData { + total_count: number; + runners: { + id: number; + name: string; + os: string; + status: string; + }[]; +} +declare type ActionsListRunnerApplicationsForOrgEndpoint = { + org: string; +}; +declare type ActionsListRunnerApplicationsForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/runners/downloads"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActionsListRunnerApplicationsForOrgResponseData = { + os: string; + architecture: string; + download_url: string; + filename: string; +}[]; +declare type ActionsCreateRegistrationTokenForOrgEndpoint = { + org: string; +}; +declare type ActionsCreateRegistrationTokenForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/actions/runners/registration-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRegistrationTokenForOrgResponseData { + token: string; + expires_at: string; +} +declare type ActionsCreateRemoveTokenForOrgEndpoint = { + org: string; +}; +declare type ActionsCreateRemoveTokenForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/actions/runners/remove-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRemoveTokenForOrgResponseData { + token: string; + expires_at: string; +} +declare type ActionsGetSelfHostedRunnerForOrgEndpoint = { + org: string; + runner_id: number; +}; +declare type ActionsGetSelfHostedRunnerForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetSelfHostedRunnerForOrgResponseData { + id: number; + name: string; + os: string; + status: string; +} +declare type ActionsDeleteSelfHostedRunnerFromOrgEndpoint = { + org: string; + runner_id: number; +}; +declare type ActionsDeleteSelfHostedRunnerFromOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListOrgSecretsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListOrgSecretsRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListOrgSecretsResponseData { + total_count: number; + secrets: { + name: string; + created_at: string; + updated_at: string; + visibility: string; + selected_repositories_url: string; + }[]; +} +declare type ActionsGetOrgPublicKeyEndpoint = { + org: string; +}; +declare type ActionsGetOrgPublicKeyRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets/public-key"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetOrgPublicKeyResponseData { + key_id: string; + key: string; +} +declare type ActionsGetOrgSecretEndpoint = { + org: string; + secret_name: string; +}; +declare type ActionsGetOrgSecretRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetOrgSecretResponseData { + name: string; + created_at: string; + updated_at: string; + visibility: string; + selected_repositories_url: string; +} +declare type ActionsCreateOrUpdateOrgSecretEndpoint = { + org: string; + secret_name: string; + /** + * Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get an organization public key](https://developer.github.com/v3/actions/secrets/#get-an-organization-public-key) endpoint. + */ + encrypted_value?: string; + /** + * ID of the key you used to encrypt the secret. + */ + key_id?: string; + /** + * Configures the access that repositories have to the organization secret. Can be one of: + * \- `all` - All repositories in an organization can access the secret. + * \- `private` - Private repositories in an organization can access the secret. + * \- `selected` - Only specific repositories can access the secret. + */ + visibility?: "all" | "private" | "selected"; + /** + * An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can manage the list of selected repositories using the [List selected repositories for an organization secret](https://developer.github.com/v3/actions/secrets/#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://developer.github.com/v3/actions/secrets/#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://developer.github.com/v3/actions/secrets/#remove-selected-repository-from-an-organization-secret) endpoints. + */ + selected_repository_ids?: string[]; +}; +declare type ActionsCreateOrUpdateOrgSecretRequestOptions = { + method: "PUT"; + url: "/orgs/:org/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDeleteOrgSecretEndpoint = { + org: string; + secret_name: string; +}; +declare type ActionsDeleteOrgSecretRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListSelectedReposForOrgSecretEndpoint = { + org: string; + secret_name: string; +}; +declare type ActionsListSelectedReposForOrgSecretRequestOptions = { + method: "GET"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListSelectedReposForOrgSecretResponseData { + total_count: number; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }[]; +} +declare type ActionsSetSelectedReposForOrgSecretEndpoint = { + org: string; + secret_name: string; + /** + * An array of repository ids that can access the organization secret. You can only provide a list of repository ids when the `visibility` is set to `selected`. You can add and remove individual repositories using the [Set selected repositories for an organization secret](https://developer.github.com/v3/actions/secrets/#set-selected-repositories-for-an-organization-secret) and [Remove selected repository from an organization secret](https://developer.github.com/v3/actions/secrets/#remove-selected-repository-from-an-organization-secret) endpoints. + */ + selected_repository_ids?: number[]; +}; +declare type ActionsSetSelectedReposForOrgSecretRequestOptions = { + method: "PUT"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsAddSelectedRepoToOrgSecretEndpoint = { + org: string; + secret_name: string; + repository_id: number; +}; +declare type ActionsAddSelectedRepoToOrgSecretRequestOptions = { + method: "PUT"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsRemoveSelectedRepoFromOrgSecretEndpoint = { + org: string; + secret_name: string; + repository_id: number; +}; +declare type ActionsRemoveSelectedRepoFromOrgSecretRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/actions/secrets/:secret_name/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListBlockedUsersEndpoint = { + org: string; +}; +declare type OrgsListBlockedUsersRequestOptions = { + method: "GET"; + url: "/orgs/:org/blocks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListBlockedUsersResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsCheckBlockedUserEndpoint = { + org: string; + username: string; +}; +declare type OrgsCheckBlockedUserRequestOptions = { + method: "GET"; + url: "/orgs/:org/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsBlockUserEndpoint = { + org: string; + username: string; +}; +declare type OrgsBlockUserRequestOptions = { + method: "PUT"; + url: "/orgs/:org/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsUnblockUserEndpoint = { + org: string; + username: string; +}; +declare type OrgsUnblockUserRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListCredentialAuthorizationsEndpoint = { + org: string; +}; +declare type OrgsListCredentialAuthorizationsRequestOptions = { + method: "GET"; + url: "/orgs/:org/credential-authorizations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListCredentialAuthorizationsResponseData = { + login: string; + credential_id: string; + credential_type: string; + token_last_eight: string; + credential_authorized_at: string; + scopes: string[]; +}[]; +declare type OrgsRemoveCredentialAuthorizationEndpoint = { + org: string; + credential_id: number; +}; +declare type OrgsRemoveCredentialAuthorizationRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/credential-authorizations/:credential_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListPublicOrgEventsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicOrgEventsRequestOptions = { + method: "GET"; + url: "/orgs/:org/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListHooksEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListHooksRequestOptions = { + method: "GET"; + url: "/orgs/:org/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListHooksResponseData = { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +}[]; +declare type OrgsCreateHookEndpoint = { + org: string; + /** + * Must be passed as "web". + */ + name: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#create-hook-config-params). + */ + config: OrgsCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type OrgsCreateHookRequestOptions = { + method: "POST"; + url: "/orgs/:org/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsCreateHookResponseData { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +} +declare type OrgsGetHookEndpoint = { + org: string; + hook_id: number; +}; +declare type OrgsGetHookRequestOptions = { + method: "GET"; + url: "/orgs/:org/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetHookResponseData { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +} +declare type OrgsUpdateHookEndpoint = { + org: string; + hook_id: number; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#update-hook-config-params). + */ + config?: OrgsUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type OrgsUpdateHookRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsUpdateHookResponseData { + id: number; + url: string; + ping_url: string; + name: string; + events: string[]; + active: boolean; + config: { + url: string; + content_type: string; + }; + updated_at: string; + created_at: string; +} +declare type OrgsDeleteHookEndpoint = { + org: string; + hook_id: number; +}; +declare type OrgsDeleteHookRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsPingHookEndpoint = { + org: string; + hook_id: number; +}; +declare type OrgsPingHookRequestOptions = { + method: "POST"; + url: "/orgs/:org/hooks/:hook_id/pings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsGetOrgInstallationEndpoint = { + org: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetOrgInstallationRequestOptions = { + method: "GET"; + url: "/orgs/:org/installation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetOrgInstallationResponseData { + id: number; + account: { + login: string; + id: number; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + checks: string; + metadata: string; + contents: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; +} +declare type OrgsListInstallationsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type OrgsListInstallationsRequestOptions = { + method: "GET"; + url: "/orgs/:org/installations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsListInstallationsResponseData { + total_count: number; + installations: { + id: number; + account: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + deployments: string; + metadata: string; + pull_requests: string; + statuses: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; + }[]; +} +declare type InteractionsGetRestrictionsForOrgEndpoint = { + org: string; +} & RequiredPreview<"sombra">; +declare type InteractionsGetRestrictionsForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsGetRestrictionsForOrgResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsAddOrUpdateRestrictionsForOrgEndpoint = { + org: string; + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests in public repositories for the given organization. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; +} & RequiredPreview<"sombra">; +declare type InteractionsAddOrUpdateRestrictionsForOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsAddOrUpdateRestrictionsForOrgResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsRemoveRestrictionsForOrgEndpoint = { + org: string; +} & RequiredPreview<"sombra">; +declare type InteractionsRemoveRestrictionsForOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListPendingInvitationsEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListPendingInvitationsRequestOptions = { + method: "GET"; + url: "/orgs/:org/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListPendingInvitationsResponseData = { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +}[]; +declare type OrgsCreateInvitationEndpoint = { + org: string; + /** + * **Required unless you provide `email`**. GitHub user ID for the person you are inviting. + */ + invitee_id?: number; + /** + * **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. + */ + email?: string; + /** + * Specify role for new member. Can be one of: + * \* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * \* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * \* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + */ + role?: "admin" | "direct_member" | "billing_manager"; + /** + * Specify IDs for the teams you want to invite new members to. + */ + team_ids?: number[]; +}; +declare type OrgsCreateInvitationRequestOptions = { + method: "POST"; + url: "/orgs/:org/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsCreateInvitationResponseData { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +} +declare type OrgsListInvitationTeamsEndpoint = { + org: string; + invitation_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListInvitationTeamsRequestOptions = { + method: "GET"; + url: "/orgs/:org/invitations/:invitation_id/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListInvitationTeamsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type IssuesListForOrgEndpoint = { + org: string; + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListForOrgResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type OrgsListMembersEndpoint = { + org: string; + /** + * Filter members returned in the list. Can be one of: + * \* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. + * \* `all` - All members the authenticated user can see. + */ + filter?: "2fa_disabled" | "all"; + /** + * Filter members returned by their role. Can be one of: + * \* `all` - All members of the organization, regardless of role. + * \* `admin` - Organization owners. + * \* `member` - Non-owner organization members. + */ + role?: "all" | "admin" | "member"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListMembersRequestOptions = { + method: "GET"; + url: "/orgs/:org/members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListMembersResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsCheckMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsCheckMembershipRequestOptions = { + method: "GET"; + url: "/orgs/:org/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsRemoveMemberEndpoint = { + org: string; + username: string; +}; +declare type OrgsRemoveMemberRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsGetMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsGetMembershipRequestOptions = { + method: "GET"; + url: "/orgs/:org/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetMembershipResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type OrgsAddOrUpdateMembershipEndpoint = { + org: string; + username: string; + /** + * The role to give the user in the organization. Can be one of: + * \* `admin` - The user will become an owner of the organization. + * \* `member` - The user will become a non-owner member of the organization. + */ + role?: "admin" | "member"; +}; +declare type OrgsAddOrUpdateMembershipRequestOptions = { + method: "PUT"; + url: "/orgs/:org/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsAddOrUpdateMembershipResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type OrgsRemoveMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsRemoveMembershipRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsStartForOrgEndpoint = { + org: string; + /** + * A list of arrays indicating which repositories should be migrated. + */ + repositories: string[]; + /** + * Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + */ + lock_repositories?: boolean; + /** + * Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + */ + exclude_attachments?: boolean; +}; +declare type MigrationsStartForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsStartForOrgResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsListForOrgEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListForOrgResponseData = { + id: number; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +}[]; +declare type MigrationsGetStatusForOrgEndpoint = { + org: string; + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsGetStatusForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations/:migration_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsGetStatusForOrgResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsDownloadArchiveForOrgEndpoint = { + org: string; + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsDownloadArchiveForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsDeleteArchiveForOrgEndpoint = { + org: string; + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsDeleteArchiveForOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsUnlockRepoForOrgEndpoint = { + org: string; + migration_id: number; + repo_name: string; +} & RequiredPreview<"wyandotte">; +declare type MigrationsUnlockRepoForOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/migrations/:migration_id/repos/:repo_name/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsListReposForOrgEndpoint = { + org: string; + migration_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListReposForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/migrations/:migration_id/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListReposForOrgResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type OrgsListOutsideCollaboratorsEndpoint = { + org: string; + /** + * Filter the list of outside collaborators. Can be one of: + * \* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. + * \* `all`: All outside collaborators. + */ + filter?: "2fa_disabled" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListOutsideCollaboratorsRequestOptions = { + method: "GET"; + url: "/orgs/:org/outside_collaborators"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListOutsideCollaboratorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsRemoveOutsideCollaboratorEndpoint = { + org: string; + username: string; +}; +declare type OrgsRemoveOutsideCollaboratorRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/outside_collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsRemoveOutsideCollaboratorResponseData { + message: string; + documentation_url: string; +} +declare type OrgsConvertMemberToOutsideCollaboratorEndpoint = { + org: string; + username: string; +}; +declare type OrgsConvertMemberToOutsideCollaboratorRequestOptions = { + method: "PUT"; + url: "/orgs/:org/outside_collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsConvertMemberToOutsideCollaboratorResponseData { + message: string; + documentation_url: string; +} +declare type ProjectsListForOrgEndpoint = { + org: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListForOrgResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ProjectsCreateForOrgEndpoint = { + org: string; + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateForOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateForOrgResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type OrgsListPublicMembersEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListPublicMembersRequestOptions = { + method: "GET"; + url: "/orgs/:org/public_members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListPublicMembersResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type OrgsCheckPublicMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsCheckPublicMembershipRequestOptions = { + method: "GET"; + url: "/orgs/:org/public_members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsPublicizeMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsPublicizeMembershipRequestOptions = { + method: "PUT"; + url: "/orgs/:org/public_members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsConcealMembershipEndpoint = { + org: string; + username: string; +}; +declare type OrgsConcealMembershipRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/public_members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListForOrgEndpoint = { + org: string; + /** + * Specifies the types of repositories you want returned. Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`, `internal`. Default: `all`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `type` can also be `internal`. + */ + type?: "all" | "public" | "private" | "forks" | "sources" | "member" | "internal"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListForOrgResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type ReposCreateInOrgEndpoint = { + org: string; + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to create a private repository or `false` to create a public one. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. For more information, see "[Creating an internal repository](https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-repository-visibility#about-internal-repositories)" in the GitHub Help documentation. + * The `visibility` parameter overrides the `private` parameter when you use both parameters with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; +}; +declare type ReposCreateInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateInOrgResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type TeamsListIdPGroupsForOrgEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListIdPGroupsForOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/team-sync/groups"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsListIdPGroupsForOrgResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsListEndpoint = { + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type TeamsCreateEndpoint = { + org: string; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * List GitHub IDs for organization members who will become team maintainers. + */ + maintainers?: string[]; + /** + * The full name (e.g., "organization-name/repository-name") of repositories to add the team to. + */ + repo_names?: string[]; + /** + * The level of privacy this team should have. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * Default for child team: `closed` + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; +}; +declare type TeamsCreateRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsGetByNameEndpoint = { + org: string; + team_slug: string; +}; +declare type TeamsGetByNameRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetByNameResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsUpdateInOrgEndpoint = { + org: string; + team_slug: string; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. When a team is nested, the `privacy` for parent teams cannot be `secret`. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; +}; +declare type TeamsUpdateInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateInOrgResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsDeleteInOrgEndpoint = { + org: string; + team_slug: string; +}; +declare type TeamsDeleteInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionsInOrgResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + /** + * The discussion post's title. + */ + title: string; + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; +}; +declare type TeamsCreateDiscussionInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; +}; +declare type TeamsGetDiscussionInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * The discussion post's title. + */ + title?: string; + /** + * The discussion post's body text. + */ + body?: string; +}; +declare type TeamsUpdateDiscussionInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; +}; +declare type TeamsDeleteDiscussionInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionCommentsInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionCommentsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionCommentsInOrgResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsCreateDiscussionCommentInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionCommentInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; +}; +declare type TeamsGetDiscussionCommentInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionCommentInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsUpdateDiscussionCommentInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionCommentInOrgResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; +}; +declare type TeamsDeleteDiscussionCommentInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForTeamDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionCommentInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionCommentInOrgResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionCommentInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionCommentInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionCommentInOrgResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForTeamDiscussionCommentEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + comment_number: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForTeamDiscussionCommentRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/comments/:comment_number/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForTeamDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionInOrgResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionInOrgEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionInOrgRequestOptions = { + method: "POST"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionInOrgResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForTeamDiscussionEndpoint = { + org: string; + team_slug: string; + discussion_number: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForTeamDiscussionRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/discussions/:discussion_number/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListPendingInvitationsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListPendingInvitationsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListPendingInvitationsInOrgResponseData = { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +}[]; +declare type TeamsListMembersInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListMembersInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListMembersInOrgResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type TeamsGetMembershipInOrgEndpoint = { + org: string; + team_slug: string; + username: string; +}; +declare type TeamsGetMembershipInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetMembershipInOrgResponseData { + url: string; + role: string; + state: string; +} +declare type TeamsAddOrUpdateMembershipInOrgEndpoint = { + org: string; + team_slug: string; + username: string; + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; +}; +declare type TeamsAddOrUpdateMembershipInOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/teams/:team_slug/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateMembershipInOrgResponseData { + url: string; + role: string; + state: string; +} +export interface TeamsAddOrUpdateMembershipInOrgResponse422Data { + message: string; + errors: { + code: string; + field: string; + resource: string; + }[]; +} +declare type TeamsRemoveMembershipInOrgEndpoint = { + org: string; + team_slug: string; + username: string; +}; +declare type TeamsRemoveMembershipInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListProjectsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type TeamsListProjectsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListProjectsInOrgResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +}[]; +declare type TeamsReviewProjectInOrgEndpoint = { + org: string; + team_slug: string; + project_id: number; +} & RequiredPreview<"inertia">; +declare type TeamsReviewProjectInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsReviewProjectInOrgResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateProjectInOrgEndpoint = { + org: string; + team_slug: string; + project_id: number; + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + permission?: "read" | "write" | "admin"; +} & RequiredPreview<"inertia">; +declare type TeamsAddOrUpdateProjectInOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/teams/:team_slug/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateProjectInOrgResponseData { + message: string; + documentation_url: string; +} +declare type TeamsRemoveProjectInOrgEndpoint = { + org: string; + team_slug: string; + project_id: number; +}; +declare type TeamsRemoveProjectInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListReposInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListReposInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListReposInOrgResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type TeamsCheckManagesRepoInOrgEndpoint = { + org: string; + team_slug: string; + owner: string; + repo: string; +}; +declare type TeamsCheckManagesRepoInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCheckManagesRepoInOrgResponseData { + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateRepoInOrgEndpoint = { + org: string; + team_slug: string; + owner: string; + repo: string; + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * \* `maintain` - team members can manage the repository without access to sensitive or destructive actions. Recommended for project managers. Only applies to repositories owned by organizations. + * \* `triage` - team members can proactively manage issues and pull requests without write access. Recommended for contributors who triage a repository. Only applies to repositories owned by organizations. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; +}; +declare type TeamsAddOrUpdateRepoInOrgRequestOptions = { + method: "PUT"; + url: "/orgs/:org/teams/:team_slug/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsRemoveRepoInOrgEndpoint = { + org: string; + team_slug: string; + owner: string; + repo: string; +}; +declare type TeamsRemoveRepoInOrgRequestOptions = { + method: "DELETE"; + url: "/orgs/:org/teams/:team_slug/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListIdPGroupsInOrgEndpoint = { + org: string; + team_slug: string; +}; +declare type TeamsListIdPGroupsInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsListIdPGroupsInOrgResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsCreateOrUpdateIdPGroupConnectionsInOrgEndpoint = { + org: string; + team_slug: string; + /** + * The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. + */ + groups: TeamsCreateOrUpdateIdPGroupConnectionsInOrgParamsGroups[]; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsInOrgRequestOptions = { + method: "PATCH"; + url: "/orgs/:org/teams/:team_slug/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateOrUpdateIdPGroupConnectionsInOrgResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }; +} +declare type TeamsListChildInOrgEndpoint = { + org: string; + team_slug: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListChildInOrgRequestOptions = { + method: "GET"; + url: "/orgs/:org/teams/:team_slug/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListChildInOrgResponseData = { + id: number; + node_id: string; + url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + }; +}[]; +declare type ProjectsGetCardEndpoint = { + card_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsGetCardRequestOptions = { + method: "GET"; + url: "/projects/columns/cards/:card_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsGetCardResponseData { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +} +declare type ProjectsUpdateCardEndpoint = { + card_id: number; + /** + * The card's note content. Only valid for cards without another type of content, so this cannot be specified if the card already has a `content_id` and `content_type`. + */ + note?: string; + /** + * Use `true` to archive a project card. Specify `false` if you need to restore a previously archived project card. + */ + archived?: boolean; +} & RequiredPreview<"inertia">; +declare type ProjectsUpdateCardRequestOptions = { + method: "PATCH"; + url: "/projects/columns/cards/:card_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsUpdateCardResponseData { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +} +declare type ProjectsDeleteCardEndpoint = { + card_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsDeleteCardRequestOptions = { + method: "DELETE"; + url: "/projects/columns/cards/:card_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsMoveCardEndpoint = { + card_id: number; + /** + * Can be one of `top`, `bottom`, or `after:`, where `` is the `id` value of a card in the same column, or in the new column specified by `column_id`. + */ + position: string; + /** + * The `id` value of a column in the same project. + */ + column_id?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsMoveCardRequestOptions = { + method: "POST"; + url: "/projects/columns/cards/:card_id/moves"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsGetColumnEndpoint = { + column_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsGetColumnRequestOptions = { + method: "GET"; + url: "/projects/columns/:column_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsGetColumnResponseData { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +} +declare type ProjectsUpdateColumnEndpoint = { + column_id: number; + /** + * The new name of the column. + */ + name: string; +} & RequiredPreview<"inertia">; +declare type ProjectsUpdateColumnRequestOptions = { + method: "PATCH"; + url: "/projects/columns/:column_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsUpdateColumnResponseData { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +} +declare type ProjectsDeleteColumnEndpoint = { + column_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsDeleteColumnRequestOptions = { + method: "DELETE"; + url: "/projects/columns/:column_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsListCardsEndpoint = { + column_id: number; + /** + * Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`. + */ + archived_state?: "all" | "archived" | "not_archived"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListCardsRequestOptions = { + method: "GET"; + url: "/projects/columns/:column_id/cards"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListCardsResponseData = { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +}[]; +declare type ProjectsCreateCardEndpoint = { + column_id: number; + /** + * The card's note content. Only valid for cards without another type of content, so you must omit when specifying `content_id` and `content_type`. + */ + note?: string; + /** + * The issue or pull request id you want to associate with this card. You can use the [List repository issues](https://developer.github.com/v3/issues/#list-repository-issues) and [List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests) endpoints to find this id. + * **Note:** Depending on whether you use the issue id or pull request id, you will need to specify `Issue` or `PullRequest` as the `content_type`. + */ + content_id?: number; + /** + * **Required if you provide `content_id`**. The type of content you want to associate with this card. Use `Issue` when `content_id` is an issue id and use `PullRequest` when `content_id` is a pull request id. + */ + content_type?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateCardRequestOptions = { + method: "POST"; + url: "/projects/columns/:column_id/cards"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateCardResponseData { + url: string; + id: number; + node_id: string; + note: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + archived: boolean; + column_url: string; + content_url: string; + project_url: string; +} +declare type ProjectsMoveColumnEndpoint = { + column_id: number; + /** + * Can be one of `first`, `last`, or `after:`, where `` is the `id` value of a column in the same project. + */ + position: string; +} & RequiredPreview<"inertia">; +declare type ProjectsMoveColumnRequestOptions = { + method: "POST"; + url: "/projects/columns/:column_id/moves"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsGetEndpoint = { + project_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsGetRequestOptions = { + method: "GET"; + url: "/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsGetResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ProjectsUpdateEndpoint = { + project_id: number; + /** + * The name of the project. + */ + name?: string; + /** + * The description of the project. + */ + body?: string; + /** + * State of the project. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The permission level that determines whether all members of the project's organization can see and/or make changes to the project. Setting `organization_permission` is only available for organization projects. If an organization member belongs to a team with a higher level of access or is a collaborator with a higher level of access, their permission level is not lowered by `organization_permission`. For information on changing access for a team or collaborator, see [Add or update team project](https://developer.github.com/v3/teams/#add-or-update-team-project) or [Add user as a collaborator](https://developer.github.com/v3/projects/collaborators/#add-user-as-a-collaborator). + * + * **Note:** Updating a project's `organization_permission` requires `admin` access to the project. + * + * Can be one of: + * \* `read` - Organization members can read, but not write to or administer this project. + * \* `write` - Organization members can read and write, but not administer this project. + * \* `admin` - Organization members can read, write and administer this project. + * \* `none` - Organization members can only see this project if it is public. + */ + organization_permission?: string; + /** + * Sets the visibility of a project board. Setting `private` is only available for organization and user projects. **Note:** Updating a project's visibility requires `admin` access to the project. + * + * Can be one of: + * \* `false` - Anyone can see the project. + * \* `true` - Only the user can view a project board created on a user account. Organization members with the appropriate `organization_permission` can see project boards in an organization account. + */ + private?: boolean; +} & RequiredPreview<"inertia">; +declare type ProjectsUpdateRequestOptions = { + method: "PATCH"; + url: "/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsUpdateResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ProjectsDeleteEndpoint = { + project_id: number; +} & RequiredPreview<"inertia">; +declare type ProjectsDeleteRequestOptions = { + method: "DELETE"; + url: "/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsListCollaboratorsEndpoint = { + project_id: number; + /** + * Filters the collaborators by their affiliation. Can be one of: + * \* `outside`: Outside collaborators of a project that are not a member of the project's organization. + * \* `direct`: Collaborators with permissions to a project, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListCollaboratorsRequestOptions = { + method: "GET"; + url: "/projects/:project_id/collaborators"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListCollaboratorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ProjectsAddCollaboratorEndpoint = { + project_id: number; + username: string; + /** + * The permission to grant the collaborator. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." Can be one of: + * \* `read` - can read, but not write to or administer this project. + * \* `write` - can read and write, but not administer this project. + * \* `admin` - can read, write and administer this project. + */ + permission?: "read" | "write" | "admin"; +} & RequiredPreview<"inertia">; +declare type ProjectsAddCollaboratorRequestOptions = { + method: "PUT"; + url: "/projects/:project_id/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsRemoveCollaboratorEndpoint = { + project_id: number; + username: string; +} & RequiredPreview<"inertia">; +declare type ProjectsRemoveCollaboratorRequestOptions = { + method: "DELETE"; + url: "/projects/:project_id/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ProjectsReviewUserPermissionLevelEndpoint = { + project_id: number; + username: string; +} & RequiredPreview<"inertia">; +declare type ProjectsReviewUserPermissionLevelRequestOptions = { + method: "GET"; + url: "/projects/:project_id/collaborators/:username/permission"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsReviewUserPermissionLevelResponseData { + permission: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ProjectsListColumnsEndpoint = { + project_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListColumnsRequestOptions = { + method: "GET"; + url: "/projects/:project_id/columns"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListColumnsResponseData = { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +}[]; +declare type ProjectsCreateColumnEndpoint = { + project_id: number; + /** + * The name of the column. + */ + name: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateColumnRequestOptions = { + method: "POST"; + url: "/projects/:project_id/columns"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateColumnResponseData { + url: string; + project_url: string; + cards_url: string; + id: number; + node_id: string; + name: string; + created_at: string; + updated_at: string; +} +declare type RateLimitGetEndpoint = {}; +declare type RateLimitGetRequestOptions = { + method: "GET"; + url: "/rate_limit"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface RateLimitGetResponseData { + resources: { + core: { + limit: number; + remaining: number; + reset: number; + }; + search: { + limit: number; + remaining: number; + reset: number; + }; + graphql: { + limit: number; + remaining: number; + reset: number; + }; + integration_manifest: { + limit: number; + remaining: number; + reset: number; + }; + }; + rate: { + limit: number; + remaining: number; + reset: number; + }; +} +declare type ReactionsDeleteLegacyEndpoint = { + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteLegacyRequestOptions = { + method: "DELETE"; + url: "/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ReposUpdateEndpoint = { + owner: string; + repo: string; + /** + * The name of the repository. + */ + name?: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to make the repository private or `false` to make it public. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. The `visibility` parameter overrides the `private` parameter when you use both along with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * Updates the default branch for this repository. + */ + default_branch?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; + /** + * `true` to archive this repository. **Note**: You cannot unarchive repositories through the API. + */ + archived?: boolean; +}; +declare type ReposUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ReposDeleteEndpoint = { + owner: string; + repo: string; +}; +declare type ReposDeleteRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposDeleteResponseData { + message: string; + documentation_url: string; +} +declare type ActionsListArtifactsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListArtifactsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/artifacts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListArtifactsForRepoResponseData { + total_count: number; + artifacts: { + id: number; + node_id: string; + name: string; + size_in_bytes: number; + url: string; + archive_download_url: string; + expired: boolean; + created_at: string; + expires_at: string; + }[]; +} +declare type ActionsGetArtifactEndpoint = { + owner: string; + repo: string; + artifact_id: number; +}; +declare type ActionsGetArtifactRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/artifacts/:artifact_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetArtifactResponseData { + id: number; + node_id: string; + name: string; + size_in_bytes: number; + url: string; + archive_download_url: string; + expired: boolean; + created_at: string; + expires_at: string; +} +declare type ActionsDeleteArtifactEndpoint = { + owner: string; + repo: string; + artifact_id: number; +}; +declare type ActionsDeleteArtifactRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/artifacts/:artifact_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDownloadArtifactEndpoint = { + owner: string; + repo: string; + artifact_id: number; + archive_format: string; +}; +declare type ActionsDownloadArtifactRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/artifacts/:artifact_id/:archive_format"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsGetWorkflowJobEndpoint = { + owner: string; + repo: string; + job_id: number; +}; +declare type ActionsGetWorkflowJobRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/jobs/:job_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowJobResponseData { + id: number; + run_id: number; + run_url: string; + node_id: string; + head_sha: string; + url: string; + html_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + name: string; + steps: { + name: string; + status: string; + conclusion: string; + number: number; + started_at: string; + completed_at: string; + }[]; + check_run_url: string; +} +declare type ActionsDownloadWorkflowJobLogsEndpoint = { + owner: string; + repo: string; + job_id: number; +}; +declare type ActionsDownloadWorkflowJobLogsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/jobs/:job_id/logs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListSelfHostedRunnersForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListSelfHostedRunnersForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runners"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListSelfHostedRunnersForRepoResponseData { + total_count: number; + runners: { + id: number; + name: string; + os: string; + status: string; + }[]; +} +declare type ActionsListRunnerApplicationsForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsListRunnerApplicationsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runners/downloads"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActionsListRunnerApplicationsForRepoResponseData = { + os: string; + architecture: string; + download_url: string; + filename: string; +}[]; +declare type ActionsCreateRegistrationTokenForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsCreateRegistrationTokenForRepoRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runners/registration-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRegistrationTokenForRepoResponseData { + token: string; + expires_at: string; +} +declare type ActionsCreateRemoveTokenForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsCreateRemoveTokenForRepoRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runners/remove-token"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsCreateRemoveTokenForRepoResponseData { + token: string; + expires_at: string; +} +declare type ActionsGetSelfHostedRunnerForRepoEndpoint = { + owner: string; + repo: string; + runner_id: number; +}; +declare type ActionsGetSelfHostedRunnerForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetSelfHostedRunnerForRepoResponseData { + id: number; + name: string; + os: string; + status: string; +} +declare type ActionsDeleteSelfHostedRunnerFromRepoEndpoint = { + owner: string; + repo: string; + runner_id: number; +}; +declare type ActionsDeleteSelfHostedRunnerFromRepoRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/runners/:runner_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListRepoWorkflowRunsEndpoint = { + owner: string; + repo: string; + /** + * Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. + */ + actor?: string; + /** + * Returns workflow runs associated with a branch. Use the name of the branch of the `push`. + */ + branch?: string; + /** + * Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)" in the GitHub Help documentation. + */ + event?: string; + /** + * Returns workflow runs associated with the check run `status` or `conclusion` you specify. For example, a conclusion can be `success` or a status can be `completed`. For more information, see the `status` and `conclusion` options available in "[Create a check run](https://developer.github.com/v3/checks/runs/#create-a-check-run)." + */ + status?: "completed" | "status" | "conclusion"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListRepoWorkflowRunsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListRepoWorkflowRunsResponseData { + total_count: number; + workflow_runs: { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + run_number: number; + event: string; + status: string; + conclusion: string; + url: string; + html_url: string; + pull_requests: unknown[]; + created_at: string; + updated_at: string; + jobs_url: string; + logs_url: string; + check_suite_url: string; + artifacts_url: string; + cancel_url: string; + rerun_url: string; + workflow_url: string; + head_commit: { + id: string; + tree_id: string; + message: string; + timestamp: string; + author: { + name: string; + email: string; + }; + committer: { + name: string; + email: string; + }; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + head_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + private: boolean; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; + }[]; +} +declare type ActionsGetWorkflowRunEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsGetWorkflowRunRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowRunResponseData { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + run_number: number; + event: string; + status: string; + conclusion: string; + url: string; + html_url: string; + pull_requests: unknown[]; + created_at: string; + updated_at: string; + jobs_url: string; + logs_url: string; + check_suite_url: string; + artifacts_url: string; + cancel_url: string; + rerun_url: string; + workflow_url: string; + head_commit: { + id: string; + tree_id: string; + message: string; + timestamp: string; + author: { + name: string; + email: string; + }; + committer: { + name: string; + email: string; + }; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + head_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + private: boolean; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; +} +declare type ActionsListWorkflowRunArtifactsEndpoint = { + owner: string; + repo: string; + run_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListWorkflowRunArtifactsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/artifacts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListWorkflowRunArtifactsResponseData { + total_count: number; + artifacts: { + id: number; + node_id: string; + name: string; + size_in_bytes: number; + url: string; + archive_download_url: string; + expired: boolean; + created_at: string; + expires_at: string; + }[]; +} +declare type ActionsCancelWorkflowRunEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsCancelWorkflowRunRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runs/:run_id/cancel"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListJobsForWorkflowRunEndpoint = { + owner: string; + repo: string; + run_id: number; + /** + * Filters jobs by their `completed_at` timestamp. Can be one of: + * \* `latest`: Returns jobs from the most recent execution of the workflow run. + * \* `all`: Returns all jobs for a workflow run, including from old executions of the workflow run. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListJobsForWorkflowRunRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/jobs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListJobsForWorkflowRunResponseData { + total_count: number; + jobs: { + id: number; + run_id: number; + run_url: string; + node_id: string; + head_sha: string; + url: string; + html_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + name: string; + steps: { + name: string; + status: string; + conclusion: string; + number: number; + started_at: string; + completed_at: string; + }[]; + check_run_url: string; + }[]; +} +declare type ActionsDownloadWorkflowRunLogsEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsDownloadWorkflowRunLogsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/logs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDeleteWorkflowRunLogsEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsDeleteWorkflowRunLogsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/runs/:run_id/logs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsReRunWorkflowEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsReRunWorkflowRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/actions/runs/:run_id/rerun"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsGetWorkflowRunUsageEndpoint = { + owner: string; + repo: string; + run_id: number; +}; +declare type ActionsGetWorkflowRunUsageRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/runs/:run_id/timing"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowRunUsageResponseData { + billable: { + UBUNTU: { + total_ms: number; + jobs: number; + }; + MACOS: { + total_ms: number; + jobs: number; + }; + WINDOWS: { + total_ms: number; + jobs: number; + }; + }; + run_duration_ms: number; +} +declare type ActionsListRepoSecretsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListRepoSecretsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/secrets"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListRepoSecretsResponseData { + total_count: number; + secrets: { + name: string; + created_at: string; + updated_at: string; + }[]; +} +declare type ActionsGetRepoPublicKeyEndpoint = { + owner: string; + repo: string; +}; +declare type ActionsGetRepoPublicKeyRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/secrets/public-key"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetRepoPublicKeyResponseData { + key_id: string; + key: string; +} +declare type ActionsGetRepoSecretEndpoint = { + owner: string; + repo: string; + secret_name: string; +}; +declare type ActionsGetRepoSecretRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetRepoSecretResponseData { + name: string; + created_at: string; + updated_at: string; +} +declare type ActionsCreateOrUpdateRepoSecretEndpoint = { + owner: string; + repo: string; + secret_name: string; + /** + * Value for your secret, encrypted with [LibSodium](https://libsodium.gitbook.io/doc/bindings_for_other_languages) using the public key retrieved from the [Get a repository public key](https://developer.github.com/v3/actions/secrets/#get-a-repository-public-key) endpoint. + */ + encrypted_value?: string; + /** + * ID of the key you used to encrypt the secret. + */ + key_id?: string; +}; +declare type ActionsCreateOrUpdateRepoSecretRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsDeleteRepoSecretEndpoint = { + owner: string; + repo: string; + secret_name: string; +}; +declare type ActionsDeleteRepoSecretRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/actions/secrets/:secret_name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActionsListRepoWorkflowsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListRepoWorkflowsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListRepoWorkflowsResponseData { + total_count: number; + workflows: { + id: number; + node_id: string; + name: string; + path: string; + state: string; + created_at: string; + updated_at: string; + url: string; + html_url: string; + badge_url: string; + }[]; +} +declare type ActionsGetWorkflowEndpoint = { + owner: string; + repo: string; + workflow_id: number; +}; +declare type ActionsGetWorkflowRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows/:workflow_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowResponseData { + id: number; + node_id: string; + name: string; + path: string; + state: string; + created_at: string; + updated_at: string; + url: string; + html_url: string; + badge_url: string; +} +declare type ActionsListWorkflowRunsEndpoint = { + owner: string; + repo: string; + workflow_id: number; + /** + * Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. + */ + actor?: string; + /** + * Returns workflow runs associated with a branch. Use the name of the branch of the `push`. + */ + branch?: string; + /** + * Returns workflow run triggered by the event you specify. For example, `push`, `pull_request` or `issue`. For more information, see "[Events that trigger workflows](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows)" in the GitHub Help documentation. + */ + event?: string; + /** + * Returns workflow runs associated with the check run `status` or `conclusion` you specify. For example, a conclusion can be `success` or a status can be `completed`. For more information, see the `status` and `conclusion` options available in "[Create a check run](https://developer.github.com/v3/checks/runs/#create-a-check-run)." + */ + status?: "completed" | "status" | "conclusion"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActionsListWorkflowRunsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows/:workflow_id/runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsListWorkflowRunsResponseData { + total_count: number; + workflow_runs: { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + run_number: number; + event: string; + status: string; + conclusion: string; + url: string; + html_url: string; + pull_requests: unknown[]; + created_at: string; + updated_at: string; + jobs_url: string; + logs_url: string; + check_suite_url: string; + artifacts_url: string; + cancel_url: string; + rerun_url: string; + workflow_url: string; + head_commit: { + id: string; + tree_id: string; + message: string; + timestamp: string; + author: { + name: string; + email: string; + }; + committer: { + name: string; + email: string; + }; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + head_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + private: boolean; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; + }[]; +} +declare type ActionsGetWorkflowUsageEndpoint = { + owner: string; + repo: string; + workflow_id: number; +}; +declare type ActionsGetWorkflowUsageRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/actions/workflows/:workflow_id/timing"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActionsGetWorkflowUsageResponseData { + billable: { + UBUNTU: { + total_ms: number; + }; + MACOS: { + total_ms: number; + }; + WINDOWS: { + total_ms: number; + }; + }; +} +declare type IssuesListAssigneesEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListAssigneesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/assignees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListAssigneesResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type IssuesCheckAssigneeEndpoint = { + owner: string; + repo: string; + assignee: string; +}; +declare type IssuesCheckAssigneeRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/assignees/:assignee"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposEnableAutomatedSecurityFixesEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"london">; +declare type ReposEnableAutomatedSecurityFixesRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/automated-security-fixes"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposDisableAutomatedSecurityFixesEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"london">; +declare type ReposDisableAutomatedSecurityFixesRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/automated-security-fixes"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListBranchesEndpoint = { + owner: string; + repo: string; + /** + * Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. + */ + protected?: boolean; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListBranchesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListBranchesResponseData = { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; + protection: { + enabled: boolean; + required_status_checks: { + enforcement_level: string; + contexts: string[]; + }; + }; + protection_url: string; +}[]; +declare type ReposGetBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetBranchResponseData { + name: string; + commit: { + sha: string; + node_id: string; + commit: { + author: { + name: string; + date: string; + email: string; + }; + url: string; + message: string; + tree: { + sha: string; + url: string; + }; + committer: { + name: string; + date: string; + email: string; + }; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + gravatar_id: string; + avatar_url: string; + url: string; + id: number; + login: string; + }; + parents: { + sha: string; + url: string; + }[]; + url: string; + committer: { + gravatar_id: string; + avatar_url: string; + url: string; + id: number; + login: string; + }; + }; + _links: { + html: string; + self: string; + }; + protected: boolean; + protection: { + enabled: boolean; + required_status_checks: { + enforcement_level: string; + contexts: string[]; + }; + }; + protection_url: string; +} +declare type ReposGetBranchProtectionEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetBranchProtectionRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetBranchProtectionResponseData { + url: string; + required_status_checks: { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; + }; + enforce_admins: { + url: string; + enabled: boolean; + }; + required_pull_request_reviews: { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + }; + restrictions: { + url: string; + users_url: string; + teams_url: string; + apps_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + apps: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }[]; + }; + required_linear_history: { + enabled: boolean; + }; + allow_force_pushes: { + enabled: boolean; + }; + allow_deletions: { + enabled: boolean; + }; +} +declare type ReposUpdateBranchProtectionEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * Require status checks to pass before merging. Set to `null` to disable. + */ + required_status_checks: ReposUpdateBranchProtectionParamsRequiredStatusChecks | null; + /** + * Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. + */ + enforce_admins: boolean | null; + /** + * Require at least one approving review on a pull request, before merging. Set to `null` to disable. + */ + required_pull_request_reviews: ReposUpdateBranchProtectionParamsRequiredPullRequestReviews | null; + /** + * Restrict who can push to the protected branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. + */ + restrictions: ReposUpdateBranchProtectionParamsRestrictions | null; + /** + * Enforces a linear commit Git history, which prevents anyone from pushing merge commits to a branch. Set to `true` to enforce a linear commit history. Set to `false` to disable a linear commit Git history. Your repository must allow squash merging or rebase merging before you can enable a linear commit history. Default: `false`. For more information, see "[Requiring a linear commit history](https://help.github.com/github/administering-a-repository/requiring-a-linear-commit-history)" in the GitHub Help documentation. + */ + required_linear_history?: boolean; + /** + * Permits force pushes to the protected branch by anyone with write access to the repository. Set to `true` to allow force pushes. Set to `false` or `null` to block force pushes. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation." + */ + allow_force_pushes?: boolean | null; + /** + * Allows deletion of the protected branch by anyone with write access to the repository. Set to `false` to prevent deletion of the protected branch. Default: `false`. For more information, see "[Enabling force pushes to a protected branch](https://help.github.com/en/github/administering-a-repository/enabling-force-pushes-to-a-protected-branch)" in the GitHub Help documentation. + */ + allow_deletions?: boolean; +}; +declare type ReposUpdateBranchProtectionRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateBranchProtectionResponseData { + url: string; + required_status_checks: { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; + }; + enforce_admins: { + url: string; + enabled: boolean; + }; + required_pull_request_reviews: { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + }; + restrictions: { + url: string; + users_url: string; + teams_url: string; + apps_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + apps: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }[]; + }; + required_linear_history: { + enabled: boolean; + }; + allow_force_pushes: { + enabled: boolean; + }; + allow_deletions: { + enabled: boolean; + }; +} +declare type ReposRemoveBranchProtectionEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveBranchProtectionRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchAdminEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchAdminEnforcementRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/enforce_admins"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchAdminEnforcementResponseData { + url: string; + enabled: boolean; +} +declare type ReposAddProtectedBranchAdminEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposAddProtectedBranchAdminEnforcementRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/enforce_admins"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddProtectedBranchAdminEnforcementResponseData { + url: string; + enabled: boolean; +} +declare type ReposRemoveProtectedBranchAdminEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchAdminEnforcementRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/enforce_admins"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchPullRequestReviewEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchPullRequestReviewEnforcementResponseData { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; +} +declare type ReposUpdateProtectedBranchPullRequestReviewEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. + */ + dismissal_restrictions?: ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions; + /** + * Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. + */ + dismiss_stale_reviews?: boolean; + /** + * Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed. + */ + require_code_owner_reviews?: boolean; + /** + * Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6. + */ + required_approving_review_count?: number; +}; +declare type ReposUpdateProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseData { + url: string; + dismissal_restrictions: { + url: string; + users_url: string; + teams_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + }; + dismiss_stale_reviews: boolean; + require_code_owner_reviews: boolean; + required_approving_review_count: number; +} +declare type ReposRemoveProtectedBranchPullRequestReviewEnforcementEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchRequiredSignaturesEndpoint = { + owner: string; + repo: string; + branch: string; +} & RequiredPreview<"zzzax">; +declare type ReposGetProtectedBranchRequiredSignaturesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_signatures"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchRequiredSignaturesResponseData { + url: string; + enabled: boolean; +} +declare type ReposAddProtectedBranchRequiredSignaturesEndpoint = { + owner: string; + repo: string; + branch: string; +} & RequiredPreview<"zzzax">; +declare type ReposAddProtectedBranchRequiredSignaturesRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_signatures"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddProtectedBranchRequiredSignaturesResponseData { + url: string; + enabled: boolean; +} +declare type ReposRemoveProtectedBranchRequiredSignaturesEndpoint = { + owner: string; + repo: string; + branch: string; +} & RequiredPreview<"zzzax">; +declare type ReposRemoveProtectedBranchRequiredSignaturesRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_signatures"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetProtectedBranchRequiredStatusChecksEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchRequiredStatusChecksRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchRequiredStatusChecksResponseData { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; +} +declare type ReposUpdateProtectedBranchRequiredStatusChecksEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * Require branches to be up to date before merging. + */ + strict?: boolean; + /** + * The list of status checks to require in order to merge into this branch + */ + contexts?: string[]; +}; +declare type ReposUpdateProtectedBranchRequiredStatusChecksRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateProtectedBranchRequiredStatusChecksResponseData { + url: string; + strict: boolean; + contexts: string[]; + contexts_url: string; +} +declare type ReposRemoveProtectedBranchRequiredStatusChecksEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchRequiredStatusChecksRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposListProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposReplaceProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +declare type ReposReplaceProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposAddProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +declare type ReposAddProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposRemoveProtectedBranchRequiredStatusChecksContextsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +declare type ReposRemoveProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchRequiredStatusChecksContextsResponseData = string[]; +declare type ReposGetProtectedBranchRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetProtectedBranchRestrictionsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetProtectedBranchRestrictionsResponseData { + url: string; + users_url: string; + teams_url: string; + apps_url: string; + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + apps: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }[]; +} +declare type ReposRemoveProtectedBranchRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposRemoveProtectedBranchRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetAppsWithAccessToProtectedBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetAppsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetAppsWithAccessToProtectedBranchResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposReplaceProtectedBranchAppRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +declare type ReposReplaceProtectedBranchAppRestrictionsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchAppRestrictionsResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposAddProtectedBranchAppRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +declare type ReposAddProtectedBranchAppRestrictionsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchAppRestrictionsResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposRemoveProtectedBranchAppRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +declare type ReposRemoveProtectedBranchAppRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchAppRestrictionsResponseData = { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; +}[]; +declare type ReposGetTeamsWithAccessToProtectedBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetTeamsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetTeamsWithAccessToProtectedBranchResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposReplaceProtectedBranchTeamRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +declare type ReposReplaceProtectedBranchTeamRestrictionsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchTeamRestrictionsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposAddProtectedBranchTeamRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +declare type ReposAddProtectedBranchTeamRestrictionsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchTeamRestrictionsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposRemoveProtectedBranchTeamRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +declare type ReposRemoveProtectedBranchTeamRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchTeamRestrictionsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposGetUsersWithAccessToProtectedBranchEndpoint = { + owner: string; + repo: string; + branch: string; +}; +declare type ReposGetUsersWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetUsersWithAccessToProtectedBranchResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ReposReplaceProtectedBranchUserRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * users parameter + */ + users: string[]; +}; +declare type ReposReplaceProtectedBranchUserRestrictionsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposReplaceProtectedBranchUserRestrictionsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ReposAddProtectedBranchUserRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * users parameter + */ + users: string[]; +}; +declare type ReposAddProtectedBranchUserRestrictionsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposAddProtectedBranchUserRestrictionsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ReposRemoveProtectedBranchUserRestrictionsEndpoint = { + owner: string; + repo: string; + branch: string; + /** + * users parameter + */ + users: string[]; +}; +declare type ReposRemoveProtectedBranchUserRestrictionsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/branches/:branch/protection/restrictions/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposRemoveProtectedBranchUserRestrictionsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ChecksCreateEndpoint = { + owner: string; + repo: string; + /** + * The name of the check. For example, "code-coverage". + */ + name: string; + /** + * The SHA of the commit. + */ + head_sha: string; + /** + * The URL of the integrator's site that has the full details of the check. If the integrator does not provide this, then the homepage of the GitHub app is used. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`. + */ + conclusion?: "success" | "failure" | "neutral" | "cancelled" | "skipped" | "timed_out" | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object) description. + */ + output?: ChecksCreateParamsOutput; + /** + * Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://developer.github.com/webhooks/event-payloads/#check_run) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksCreateParamsActions[]; +} & RequiredPreview<"antiope">; +declare type ChecksCreateRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/check-runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksCreateResponseData { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; +} +declare type ChecksUpdateEndpoint = { + owner: string; + repo: string; + check_run_id: number; + /** + * The name of the check. For example, "code-coverage". + */ + name?: string; + /** + * The URL of the integrator's site that has the full details of the check. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `skipped`, `timed_out`, or `action_required`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. Only GitHub can change a check run conclusion to `stale`. + */ + conclusion?: "success" | "failure" | "neutral" | "cancelled" | "skipped" | "timed_out" | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object-1) description. + */ + output?: ChecksUpdateParamsOutput; + /** + * Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksUpdateParamsActions[]; +} & RequiredPreview<"antiope">; +declare type ChecksUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/check-runs/:check_run_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksUpdateResponseData { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; +} +declare type ChecksGetEndpoint = { + owner: string; + repo: string; + check_run_id: number; +} & RequiredPreview<"antiope">; +declare type ChecksGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-runs/:check_run_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksGetResponseData { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; +} +declare type ChecksListAnnotationsEndpoint = { + owner: string; + repo: string; + check_run_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListAnnotationsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-runs/:check_run_id/annotations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ChecksListAnnotationsResponseData = { + path: string; + start_line: number; + end_line: number; + start_column: number; + end_column: number; + annotation_level: string; + title: string; + message: string; + raw_details: string; +}[]; +declare type ChecksCreateSuiteEndpoint = { + owner: string; + repo: string; + /** + * The sha of the head commit. + */ + head_sha: string; +} & RequiredPreview<"antiope">; +declare type ChecksCreateSuiteRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/check-suites"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksCreateSuiteResponseData { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + status: string; + conclusion: string; + url: string; + before: string; + after: string; + pull_requests: unknown[]; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ChecksSetSuitesPreferencesEndpoint = { + owner: string; + repo: string; + /** + * Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://developer.github.com/v3/checks/suites/#auto_trigger_checks-object) description for details. + */ + auto_trigger_checks?: ChecksSetSuitesPreferencesParamsAutoTriggerChecks[]; +} & RequiredPreview<"antiope">; +declare type ChecksSetSuitesPreferencesRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/check-suites/preferences"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksSetSuitesPreferencesResponseData { + preferences: { + auto_trigger_checks: { + app_id: number; + setting: boolean; + }[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ChecksGetSuiteEndpoint = { + owner: string; + repo: string; + check_suite_id: number; +} & RequiredPreview<"antiope">; +declare type ChecksGetSuiteRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-suites/:check_suite_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksGetSuiteResponseData { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + status: string; + conclusion: string; + url: string; + before: string; + after: string; + pull_requests: unknown[]; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +} +declare type ChecksListForSuiteEndpoint = { + owner: string; + repo: string; + check_suite_id: number; + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListForSuiteRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/check-suites/:check_suite_id/check-runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksListForSuiteResponseData { + total_count: number; + check_runs: { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; + }[]; +} +declare type ChecksRerequestSuiteEndpoint = { + owner: string; + repo: string; + check_suite_id: number; +} & RequiredPreview<"antiope">; +declare type ChecksRerequestSuiteRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/check-suites/:check_suite_id/rerequest"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type CodeScanningListAlertsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Set to `closed` to list only closed code scanning alerts. + */ + state?: string; + /** + * Returns a list of code scanning alerts for a specific brach reference. The `ref` must be formatted as `heads/`. + */ + ref?: string; +}; +declare type CodeScanningListAlertsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/code-scanning/alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type CodeScanningListAlertsForRepoResponseData = { + rule_id: string; + rule_severity: string; + rule_description: string; + tool: string; + created_at: string; + open: boolean; + closed_by: string; + closed_at: string; + url: string; + html_url: string; +}[]; +declare type CodeScanningGetAlertEndpoint = { + owner: string; + repo: string; + alert_id: number; +}; +declare type CodeScanningGetAlertRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/code-scanning/alerts/:alert_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface CodeScanningGetAlertResponseData { + rule_id: string; + rule_severity: string; + rule_description: string; + tool: string; + created_at: string; + open: boolean; + closed_by: string; + closed_at: string; + url: string; + html_url: string; +} +declare type ReposListCollaboratorsEndpoint = { + owner: string; + repo: string; + /** + * Filter collaborators returned by their affiliation. Can be one of: + * \* `outside`: All outside collaborators of an organization-owned repository. + * \* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCollaboratorsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/collaborators"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCollaboratorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + permissions: { + pull: boolean; + push: boolean; + admin: boolean; + }; +}[]; +declare type ReposCheckCollaboratorEndpoint = { + owner: string; + repo: string; + username: string; +}; +declare type ReposCheckCollaboratorRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposAddCollaboratorEndpoint = { + owner: string; + repo: string; + username: string; + /** + * The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: + * \* `pull` - can pull, but not push to or administer this repository. + * \* `push` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push and administer this repository. + * \* `maintain` - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions. + * \* `triage` - Recommended for contributors who need to proactively manage issues and pull requests without write access. + */ + permission?: "pull" | "push" | "admin" | "maintain" | "triage"; +}; +declare type ReposAddCollaboratorRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddCollaboratorResponseData { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +} +declare type ReposRemoveCollaboratorEndpoint = { + owner: string; + repo: string; + username: string; +}; +declare type ReposRemoveCollaboratorRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/collaborators/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetCollaboratorPermissionLevelEndpoint = { + owner: string; + repo: string; + username: string; +}; +declare type ReposGetCollaboratorPermissionLevelRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/collaborators/:username/permission"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCollaboratorPermissionLevelResponseData { + permission: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ReposListCommitCommentsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCommitCommentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCommitCommentsResponseData = { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ReposGetCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type ReposGetCommitCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCommitCommentResponseData { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ReposUpdateCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The contents of the comment + */ + body: string; +}; +declare type ReposUpdateCommitCommentRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateCommitCommentResponseData { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ReposDeleteCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type ReposDeleteCommitCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a commit comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForCommitCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForCommitCommentResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the commit comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForCommitCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForCommitCommentResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForCommitCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForCommitCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/comments/:comment_id/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListCommitsEndpoint = { + owner: string; + repo: string; + /** + * SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`). + */ + sha?: string; + /** + * Only commits containing this file path will be returned. + */ + path?: string; + /** + * GitHub login or email address by which to filter by commit author. + */ + author?: string; + /** + * Only commits after this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + until?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCommitsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCommitsResponseData = { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; +}[]; +declare type ReposListBranchesForHeadCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; +} & RequiredPreview<"groot">; +declare type ReposListBranchesForHeadCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:commit_sha/branches-where-head"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListBranchesForHeadCommitResponseData = { + name: string; + commit: { + sha: string; + url: string; + }; + protected: boolean; +}[]; +declare type ReposListCommentsForCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListCommentsForCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:commit_sha/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListCommentsForCommitResponseData = { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ReposCreateCommitCommentEndpoint = { + owner: string; + repo: string; + commit_sha: string; + /** + * The contents of the comment. + */ + body: string; + /** + * Relative path of the file to comment on. + */ + path?: string; + /** + * Line index in the diff to comment on. + */ + position?: number; + /** + * **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. + */ + line?: number; +}; +declare type ReposCreateCommitCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/commits/:commit_sha/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateCommitCommentResponseData { + html_url: string; + url: string; + id: number; + node_id: string; + body: string; + path: string; + position: number; + line: number; + commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type ReposListPullRequestsAssociatedWithCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"groot">; +declare type ReposListPullRequestsAssociatedWithCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:commit_sha/pulls"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListPullRequestsAssociatedWithCommitResponseData = { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; +}[]; +declare type ReposGetCommitEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type ReposGetCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCommitResponseData { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + stats: { + additions: number; + deletions: number; + total: number; + }; + files: { + filename: string; + additions: number; + deletions: number; + changes: number; + status: string; + raw_url: string; + blob_url: string; + patch: string; + }[]; +} +declare type ChecksListForRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/check-runs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksListForRefResponseData { + total_count: number; + check_runs: { + id: number; + head_sha: string; + node_id: string; + external_id: string; + url: string; + html_url: string; + details_url: string; + status: string; + conclusion: string; + started_at: string; + completed_at: string; + output: { + title: string; + summary: string; + text: string; + annotations_count: number; + annotations_url: string; + }; + name: string; + check_suite: { + id: number; + }; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + pull_requests: { + url: string; + id: number; + number: number; + head: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + base: { + ref: string; + sha: string; + repo: { + id: number; + url: string; + name: string; + }; + }; + }[]; + }[]; +} +declare type ChecksListSuitesForRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Filters check suites by GitHub App `id`. + */ + app_id?: number; + /** + * Filters checks suites by the name of the [check run](https://developer.github.com/v3/checks/runs/). + */ + check_name?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"antiope">; +declare type ChecksListSuitesForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/check-suites"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ChecksListSuitesForRefResponseData { + total_count: number; + check_suites: { + id: number; + node_id: string; + head_branch: string; + head_sha: string; + status: string; + conclusion: string; + url: string; + before: string; + after: string; + pull_requests: unknown[]; + app: { + id: number; + slug: string; + node_id: string; + owner: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + name: string; + description: string; + external_url: string; + html_url: string; + created_at: string; + updated_at: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + }; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }[]; +} +declare type ReposGetCombinedStatusForRefEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type ReposGetCombinedStatusForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/status"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetCombinedStatusForRefResponseData { + state: string; + statuses: { + url: string; + avatar_url: string; + id: number; + node_id: string; + state: string; + description: string; + target_url: string; + context: string; + created_at: string; + updated_at: string; + }[]; + sha: string; + total_count: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + commit_url: string; + url: string; +} +declare type ReposListStatusesForRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListStatusesForRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/commits/:ref/statuses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListStatusesForRefResponseData = { + url: string; + avatar_url: string; + id: number; + node_id: string; + state: string; + description: string; + target_url: string; + context: string; + created_at: string; + updated_at: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type CodesOfConductGetForRepoEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"scarlet-witch">; +declare type CodesOfConductGetForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/community/code_of_conduct"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface CodesOfConductGetForRepoResponseData { + key: string; + name: string; + url: string; + body: string; +} +declare type ReposRetrieveCommunityProfileMetricsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposRetrieveCommunityProfileMetricsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/community/profile"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposRetrieveCommunityProfileMetricsResponseData { + health_percentage: number; + description: string; + documentation: boolean; + files: { + code_of_conduct: { + name: string; + key: string; + url: string; + html_url: string; + }; + contributing: { + url: string; + html_url: string; + }; + issue_template: { + url: string; + html_url: string; + }; + pull_request_template: { + url: string; + html_url: string; + }; + license: { + name: string; + key: string; + spdx_id: string; + url: string; + html_url: string; + }; + readme: { + url: string; + html_url: string; + }; + }; + updated_at: string; +} +declare type ReposCompareCommitsEndpoint = { + owner: string; + repo: string; + base: string; + head: string; +}; +declare type ReposCompareCommitsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/compare/:base...:head"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCompareCommitsResponseData { + url: string; + html_url: string; + permalink_url: string; + diff_url: string; + patch_url: string; + base_commit: { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + }; + merge_base_commit: { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + }; + status: string; + ahead_by: number; + behind_by: number; + total_commits: number; + commits: { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; + }[]; + files: { + sha: string; + filename: string; + status: string; + additions: number; + deletions: number; + changes: number; + blob_url: string; + raw_url: string; + contents_url: string; + patch: string; + }[]; +} +declare type ReposGetContentsEndpoint = { + owner: string; + repo: string; + path: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; +}; +declare type ReposGetContentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/contents/:path"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetContentsResponseData { + type: string; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + url: string; + git_url: string; + html_url: string; + download_url: string; + _links: { + git: string; + self: string; + html: string; + }; +} +declare type ReposCreateOrUpdateFileEndpoint = { + owner: string; + repo: string; + path: string; + /** + * The commit message. + */ + message: string; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposCreateOrUpdateFileParamsCommitter; + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposCreateOrUpdateFileParamsAuthor; +}; +declare type ReposCreateOrUpdateFileRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/contents/:path"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateOrUpdateFileResponseData { + content: { + name: string; + path: string; + sha: string; + size: number; + url: string; + html_url: string; + git_url: string; + download_url: string; + type: string; + _links: { + self: string; + git: string; + html: string; + }; + }; + commit: { + sha: string; + node_id: string; + url: string; + html_url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; +} +export interface ReposCreateOrUpdateFileResponse201Data { + content: { + name: string; + path: string; + sha: string; + size: number; + url: string; + html_url: string; + git_url: string; + download_url: string; + type: string; + _links: { + self: string; + git: string; + html: string; + }; + }; + commit: { + sha: string; + node_id: string; + url: string; + html_url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; +} +declare type ReposDeleteFileEndpoint = { + owner: string; + repo: string; + path: string; + /** + * The commit message. + */ + message: string; + /** + * The blob SHA of the file being replaced. + */ + sha: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * object containing information about the committer. + */ + committer?: ReposDeleteFileParamsCommitter; + /** + * object containing information about the author. + */ + author?: ReposDeleteFileParamsAuthor; +}; +declare type ReposDeleteFileRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/contents/:path"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposDeleteFileResponseData { + content: string; + commit: { + sha: string; + node_id: string; + url: string; + html_url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; +} +declare type ReposListContributorsEndpoint = { + owner: string; + repo: string; + /** + * Set to `1` or `true` to include anonymous contributors in results. + */ + anon?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListContributorsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/contributors"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListContributorsResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + contributions: number; +}[]; +declare type ReposListDeploymentsEndpoint = { + owner: string; + repo: string; + /** + * The SHA recorded at creation time. + */ + sha?: string; + /** + * The name of the ref. This can be a branch, tag, or SHA. + */ + ref?: string; + /** + * The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * The name of the environment that was deployed to (e.g., `staging` or `production`). + */ + environment?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDeploymentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDeploymentsResponseData = { + url: string; + id: number; + node_id: string; + sha: string; + ref: string; + task: string; + payload: { + deploy: string; + }; + original_environment: string; + environment: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + statuses_url: string; + repository_url: string; + transient_environment: boolean; + production_environment: boolean; +}[]; +declare type ReposCreateDeploymentEndpoint = { + owner: string; + repo: string; + /** + * The ref to deploy. This can be a branch, tag, or SHA. + */ + ref: string; + /** + * Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + */ + auto_merge?: boolean; + /** + * The [status](https://developer.github.com/v3/repos/statuses/) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. + */ + required_contexts?: string[]; + /** + * JSON payload with extra information about the deployment. + */ + payload?: string; + /** + * Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + */ + environment?: string; + /** + * Short description of the deployment. + */ + description?: string; + /** + * Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + transient_environment?: boolean; + /** + * Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + production_environment?: boolean; +}; +declare type ReposCreateDeploymentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/deployments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateDeploymentResponseData { + url: string; + id: number; + node_id: string; + sha: string; + ref: string; + task: string; + payload: { + deploy: string; + }; + original_environment: string; + environment: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + statuses_url: string; + repository_url: string; + transient_environment: boolean; + production_environment: boolean; +} +export interface ReposCreateDeploymentResponse202Data { + message: string; +} +export interface ReposCreateDeploymentResponse409Data { + message: string; +} +declare type ReposGetDeploymentEndpoint = { + owner: string; + repo: string; + deployment_id: number; +}; +declare type ReposGetDeploymentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments/:deployment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDeploymentResponseData { + url: string; + id: number; + node_id: string; + sha: string; + ref: string; + task: string; + payload: { + deploy: string; + }; + original_environment: string; + environment: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + statuses_url: string; + repository_url: string; + transient_environment: boolean; + production_environment: boolean; +} +declare type ReposDeleteDeploymentEndpoint = { + owner: string; + repo: string; + deployment_id: number; +}; +declare type ReposDeleteDeploymentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/deployments/:deployment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListDeploymentStatusesEndpoint = { + owner: string; + repo: string; + deployment_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDeploymentStatusesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments/:deployment_id/statuses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDeploymentStatusesResponseData = { + url: string; + id: number; + node_id: string; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + description: string; + environment: string; + target_url: string; + created_at: string; + updated_at: string; + deployment_url: string; + repository_url: string; + environment_url: string; + log_url: string; +}[]; +declare type ReposCreateDeploymentStatusEndpoint = { + owner: string; + repo: string; + deployment_id: number; + /** + * The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + state: "error" | "failure" | "inactive" | "in_progress" | "queued" | "pending" | "success"; + /** + * The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + */ + target_url?: string; + /** + * The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + log_url?: string; + /** + * A short description of the status. The maximum description length is 140 characters. + */ + description?: string; + /** + * Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + environment?: "production" | "staging" | "qa"; + /** + * Sets the URL for accessing your environment. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + environment_url?: string; + /** + * Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` + * **Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + auto_inactive?: boolean; +}; +declare type ReposCreateDeploymentStatusRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/deployments/:deployment_id/statuses"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateDeploymentStatusResponseData { + url: string; + id: number; + node_id: string; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + description: string; + environment: string; + target_url: string; + created_at: string; + updated_at: string; + deployment_url: string; + repository_url: string; + environment_url: string; + log_url: string; +} +declare type ReposGetDeploymentStatusEndpoint = { + owner: string; + repo: string; + deployment_id: number; + status_id: number; +}; +declare type ReposGetDeploymentStatusRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDeploymentStatusResponseData { + url: string; + id: number; + node_id: string; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + description: string; + environment: string; + target_url: string; + created_at: string; + updated_at: string; + deployment_url: string; + repository_url: string; + environment_url: string; + log_url: string; +} +declare type ReposCreateDispatchEventEndpoint = { + owner: string; + repo: string; + /** + * **Required:** A custom webhook event name. + */ + event_type?: string; + /** + * JSON payload with extra information about the webhook event that your action or worklow may use. + */ + client_payload?: ReposCreateDispatchEventParamsClientPayload; +}; +declare type ReposCreateDispatchEventRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/dispatches"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListDownloadsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDownloadsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/downloads"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDownloadsResponseData = { + url: string; + html_url: string; + id: number; + name: string; + description: string; + size: number; + download_count: number; + content_type: string; +}[]; +declare type ReposGetDownloadEndpoint = { + owner: string; + repo: string; + download_id: number; +}; +declare type ReposGetDownloadRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/downloads/:download_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDownloadResponseData { + url: string; + html_url: string; + id: number; + name: string; + description: string; + size: number; + download_count: number; + content_type: string; +} +declare type ReposDeleteDownloadEndpoint = { + owner: string; + repo: string; + download_id: number; +}; +declare type ReposDeleteDownloadRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/downloads/:download_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListRepoEventsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListRepoEventsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListForksEndpoint = { + owner: string; + repo: string; + /** + * The sort order. Can be either `newest`, `oldest`, or `stargazers`. + */ + sort?: "newest" | "oldest" | "stargazers"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForksRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListForksResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type ReposCreateForkEndpoint = { + owner: string; + repo: string; + /** + * Optional parameter to specify the organization name if forking into an organization. + */ + organization?: string; +}; +declare type ReposCreateForkRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/forks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateForkResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type GitCreateBlobEndpoint = { + owner: string; + repo: string; + /** + * The new blob's content. + */ + content: string; + /** + * The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + */ + encoding?: string; +}; +declare type GitCreateBlobRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/blobs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateBlobResponseData { + url: string; + sha: string; +} +declare type GitGetBlobEndpoint = { + owner: string; + repo: string; + file_sha: string; +}; +declare type GitGetBlobRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/blobs/:file_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetBlobResponseData { + content: string; + encoding: string; + url: string; + sha: string; + size: number; +} +declare type GitCreateCommitEndpoint = { + owner: string; + repo: string; + /** + * The commit message + */ + message: string; + /** + * The SHA of the tree object this commit points to + */ + tree: string; + /** + * The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. + */ + parents: string[]; + /** + * Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. + */ + author?: GitCreateCommitParamsAuthor; + /** + * Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. + */ + committer?: GitCreateCommitParamsCommitter; + /** + * The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. + */ + signature?: string; +}; +declare type GitCreateCommitRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateCommitResponseData { + sha: string; + node_id: string; + url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitGetCommitEndpoint = { + owner: string; + repo: string; + commit_sha: string; +}; +declare type GitGetCommitRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/commits/:commit_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetCommitResponseData { + sha: string; + url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + parents: { + url: string; + sha: string; + }[]; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitListMatchingRefsEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GitListMatchingRefsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/matching-refs/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GitListMatchingRefsResponseData = { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +}[]; +declare type GitGetRefEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type GitGetRefRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/ref/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetRefResponseData { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +} +declare type GitCreateRefEndpoint = { + owner: string; + repo: string; + /** + * The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. + */ + ref: string; + /** + * The SHA1 value for this reference. + */ + sha: string; +}; +declare type GitCreateRefRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/refs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateRefResponseData { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +} +declare type GitUpdateRefEndpoint = { + owner: string; + repo: string; + ref: string; + /** + * The SHA1 value to set this reference to + */ + sha: string; + /** + * Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + */ + force?: boolean; +}; +declare type GitUpdateRefRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/git/refs/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitUpdateRefResponseData { + ref: string; + node_id: string; + url: string; + object: { + type: string; + sha: string; + url: string; + }; +} +declare type GitDeleteRefEndpoint = { + owner: string; + repo: string; + ref: string; +}; +declare type GitDeleteRefRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/git/refs/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GitCreateTagEndpoint = { + owner: string; + repo: string; + /** + * The tag's name. This is typically a version (e.g., "v0.0.1"). + */ + tag: string; + /** + * The tag message. + */ + message: string; + /** + * The SHA of the git object this is tagging. + */ + object: string; + /** + * The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + */ + type: "commit" | "tree" | "blob"; + /** + * An object with information about the individual creating the tag. + */ + tagger?: GitCreateTagParamsTagger; +}; +declare type GitCreateTagRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/tags"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateTagResponseData { + node_id: string; + tag: string; + sha: string; + url: string; + message: string; + tagger: { + name: string; + email: string; + date: string; + }; + object: { + type: string; + sha: string; + url: string; + }; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitGetTagEndpoint = { + owner: string; + repo: string; + tag_sha: string; +}; +declare type GitGetTagRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/tags/:tag_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetTagResponseData { + node_id: string; + tag: string; + sha: string; + url: string; + message: string; + tagger: { + name: string; + email: string; + date: string; + }; + object: { + type: string; + sha: string; + url: string; + }; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; +} +declare type GitCreateTreeEndpoint = { + owner: string; + repo: string; + /** + * Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. + */ + tree: GitCreateTreeParamsTree[]; + /** + * The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted. + */ + base_tree?: string; +}; +declare type GitCreateTreeRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/git/trees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitCreateTreeResponseData { + sha: string; + url: string; + tree: { + path: string; + mode: string; + type: string; + size: number; + sha: string; + url: string; + }[]; +} +declare type GitGetTreeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * tree_sha parameter + */ + tree_sha: string; + /** + * recursive parameter + */ + recursive?: "1"; +}; +declare type GitGetTreeRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/git/trees/:tree_sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface GitGetTreeResponseData { + sha: string; + url: string; + tree: { + path: string; + mode: string; + type: string; + size: number; + sha: string; + url: string; + }[]; + truncated: boolean; +} +declare type ReposListHooksEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListHooksRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListHooksResponseData = { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +}[]; +declare type ReposCreateHookEndpoint = { + owner: string; + repo: string; + /** + * Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. + */ + name?: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config: ReposCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type ReposCreateHookRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/hooks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateHookResponseData { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +} +declare type ReposGetHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposGetHookRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetHookResponseData { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +} +declare type ReposUpdateHookEndpoint = { + owner: string; + repo: string; + hook_id: number; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config?: ReposUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/webhooks/event-payloads) the hook is triggered for. This replaces the entire array of events. + */ + events?: string[]; + /** + * Determines a list of events to be added to the list of events that the Hook triggers for. + */ + add_events?: string[]; + /** + * Determines a list of events to be removed from the list of events that the Hook triggers for. + */ + remove_events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +declare type ReposUpdateHookRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateHookResponseData { + type: string; + id: number; + name: string; + active: boolean; + events: string[]; + config: { + content_type: string; + insecure_ssl: string; + url: string; + }; + updated_at: string; + created_at: string; + url: string; + test_url: string; + ping_url: string; + last_response: { + code: string; + status: string; + message: string; + }; +} +declare type ReposDeleteHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposDeleteHookRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/hooks/:hook_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposPingHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposPingHookRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/hooks/:hook_id/pings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposTestPushHookEndpoint = { + owner: string; + repo: string; + hook_id: number; +}; +declare type ReposTestPushHookRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/hooks/:hook_id/tests"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsStartImportEndpoint = { + owner: string; + repo: string; + /** + * The URL of the originating repository. + */ + vcs_url: string; + /** + * The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** + * If authentication is required, the username to provide to `vcs_url`. + */ + vcs_username?: string; + /** + * If authentication is required, the password to provide to `vcs_url`. + */ + vcs_password?: string; + /** + * For a tfvc import, the name of the project that is being imported. + */ + tfvc_project?: string; +}; +declare type MigrationsStartImportRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsStartImportResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + status_text: string; + has_large_files: boolean; + large_files_size: number; + large_files_count: number; + authors_count: number; + percent: number; + commit_count: number; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type MigrationsGetImportProgressEndpoint = { + owner: string; + repo: string; +}; +declare type MigrationsGetImportProgressRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsGetImportProgressResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + status_text: string; + has_large_files: boolean; + large_files_size: number; + large_files_count: number; + authors_count: number; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type MigrationsUpdateImportEndpoint = { + owner: string; + repo: string; + /** + * The username to provide to the originating repository. + */ + vcs_username?: string; + /** + * The password to provide to the originating repository. + */ + vcs_password?: string; +}; +declare type MigrationsUpdateImportRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsUpdateImportResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type MigrationsCancelImportEndpoint = { + owner: string; + repo: string; +}; +declare type MigrationsCancelImportRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/import"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsGetCommitAuthorsEndpoint = { + owner: string; + repo: string; + /** + * Only authors found after this id are returned. Provide the highest author ID you've seen so far. New authors may be added to the list at any point while the importer is performing the `raw` step. + */ + since?: string; +}; +declare type MigrationsGetCommitAuthorsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/import/authors"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsGetCommitAuthorsResponseData = { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + url: string; + import_url: string; +}[]; +declare type MigrationsMapCommitAuthorEndpoint = { + owner: string; + repo: string; + author_id: number; + /** + * The new Git author email. + */ + email?: string; + /** + * The new Git author name. + */ + name?: string; +}; +declare type MigrationsMapCommitAuthorRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/import/authors/:author_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsMapCommitAuthorResponseData { + id: number; + remote_id: string; + remote_name: string; + email: string; + name: string; + url: string; + import_url: string; +} +declare type MigrationsGetLargeFilesEndpoint = { + owner: string; + repo: string; +}; +declare type MigrationsGetLargeFilesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/import/large_files"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsGetLargeFilesResponseData = { + ref_name: string; + path: string; + oid: string; + size: number; +}[]; +declare type MigrationsSetLfsPreferenceEndpoint = { + owner: string; + repo: string; + /** + * Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import). + */ + use_lfs: "opt_in" | "opt_out"; +}; +declare type MigrationsSetLfsPreferenceRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/import/lfs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsSetLfsPreferenceResponseData { + vcs: string; + use_lfs: string; + vcs_url: string; + status: string; + status_text: string; + has_large_files: boolean; + large_files_size: number; + large_files_count: number; + authors_count: number; + url: string; + html_url: string; + authors_url: string; + repository_url: string; +} +declare type AppsGetRepoInstallationEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetRepoInstallationRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/installation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetRepoInstallationResponseData { + id: number; + account: { + login: string; + id: number; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + checks: string; + metadata: string; + contents: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; +} +declare type InteractionsGetRestrictionsForRepoEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"sombra">; +declare type InteractionsGetRestrictionsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsGetRestrictionsForRepoResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsAddOrUpdateRestrictionsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests for the given repository. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; +} & RequiredPreview<"sombra">; +declare type InteractionsAddOrUpdateRestrictionsForRepoRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface InteractionsAddOrUpdateRestrictionsForRepoResponseData { + limit: string; + origin: string; + expires_at: string; +} +declare type InteractionsRemoveRestrictionsForRepoEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"sombra">; +declare type InteractionsRemoveRestrictionsForRepoRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/interaction-limits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListInvitationsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListInvitationsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListInvitationsResponseData = { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +}[]; +declare type ReposDeleteInvitationEndpoint = { + owner: string; + repo: string; + invitation_id: number; +}; +declare type ReposDeleteInvitationRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposUpdateInvitationEndpoint = { + owner: string; + repo: string; + invitation_id: number; + /** + * The permissions that the associated user will have on the repository. Valid values are `read`, `write`, `maintain`, `triage`, and `admin`. + */ + permissions?: "read" | "write" | "maintain" | "triage" | "admin"; +}; +declare type ReposUpdateInvitationRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateInvitationResponseData { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +} +declare type IssuesListForRepoEndpoint = { + owner: string; + repo: string; + /** + * If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. + */ + milestone?: string; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. + */ + assignee?: string; + /** + * The user that created the issue. + */ + creator?: string; + /** + * A user that's mentioned in the issue. + */ + mentioned?: string; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListForRepoResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; +}[]; +declare type IssuesCreateEndpoint = { + owner: string; + repo: string; + /** + * The title of the issue. + */ + title: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ + */ + assignee?: string; + /** + * The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._ + */ + milestone?: number; + /** + * Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesCreateRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + closed_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type IssuesListCommentsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Either `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * Either `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListCommentsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListCommentsForRepoResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type IssuesGetCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type IssuesGetCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetCommentResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type IssuesUpdateCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The contents of the comment. + */ + body: string; +}; +declare type IssuesUpdateCommentRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/issues/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateCommentResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type IssuesDeleteCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type IssuesDeleteCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForIssueCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForIssueCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForIssueCommentResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForIssueCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForIssueCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForIssueCommentResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForIssueCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForIssueCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/comments/:comment_id/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListEventsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListEventsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListEventsForRepoResponseData = { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; + issue: { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + }; +}[]; +declare type IssuesGetEventEndpoint = { + owner: string; + repo: string; + event_id: number; +}; +declare type IssuesGetEventRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/events/:event_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetEventResponseData { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; + issue: { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + }; +} +declare type IssuesGetEndpoint = { + owner: string; + repo: string; + issue_number: number; +}; +declare type IssuesGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + closed_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type IssuesUpdateEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The title of the issue. + */ + title?: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. **This field is deprecated.** + */ + assignee?: string; + /** + * State of the issue. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + /** + * Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/issues/:issue_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + closed_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type IssuesAddAssigneesEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesAddAssigneesRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/assignees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesAddAssigneesResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; +} +declare type IssuesRemoveAssigneesEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; +}; +declare type IssuesRemoveAssigneesRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/assignees"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesRemoveAssigneesResponseData { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; +} +declare type IssuesListCommentsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListCommentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListCommentsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type IssuesCreateCommentEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The contents of the comment. + */ + body: string; +}; +declare type IssuesCreateCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateCommentResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type IssuesListEventsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListEventsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListEventsResponseData = { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; +}[]; +declare type IssuesListLabelsOnIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListLabelsOnIssueRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListLabelsOnIssueResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesAddLabelsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels: string[]; +}; +declare type IssuesAddLabelsRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesAddLabelsResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesReplaceAllLabelsEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels?: string[]; +}; +declare type IssuesReplaceAllLabelsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesReplaceAllLabelsResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesRemoveAllLabelsEndpoint = { + owner: string; + repo: string; + issue_number: number; +}; +declare type IssuesRemoveAllLabelsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesRemoveLabelEndpoint = { + owner: string; + repo: string; + issue_number: number; + name: string; +}; +declare type IssuesRemoveLabelRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesRemoveLabelResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesLockEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * \* `off-topic` + * \* `too heated` + * \* `resolved` + * \* `spam` + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; +}; +declare type IssuesLockRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/issues/:issue_number/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesUnlockEndpoint = { + owner: string; + repo: string; + issue_number: number; +}; +declare type IssuesUnlockRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForIssueRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForIssueResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForIssueRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/issues/:issue_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForIssueResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForIssueEndpoint = { + owner: string; + repo: string; + issue_number: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForIssueRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/issues/:issue_number/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListEventsForTimelineEndpoint = { + owner: string; + repo: string; + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"mockingbird">; +declare type IssuesListEventsForTimelineRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/issues/:issue_number/timeline"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListEventsForTimelineResponseData = { + id: number; + node_id: string; + url: string; + actor: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + event: string; + commit_id: string; + commit_url: string; + created_at: string; +}[]; +declare type ReposListDeployKeysEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListDeployKeysRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListDeployKeysResponseData = { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; +}[]; +declare type ReposAddDeployKeyEndpoint = { + owner: string; + repo: string; + /** + * A name for the key. + */ + title?: string; + /** + * The contents of the key. + */ + key: string; + /** + * If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; +}; +declare type ReposAddDeployKeyRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposAddDeployKeyResponseData { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; +} +declare type ReposGetDeployKeyEndpoint = { + owner: string; + repo: string; + key_id: number; +}; +declare type ReposGetDeployKeyRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetDeployKeyResponseData { + id: number; + key: string; + url: string; + title: string; + verified: boolean; + created_at: string; + read_only: boolean; +} +declare type ReposRemoveDeployKeyEndpoint = { + owner: string; + repo: string; + key_id: number; +}; +declare type ReposRemoveDeployKeyRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListLabelsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListLabelsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListLabelsForRepoResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type IssuesCreateLabelEndpoint = { + owner: string; + repo: string; + /** + * The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + name: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color: string; + /** + * A short description of the label. + */ + description?: string; +}; +declare type IssuesCreateLabelRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateLabelResponseData { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +} +declare type IssuesGetLabelEndpoint = { + owner: string; + repo: string; + name: string; +}; +declare type IssuesGetLabelRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetLabelResponseData { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +} +declare type IssuesUpdateLabelEndpoint = { + owner: string; + repo: string; + name: string; + /** + * The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + new_name?: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color?: string; + /** + * A short description of the label. + */ + description?: string; +}; +declare type IssuesUpdateLabelRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateLabelResponseData { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +} +declare type IssuesDeleteLabelEndpoint = { + owner: string; + repo: string; + name: string; +}; +declare type IssuesDeleteLabelRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/labels/:name"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListLanguagesEndpoint = { + owner: string; + repo: string; +}; +declare type ReposListLanguagesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/languages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposListLanguagesResponseData { + C: number; + Python: number; +} +declare type LicensesGetForRepoEndpoint = { + owner: string; + repo: string; +}; +declare type LicensesGetForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/license"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface LicensesGetForRepoResponseData { + name: string; + path: string; + sha: string; + size: number; + url: string; + html_url: string; + git_url: string; + download_url: string; + type: string; + content: string; + encoding: string; + _links: { + self: string; + git: string; + html: string; + }; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +} +declare type ReposMergeEndpoint = { + owner: string; + repo: string; + /** + * The name of the base branch that the head will be merged into. + */ + base: string; + /** + * The head to merge. This can be a branch name or a commit SHA1. + */ + head: string; + /** + * Commit message to use for the merge commit. If omitted, a default message will be used. + */ + commit_message?: string; +}; +declare type ReposMergeRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/merges"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposMergeResponseData { + sha: string; + node_id: string; + commit: { + author: { + name: string; + date: string; + email: string; + }; + committer: { + name: string; + date: string; + email: string; + }; + message: string; + tree: { + sha: string; + url: string; + }; + url: string; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + url: string; + html_url: string; + comments_url: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + sha: string; + url: string; + }[]; +} +export interface ReposMergeResponse404Data { + message: string; +} +export interface ReposMergeResponse409Data { + message: string; +} +declare type IssuesListMilestonesForRepoEndpoint = { + owner: string; + repo: string; + /** + * The state of the milestone. Either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * What to sort results by. Either `due_on` or `completeness`. + */ + sort?: "due_on" | "completeness"; + /** + * The direction of the sort. Either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListMilestonesForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/milestones"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListMilestonesForRepoResponseData = { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +}[]; +declare type IssuesCreateMilestoneEndpoint = { + owner: string; + repo: string; + /** + * The title of the milestone. + */ + title: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; +}; +declare type IssuesCreateMilestoneRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/milestones"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesCreateMilestoneResponseData { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +} +declare type IssuesGetMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; +}; +declare type IssuesGetMilestoneRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/milestones/:milestone_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesGetMilestoneResponseData { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +} +declare type IssuesUpdateMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; + /** + * The title of the milestone. + */ + title?: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; +}; +declare type IssuesUpdateMilestoneRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/milestones/:milestone_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface IssuesUpdateMilestoneResponseData { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; +} +declare type IssuesDeleteMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; +}; +declare type IssuesDeleteMilestoneRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/milestones/:milestone_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListLabelsForMilestoneEndpoint = { + owner: string; + repo: string; + milestone_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListLabelsForMilestoneRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/milestones/:milestone_number/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListLabelsForMilestoneResponseData = { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; +}[]; +declare type ActivityListRepoNotificationsForAuthenticatedUserEndpoint = { + owner: string; + repo: string; + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListRepoNotificationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListRepoNotificationsForAuthenticatedUserResponseData = { + id: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + subject: { + title: string; + url: string; + latest_comment_url: string; + type: string; + }; + reason: string; + unread: boolean; + updated_at: string; + last_read_at: string; + url: string; +}[]; +declare type ActivityMarkRepoNotificationsAsReadEndpoint = { + owner: string; + repo: string; + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be marked as read. If you omit this parameter, all notifications are marked as read. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; +}; +declare type ActivityMarkRepoNotificationsAsReadRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/notifications"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetPagesEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetPagesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetPagesResponseData { + url: string; + status: string; + cname: string; + custom_404: boolean; + html_url: string; + source: { + branch: string; + directory: string; + }; +} +declare type ReposEnablePagesSiteEndpoint = { + owner: string; + repo: string; + source?: ReposEnablePagesSiteParamsSource; +} & RequiredPreview<"switcheroo">; +declare type ReposEnablePagesSiteRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposEnablePagesSiteResponseData { + url: string; + status: string; + cname: string; + custom_404: boolean; + html_url: string; + source: { + branch: string; + directory: string; + }; +} +declare type ReposDisablePagesSiteEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"switcheroo">; +declare type ReposDisablePagesSiteRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposUpdateInformationAboutPagesSiteEndpoint = { + owner: string; + repo: string; + /** + * Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/)." + */ + cname?: string; + /** + * Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `"gh-pages"`, `"master"`, and `"master /docs"`. + */ + source?: '"gh-pages"' | '"master"' | '"master /docs"'; +}; +declare type ReposUpdateInformationAboutPagesSiteRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pages"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposRequestPageBuildEndpoint = { + owner: string; + repo: string; +}; +declare type ReposRequestPageBuildRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pages/builds"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposRequestPageBuildResponseData { + url: string; + status: string; +} +declare type ReposListPagesBuildsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListPagesBuildsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages/builds"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListPagesBuildsResponseData = { + url: string; + status: string; + error: { + message: string; + }; + pusher: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + commit: string; + duration: number; + created_at: string; + updated_at: string; +}[]; +declare type ReposGetLatestPagesBuildEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetLatestPagesBuildRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages/builds/latest"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetLatestPagesBuildResponseData { + url: string; + status: string; + error: { + message: string; + }; + pusher: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + commit: string; + duration: number; + created_at: string; + updated_at: string; +} +declare type ReposGetPagesBuildEndpoint = { + owner: string; + repo: string; + build_id: number; +}; +declare type ReposGetPagesBuildRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pages/builds/:build_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetPagesBuildResponseData { + url: string; + status: string; + error: { + message: string; + }; + pusher: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + commit: string; + duration: number; + created_at: string; + updated_at: string; +} +declare type ProjectsListForRepoEndpoint = { + owner: string; + repo: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListForRepoResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ProjectsCreateForRepoEndpoint = { + owner: string; + repo: string; + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateForRepoRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateForRepoResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type PullsListEndpoint = { + owner: string; + repo: string; + /** + * Either `open`, `closed`, or `all` to filter by state. + */ + state?: "open" | "closed" | "all"; + /** + * Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. + */ + head?: string; + /** + * Filter pulls by base branch name. Example: `gh-pages`. + */ + base?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month). + */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** + * The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListResponseData = { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; +}[]; +declare type PullsCreateEndpoint = { + owner: string; + repo: string; + /** + * The title of the new pull request. + */ + title: string; + /** + * The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. + */ + head: string; + /** + * The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + */ + base: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + /** + * Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. + */ + draft?: boolean; +}; +declare type PullsCreateRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; + merged: boolean; + mergeable: boolean; + rebaseable: boolean; + mergeable_state: string; + merged_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + comments: number; + review_comments: number; + maintainer_can_modify: boolean; + commits: number; + additions: number; + deletions: number; + changed_files: number; +} +declare type PullsListCommentsForRepoEndpoint = { + owner: string; + repo: string; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListCommentsForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListCommentsForRepoResponseData = { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +}[]; +declare type PullsGetCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type PullsGetCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsGetCommentResponseData { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +} +declare type PullsUpdateCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The text of the reply to the review comment. + */ + body: string; +}; +declare type PullsUpdateCommentRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateCommentResponseData { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +} +declare type PullsDeleteCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; +}; +declare type PullsDeleteCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForPullRequestReviewCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a pull request review comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForPullRequestReviewCommentRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForPullRequestReviewCommentResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForPullRequestReviewCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the pull request review comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForPullRequestReviewCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForPullRequestReviewCommentResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsDeleteForPullRequestCommentEndpoint = { + owner: string; + repo: string; + comment_id: number; + reaction_id: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsDeleteForPullRequestCommentRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/comments/:comment_id/reactions/:reaction_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type PullsGetEndpoint = { + owner: string; + repo: string; + pull_number: number; +}; +declare type PullsGetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsGetResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; + merged: boolean; + mergeable: boolean; + rebaseable: boolean; + mergeable_state: string; + merged_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + comments: number; + review_comments: number; + maintainer_can_modify: boolean; + commits: number; + additions: number; + deletions: number; + changed_files: number; +} +declare type PullsUpdateEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The title of the pull request. + */ + title?: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * State of this Pull Request. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. + */ + base?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; +}; +declare type PullsUpdateRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/pulls/:pull_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; + merged: boolean; + mergeable: boolean; + rebaseable: boolean; + mergeable_state: string; + merged_by: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + comments: number; + review_comments: number; + maintainer_can_modify: boolean; + commits: number; + additions: number; + deletions: number; + changed_files: number; +} +declare type PullsListCommentsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListCommentsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListCommentsResponseData = { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +}[]; +declare type PullsCreateCommentEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; +}; +declare type PullsCreateCommentRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateCommentResponseData { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; + start_line: number; + original_start_line: number; + start_side: string; + line: number; + original_line: number; + side: string; +} +declare type PullsCreateReviewCommentReplyEndpoint = { + owner: string; + repo: string; + pull_number: number; + comment_id: number; + /** + * The text of the review comment. + */ + body: string; +}; +declare type PullsCreateReviewCommentReplyRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateReviewCommentReplyResponseData { + url: string; + pull_request_review_id: number; + id: number; + node_id: string; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsListCommitsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListCommitsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListCommitsResponseData = { + url: string; + sha: string; + node_id: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + name: string; + email: string; + date: string; + }; + committer: { + name: string; + email: string; + date: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + verification: { + verified: boolean; + reason: string; + signature: string; + payload: string; + }; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + sha: string; + }[]; +}[]; +declare type PullsListFilesEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListFilesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/files"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListFilesResponseData = { + sha: string; + filename: string; + status: string; + additions: number; + deletions: number; + changes: number; + blob_url: string; + raw_url: string; + contents_url: string; + patch: string; +}[]; +declare type PullsCheckIfMergedEndpoint = { + owner: string; + repo: string; + pull_number: number; +}; +declare type PullsCheckIfMergedRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/merge"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type PullsMergeEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Title for the automatic commit message. + */ + commit_title?: string; + /** + * Extra detail to append to automatic commit message. + */ + commit_message?: string; + /** + * SHA that pull request head must match to allow merge. + */ + sha?: string; + /** + * Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`. + */ + merge_method?: "merge" | "squash" | "rebase"; +}; +declare type PullsMergeRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/merge"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsMergeResponseData { + sha: string; + merged: boolean; + message: string; +} +export interface PullsMergeResponse405Data { + message: string; + documentation_url: string; +} +export interface PullsMergeResponse409Data { + message: string; + documentation_url: string; +} +declare type PullsListReviewRequestsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListReviewRequestsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsListReviewRequestsResponseData { + users: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; +} +declare type PullsCreateReviewRequestEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * An array of user `login`s that will be requested. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be requested. + */ + team_reviewers?: string[]; +}; +declare type PullsCreateReviewRequestRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateReviewRequestResponseData { + url: string; + id: number; + node_id: string; + html_url: string; + diff_url: string; + patch_url: string; + issue_url: string; + commits_url: string; + review_comments_url: string; + review_comment_url: string; + comments_url: string; + statuses_url: string; + number: number; + state: string; + locked: boolean; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + active_lock_reason: string; + created_at: string; + updated_at: string; + closed_at: string; + merged_at: string; + merge_commit_sha: string; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_reviewers: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + requested_teams: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + }[]; + head: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + base: { + label: string; + ref: string; + sha: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + }; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + issue: { + href: string; + }; + comments: { + href: string; + }; + review_comments: { + href: string; + }; + review_comment: { + href: string; + }; + commits: { + href: string; + }; + statuses: { + href: string; + }; + }; + author_association: string; + draft: boolean; +} +declare type PullsDeleteReviewRequestEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * An array of user `login`s that will be removed. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be removed. + */ + team_reviewers?: string[]; +}; +declare type PullsDeleteReviewRequestRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type PullsListReviewsEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsListReviewsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsListReviewsResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + submitted_at: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +}[]; +declare type PullsCreateReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. + */ + commit_id?: string; + /** + * **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review) when you are ready. + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** + * Use the following table to specify the location, destination, and contents of the draft review comment. + */ + comments?: PullsCreateReviewParamsComments[]; +}; +declare type PullsCreateReviewRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsCreateReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsGetReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; +}; +declare type PullsGetReviewRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsGetReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + submitted_at: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsDeletePendingReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; +}; +declare type PullsDeletePendingReviewRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsDeletePendingReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsUpdateReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * The body text of the pull request review. + */ + body: string; +}; +declare type PullsUpdateReviewRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsGetCommentsForReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type PullsGetCommentsForReviewRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type PullsGetCommentsForReviewResponseData = { + url: string; + id: number; + node_id: string; + pull_request_review_id: number; + diff_hunk: string; + path: string; + position: number; + original_position: number; + commit_id: string; + original_commit_id: string; + in_reply_to_id: number; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + created_at: string; + updated_at: string; + html_url: string; + pull_request_url: string; + author_association: string; + _links: { + self: { + href: string; + }; + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +}[]; +declare type PullsDismissReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * The message for the pull request review dismissal + */ + message: string; +}; +declare type PullsDismissReviewRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/dismissals"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsDismissReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsSubmitReviewEndpoint = { + owner: string; + repo: string; + pull_number: number; + review_id: number; + /** + * The body text of the pull request review + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; +}; +declare type PullsSubmitReviewRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsSubmitReviewResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + submitted_at: string; + commit_id: string; + state: string; + html_url: string; + pull_request_url: string; + _links: { + html: { + href: string; + }; + pull_request: { + href: string; + }; + }; +} +declare type PullsUpdateBranchEndpoint = { + owner: string; + repo: string; + pull_number: number; + /** + * The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits on a repository](https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. + */ + expected_head_sha?: string; +} & RequiredPreview<"lydian">; +declare type PullsUpdateBranchRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/pulls/:pull_number/update-branch"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface PullsUpdateBranchResponseData { + message: string; + url: string; +} +declare type ReposGetReadmeEndpoint = { + owner: string; + repo: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; +}; +declare type ReposGetReadmeRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/readme"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReadmeResponseData { + type: string; + encoding: string; + size: number; + name: string; + path: string; + content: string; + sha: string; + url: string; + git_url: string; + html_url: string; + download_url: string; + _links: { + git: string; + self: string; + html: string; + }; +} +declare type ReposListReleasesEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListReleasesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListReleasesResponseData = { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +}[]; +declare type ReposCreateReleaseEndpoint = { + owner: string; + repo: string; + /** + * The name of the tag. + */ + tag_name: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` to create a draft (unpublished) release, `false` to create a published one. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease. `false` to identify the release as a full release. + */ + prerelease?: boolean; +}; +declare type ReposCreateReleaseRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/releases"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: unknown[]; +} +declare type ReposGetReleaseAssetEndpoint = { + owner: string; + repo: string; + asset_id: number; +}; +declare type ReposGetReleaseAssetRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/assets/:asset_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReleaseAssetResponseData { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ReposUpdateReleaseAssetEndpoint = { + owner: string; + repo: string; + asset_id: number; + /** + * The file name of the asset. + */ + name?: string; + /** + * An alternate short description of the asset. Used in place of the filename. + */ + label?: string; +}; +declare type ReposUpdateReleaseAssetRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/releases/assets/:asset_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateReleaseAssetResponseData { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ReposDeleteReleaseAssetEndpoint = { + owner: string; + repo: string; + asset_id: number; +}; +declare type ReposDeleteReleaseAssetRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/releases/assets/:asset_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetLatestReleaseEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetLatestReleaseRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/latest"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetLatestReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposGetReleaseByTagEndpoint = { + owner: string; + repo: string; + tag: string; +}; +declare type ReposGetReleaseByTagRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/tags/:tag"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReleaseByTagResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposGetReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; +}; +declare type ReposGetReleaseRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/:release_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposUpdateReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; + /** + * The name of the tag. + */ + tag_name?: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` makes the release a draft, and `false` publishes the release. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease, `false` to identify the release as a full release. + */ + prerelease?: boolean; +}; +declare type ReposUpdateReleaseRequestOptions = { + method: "PATCH"; + url: "/repos/:owner/:repo/releases/:release_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUpdateReleaseResponseData { + url: string; + html_url: string; + assets_url: string; + upload_url: string; + tarball_url: string; + zipball_url: string; + id: number; + node_id: string; + tag_name: string; + target_commitish: string; + name: string; + body: string; + draft: boolean; + prerelease: boolean; + created_at: string; + published_at: string; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assets: { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + }[]; +} +declare type ReposDeleteReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; +}; +declare type ReposDeleteReleaseRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/releases/:release_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListAssetsForReleaseEndpoint = { + owner: string; + repo: string; + release_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListAssetsForReleaseRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/releases/:release_id/assets"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListAssetsForReleaseResponseData = { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type ReposUploadReleaseAssetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * release_id parameter + */ + release_id: number; + /** + * name parameter + */ + name?: string; + /** + * label parameter + */ + label?: string; + /** + * The raw file data + */ + data: string; + /** + * The URL origin (protocol + host name + port) is included in `upload_url` returned in the response of the "Create a release" endpoint + */ + origin?: string; + /** + * For https://api.github.com, set `baseUrl` to `https://uploads.github.com`. For GitHub Enterprise Server, set it to `/api/uploads` + */ + baseUrl: string; +} & { + headers: { + "content-type": string; + }; +}; +declare type ReposUploadReleaseAssetRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/releases/:release_id/assets{?name,label}"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposUploadReleaseAssetResponseData { + url: string; + browser_download_url: string; + id: number; + node_id: string; + name: string; + label: string; + state: string; + content_type: string; + size: number; + download_count: number; + created_at: string; + updated_at: string; + uploader: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ActivityListStargazersForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListStargazersForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stargazers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListStargazersForRepoResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +export declare type ActivityListStargazersForRepoResponse200Data = { + starred_at: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type ReposGetCodeFrequencyStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetCodeFrequencyStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/code_frequency"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetCodeFrequencyStatsResponseData = number[][]; +declare type ReposGetCommitActivityStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetCommitActivityStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/commit_activity"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetCommitActivityStatsResponseData = { + days: number[]; + total: number; + week: number; +}[]; +declare type ReposGetContributorsStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetContributorsStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/contributors"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetContributorsStatsResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + total: number; + weeks: { + w: string; + a: number; + d: number; + c: number; + }[]; +}[]; +declare type ReposGetParticipationStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetParticipationStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/participation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetParticipationStatsResponseData { + all: number[]; + owner: number[]; +} +declare type ReposGetPunchCardStatsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetPunchCardStatsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/stats/punch_card"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetPunchCardStatsResponseData = number[][]; +declare type ReposCreateStatusEndpoint = { + owner: string; + repo: string; + sha: string; + /** + * The state of the status. Can be one of `error`, `failure`, `pending`, or `success`. + */ + state: "error" | "failure" | "pending" | "success"; + /** + * The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string; + /** + * A short description of the status. + */ + description?: string; + /** + * A string label to differentiate this status from the status of other systems. + */ + context?: string; +}; +declare type ReposCreateStatusRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/statuses/:sha"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateStatusResponseData { + url: string; + avatar_url: string; + id: number; + node_id: string; + state: string; + description: string; + target_url: string; + context: string; + created_at: string; + updated_at: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type ActivityListWatchersForRepoEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListWatchersForRepoRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/subscribers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListWatchersForRepoResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type ActivityGetRepoSubscriptionEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityGetRepoSubscriptionRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivityGetRepoSubscriptionResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + repository_url: string; +} +declare type ActivitySetRepoSubscriptionEndpoint = { + owner: string; + repo: string; + /** + * Determines if notifications should be received from this repository. + */ + subscribed?: boolean; + /** + * Determines if all notifications should be blocked from this repository. + */ + ignored?: boolean; +}; +declare type ActivitySetRepoSubscriptionRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ActivitySetRepoSubscriptionResponseData { + subscribed: boolean; + ignored: boolean; + reason: string; + created_at: string; + url: string; + repository_url: string; +} +declare type ActivityDeleteRepoSubscriptionEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityDeleteRepoSubscriptionRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/subscription"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListTagsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListTagsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/tags"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListTagsResponseData = { + name: string; + commit: { + sha: string; + url: string; + }; + zipball_url: string; + tarball_url: string; +}[]; +declare type ReposListTeamsEndpoint = { + owner: string; + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListTeamsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListTeamsResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; +}[]; +declare type ReposGetAllTopicsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"mercy">; +declare type ReposGetAllTopicsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/topics"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetAllTopicsResponseData { + names: string[]; +} +declare type ReposReplaceAllTopicsEndpoint = { + owner: string; + repo: string; + /** + * An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. + */ + names: string[]; +} & RequiredPreview<"mercy">; +declare type ReposReplaceAllTopicsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/topics"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposReplaceAllTopicsResponseData { + names: string[]; +} +declare type ReposGetClonesEndpoint = { + owner: string; + repo: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; +}; +declare type ReposGetClonesRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/clones"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetClonesResponseData { + count: number; + uniques: number; + clones: { + timestamp: string; + count: number; + uniques: number; + }[]; +} +declare type ReposGetTopPathsEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetTopPathsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/popular/paths"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetTopPathsResponseData = { + path: string; + title: string; + count: number; + uniques: number; +}[]; +declare type ReposGetTopReferrersEndpoint = { + owner: string; + repo: string; +}; +declare type ReposGetTopReferrersRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/popular/referrers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposGetTopReferrersResponseData = { + referrer: string; + count: number; + uniques: number; +}[]; +declare type ReposGetViewsEndpoint = { + owner: string; + repo: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; +}; +declare type ReposGetViewsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/traffic/views"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposGetViewsResponseData { + count: number; + uniques: number; + views: { + timestamp: string; + count: number; + uniques: number; + }[]; +} +declare type ReposTransferEndpoint = { + owner: string; + repo: string; + /** + * **Required:** The username or organization name the repository will be transferred to. + */ + 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?: number[]; +}; +declare type ReposTransferRequestOptions = { + method: "POST"; + url: "/repos/:owner/:repo/transfer"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposTransferResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type ReposCheckVulnerabilityAlertsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"dorian">; +declare type ReposCheckVulnerabilityAlertsRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/vulnerability-alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposEnableVulnerabilityAlertsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"dorian">; +declare type ReposEnableVulnerabilityAlertsRequestOptions = { + method: "PUT"; + url: "/repos/:owner/:repo/vulnerability-alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposDisableVulnerabilityAlertsEndpoint = { + owner: string; + repo: string; +} & RequiredPreview<"dorian">; +declare type ReposDisableVulnerabilityAlertsRequestOptions = { + method: "DELETE"; + url: "/repos/:owner/:repo/vulnerability-alerts"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposGetArchiveLinkEndpoint = { + owner: string; + repo: string; + archive_format: string; + ref: string; +}; +declare type ReposGetArchiveLinkRequestOptions = { + method: "GET"; + url: "/repos/:owner/:repo/:archive_format/:ref"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposCreateUsingTemplateEndpoint = { + template_owner: string; + template_repo: string; + /** + * The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. + */ + owner?: string; + /** + * The name of the new repository. + */ + name: string; + /** + * A short description of the new repository. + */ + description?: string; + /** + * Either `true` to create a new private repository or `false` to create a new public one. + */ + private?: boolean; +} & RequiredPreview<"baptiste">; +declare type ReposCreateUsingTemplateRequestOptions = { + method: "POST"; + url: "/repos/:template_owner/:template_repo/generate"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateUsingTemplateResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type ReposListPublicEndpoint = { + /** + * The integer ID of the last repository that you've seen. + */ + since?: number; +}; +declare type ReposListPublicRequestOptions = { + method: "GET"; + url: "/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListPublicResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; +}[]; +declare type ScimListProvisionedIdentitiesEndpoint = { + org: string; + /** + * Used for pagination: the index of the first result to return. + */ + startIndex?: number; + /** + * Used for pagination: the number of results to return. + */ + count?: number; + /** + * Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query: `?filter=userName%20eq%20\"Octocat\"`. + */ + filter?: string; +}; +declare type ScimListProvisionedIdentitiesRequestOptions = { + method: "GET"; + url: "/scim/v2/organizations/:org/Users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimListProvisionedIdentitiesResponseData { + schemas: string[]; + totalResults: number; + itemsPerPage: number; + startIndex: number; + Resources: { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + primary: boolean; + type: string; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; + }[]; +} +declare type ScimProvisionAndInviteUsersEndpoint = { + org: string; +}; +declare type ScimProvisionAndInviteUsersRequestOptions = { + method: "POST"; + url: "/scim/v2/organizations/:org/Users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimProvisionAndInviteUsersResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimGetProvisioningDetailsForUserEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimGetProvisioningDetailsForUserRequestOptions = { + method: "GET"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimGetProvisioningDetailsForUserResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimReplaceProvisionedUserInformationEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimReplaceProvisionedUserInformationRequestOptions = { + method: "PUT"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimReplaceProvisionedUserInformationResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimUpdateUserAttributeEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimUpdateUserAttributeRequestOptions = { + method: "PATCH"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ScimUpdateUserAttributeResponseData { + schemas: string[]; + id: string; + externalId: string; + userName: string; + name: { + givenName: string; + familyName: string; + }; + emails: { + value: string; + type: string; + primary: boolean; + }[]; + active: boolean; + meta: { + resourceType: string; + created: string; + lastModified: string; + location: string; + }; +} +declare type ScimRemoveUserFromOrgEndpoint = { + org: string; + scim_user_id: number; +}; +declare type ScimRemoveUserFromOrgRequestOptions = { + method: "DELETE"; + url: "/scim/v2/organizations/:org/Users/:scim_user_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type SearchCodeEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching code](https://help.github.com/articles/searching-code/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "indexed"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchCodeRequestOptions = { + method: "GET"; + url: "/search/code"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchCodeResponseData { + total_count: number; + incomplete_results: boolean; + items: { + name: string; + path: string; + sha: string; + url: string; + git_url: string; + html_url: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + }; + score: number; + }[]; +} +declare type SearchCommitsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching commits](https://help.github.com/articles/searching-commits/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "author-date" | "committer-date"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"cloak">; +declare type SearchCommitsRequestOptions = { + method: "GET"; + url: "/search/commits"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchCommitsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + url: string; + sha: string; + html_url: string; + comments_url: string; + commit: { + url: string; + author: { + date: string; + name: string; + email: string; + }; + committer: { + date: string; + name: string; + email: string; + }; + message: string; + tree: { + url: string; + sha: string; + }; + comment_count: number; + }; + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + committer: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parents: { + url: string; + html_url: string; + sha: string; + }[]; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + forks_url: string; + keys_url: string; + collaborators_url: string; + teams_url: string; + hooks_url: string; + issue_events_url: string; + events_url: string; + assignees_url: string; + branches_url: string; + tags_url: string; + blobs_url: string; + git_tags_url: string; + git_refs_url: string; + trees_url: string; + statuses_url: string; + languages_url: string; + stargazers_url: string; + contributors_url: string; + subscribers_url: string; + subscription_url: string; + commits_url: string; + git_commits_url: string; + comments_url: string; + issue_comment_url: string; + contents_url: string; + compare_url: string; + merges_url: string; + archive_url: string; + downloads_url: string; + issues_url: string; + pulls_url: string; + milestones_url: string; + notifications_url: string; + labels_url: string; + releases_url: string; + deployments_url: string; + }; + score: number; + }[]; +} +declare type SearchIssuesAndPullRequestsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "comments" | "reactions" | "reactions-+1" | "reactions--1" | "reactions-smile" | "reactions-thinking_face" | "reactions-heart" | "reactions-tada" | "interactions" | "created" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchIssuesAndPullRequestsRequestOptions = { + method: "GET"; + url: "/search/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchIssuesAndPullRequestsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + id: number; + node_id: string; + number: number; + title: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + color: string; + }[]; + state: string; + assignee: string; + milestone: string; + comments: number; + created_at: string; + updated_at: string; + closed_at: string; + pull_request: { + html_url: string; + diff_url: string; + patch_url: string; + }; + body: string; + score: number; + }[]; +} +declare type SearchLabelsEndpoint = { + /** + * The id of the repository. + */ + repository_id: number; + /** + * The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; + /** + * Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "created" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; +}; +declare type SearchLabelsRequestOptions = { + method: "GET"; + url: "/search/labels"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchLabelsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + id: number; + node_id: string; + url: string; + name: string; + color: string; + default: boolean; + description: string; + score: number; + }[]; +} +declare type SearchReposEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchReposRequestOptions = { + method: "GET"; + url: "/search/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchReposResponseData { + total_count: number; + incomplete_results: boolean; + items: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + received_events_url: string; + type: string; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + created_at: string; + updated_at: string; + pushed_at: string; + homepage: string; + size: number; + stargazers_count: number; + watchers_count: number; + language: string; + forks_count: number; + open_issues_count: number; + master_branch: string; + default_branch: string; + score: number; + }[]; +} +declare type SearchTopicsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; +}; +declare type SearchTopicsRequestOptions = { + method: "GET"; + url: "/search/topics"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchTopicsResponseData { + total_count: number; + incomplete_results: boolean; + items: { + name: string; + display_name: string; + short_description: string; + description: string; + created_by: string; + released: string; + created_at: string; + updated_at: string; + featured: boolean; + curated: boolean; + score: number; + }[]; +} +declare type SearchUsersEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching users](https://help.github.com/articles/searching-users/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "followers" | "repositories" | "joined"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type SearchUsersRequestOptions = { + method: "GET"; + url: "/search/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface SearchUsersResponseData { + total_count: number; + incomplete_results: boolean; + items: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + received_events_url: string; + type: string; + score: number; + }[]; +} +declare type TeamsGetLegacyEndpoint = { + team_id: number; +}; +declare type TeamsGetLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetLegacyResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsUpdateLegacyEndpoint = { + team_id: number; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. + */ + parent_team_id?: number; +}; +declare type TeamsUpdateLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateLegacyResponseData { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +} +declare type TeamsDeleteLegacyEndpoint = { + team_id: number; +}; +declare type TeamsDeleteLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionsLegacyEndpoint = { + team_id: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionsLegacyResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionLegacyEndpoint = { + team_id: number; + /** + * The discussion post's title. + */ + title: string; + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; +}; +declare type TeamsCreateDiscussionLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; +}; +declare type TeamsGetDiscussionLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * The discussion post's title. + */ + title?: string; + /** + * The discussion post's body text. + */ + body?: string; +}; +declare type TeamsUpdateDiscussionLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + last_edited_at: string; + html_url: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + team_url: string; + title: string; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; +}; +declare type TeamsDeleteDiscussionLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/discussions/:discussion_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListDiscussionCommentsLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListDiscussionCommentsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListDiscussionCommentsLegacyResponseData = { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +}[]; +declare type TeamsCreateDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsCreateDiscussionCommentLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions/:discussion_number/comments"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateDiscussionCommentLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsGetDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; +}; +declare type TeamsGetDiscussionCommentLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetDiscussionCommentLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsUpdateDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +declare type TeamsUpdateDiscussionCommentLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsUpdateDiscussionCommentLegacyResponseData { + author: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + body: string; + body_html: string; + body_version: string; + created_at: string; + last_edited_at: string; + discussion_url: string; + html_url: string; + node_id: string; + number: number; + updated_at: string; + url: string; + reactions: { + url: string; + total_count: number; + "+1": number; + "-1": number; + laugh: number; + confused: number; + heart: number; + hooray: number; + }; +} +declare type TeamsDeleteDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; +}; +declare type TeamsDeleteDiscussionCommentLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReactionsListForTeamDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionCommentLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionCommentLegacyResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionCommentLegacyEndpoint = { + team_id: number; + discussion_number: number; + comment_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion comment. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionCommentLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionCommentLegacyResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type ReactionsListForTeamDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsListForTeamDiscussionLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReactionsListForTeamDiscussionLegacyResponseData = { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +}[]; +declare type ReactionsCreateForTeamDiscussionLegacyEndpoint = { + team_id: number; + discussion_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion. + */ + content: "+1" | "-1" | "laugh" | "confused" | "heart" | "hooray" | "rocket" | "eyes"; +} & RequiredPreview<"squirrel-girl">; +declare type ReactionsCreateForTeamDiscussionLegacyRequestOptions = { + method: "POST"; + url: "/teams/:team_id/discussions/:discussion_number/reactions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReactionsCreateForTeamDiscussionLegacyResponseData { + id: number; + node_id: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + content: string; + created_at: string; +} +declare type TeamsListPendingInvitationsLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListPendingInvitationsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListPendingInvitationsLegacyResponseData = { + id: number; + login: string; + email: string; + role: string; + created_at: string; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + team_count: number; + invitation_team_url: string; +}[]; +declare type TeamsListMembersLegacyEndpoint = { + team_id: number; + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListMembersLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/members"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListMembersLegacyResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type TeamsGetMemberLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsGetMemberLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsAddMemberLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsAddMemberLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddMemberLegacyResponseData { + message: string; + errors: { + code: string; + field: string; + resource: string; + }[]; +} +declare type TeamsRemoveMemberLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsRemoveMemberLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/members/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsGetMembershipLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsGetMembershipLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsGetMembershipLegacyResponseData { + url: string; + role: string; + state: string; +} +declare type TeamsAddOrUpdateMembershipLegacyEndpoint = { + team_id: number; + username: string; + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; +}; +declare type TeamsAddOrUpdateMembershipLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateMembershipLegacyResponseData { + url: string; + role: string; + state: string; +} +export interface TeamsAddOrUpdateMembershipLegacyResponse422Data { + message: string; + errors: { + code: string; + field: string; + resource: string; + }[]; +} +declare type TeamsRemoveMembershipLegacyEndpoint = { + team_id: number; + username: string; +}; +declare type TeamsRemoveMembershipLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/memberships/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListProjectsLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type TeamsListProjectsLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListProjectsLegacyResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +}[]; +declare type TeamsReviewProjectLegacyEndpoint = { + team_id: number; + project_id: number; +} & RequiredPreview<"inertia">; +declare type TeamsReviewProjectLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsReviewProjectLegacyResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; + organization_permission: string; + private: boolean; + permissions: { + read: boolean; + write: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateProjectLegacyEndpoint = { + team_id: number; + project_id: number; + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + permission?: "read" | "write" | "admin"; +} & RequiredPreview<"inertia">; +declare type TeamsAddOrUpdateProjectLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsAddOrUpdateProjectLegacyResponseData { + message: string; + documentation_url: string; +} +declare type TeamsRemoveProjectLegacyEndpoint = { + team_id: number; + project_id: number; +}; +declare type TeamsRemoveProjectLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/projects/:project_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListReposLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListReposLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListReposLegacyResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type TeamsCheckManagesRepoLegacyEndpoint = { + team_id: number; + owner: string; + repo: string; +}; +declare type TeamsCheckManagesRepoLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCheckManagesRepoLegacyResponseData { + organization: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + parent: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + source: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; + permissions: { + pull: boolean; + triage: boolean; + push: boolean; + maintain: boolean; + admin: boolean; + }; +} +declare type TeamsAddOrUpdateRepoLegacyEndpoint = { + team_id: number; + owner: string; + repo: string; + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + */ + permission?: "pull" | "push" | "admin"; +}; +declare type TeamsAddOrUpdateRepoLegacyRequestOptions = { + method: "PUT"; + url: "/teams/:team_id/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsRemoveRepoLegacyEndpoint = { + team_id: number; + owner: string; + repo: string; +}; +declare type TeamsRemoveRepoLegacyRequestOptions = { + method: "DELETE"; + url: "/teams/:team_id/repos/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type TeamsListIdPGroupsForLegacyEndpoint = { + team_id: number; +}; +declare type TeamsListIdPGroupsForLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsListIdPGroupsForLegacyResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsCreateOrUpdateIdPGroupConnectionsLegacyEndpoint = { + team_id: number; + /** + * The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. + */ + groups: TeamsCreateOrUpdateIdPGroupConnectionsLegacyParamsGroups[]; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsLegacyRequestOptions = { + method: "PATCH"; + url: "/teams/:team_id/team-sync/group-mappings"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface TeamsCreateOrUpdateIdPGroupConnectionsLegacyResponseData { + groups: { + group_id: string; + group_name: string; + group_description: string; + }[]; +} +declare type TeamsListChildLegacyEndpoint = { + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListChildLegacyRequestOptions = { + method: "GET"; + url: "/teams/:team_id/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListChildLegacyResponseData = { + id: number; + node_id: string; + url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + }; +}[]; +declare type UsersGetAuthenticatedEndpoint = {}; +declare type UsersGetAuthenticatedRequestOptions = { + method: "GET"; + url: "/user"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetAuthenticatedResponseData { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string; + company: string; + blog: string; + location: string; + email: string; + hireable: boolean; + bio: string; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; + private_gists: number; + total_private_repos: number; + owned_private_repos: number; + disk_usage: number; + collaborators: number; + two_factor_authentication: boolean; + plan: { + name: string; + space: number; + private_repos: number; + collaborators: number; + }; +} +declare type UsersUpdateAuthenticatedEndpoint = { + /** + * The new name of the user. + */ + name?: string; + /** + * The publicly visible email address of the user. + */ + email?: string; + /** + * The new blog URL of the user. + */ + blog?: string; + /** + * The new company of the user. + */ + company?: string; + /** + * The new location of the user. + */ + location?: string; + /** + * The new hiring availability of the user. + */ + hireable?: boolean; + /** + * The new short biography of the user. + */ + bio?: string; +}; +declare type UsersUpdateAuthenticatedRequestOptions = { + method: "PATCH"; + url: "/user"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersUpdateAuthenticatedResponseData { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string; + company: string; + blog: string; + location: string; + email: string; + hireable: boolean; + bio: string; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; + private_gists: number; + total_private_repos: number; + owned_private_repos: number; + disk_usage: number; + collaborators: number; + two_factor_authentication: boolean; + plan: { + name: string; + space: number; + private_repos: number; + collaborators: number; + }; +} +declare type UsersListBlockedEndpoint = {}; +declare type UsersListBlockedRequestOptions = { + method: "GET"; + url: "/user/blocks"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListBlockedResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersCheckBlockedEndpoint = { + username: string; +}; +declare type UsersCheckBlockedRequestOptions = { + method: "GET"; + url: "/user/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersBlockEndpoint = { + username: string; +}; +declare type UsersBlockRequestOptions = { + method: "PUT"; + url: "/user/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersUnblockEndpoint = { + username: string; +}; +declare type UsersUnblockRequestOptions = { + method: "DELETE"; + url: "/user/blocks/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersTogglePrimaryEmailVisibilityEndpoint = { + /** + * Specify the _primary_ email address that needs a visibility change. + */ + email: string; + /** + * Use `public` to enable an authenticated user to view the specified email address, or use `private` so this primary email address cannot be seen publicly. + */ + visibility: string; +}; +declare type UsersTogglePrimaryEmailVisibilityRequestOptions = { + method: "PATCH"; + url: "/user/email/visibility"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersTogglePrimaryEmailVisibilityResponseData = { + email: string; + primary: boolean; + verified: boolean; + visibility: string; +}[]; +declare type UsersListEmailsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListEmailsRequestOptions = { + method: "GET"; + url: "/user/emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListEmailsResponseData = { + email: string; + verified: boolean; + primary: boolean; + visibility: string; +}[]; +declare type UsersAddEmailsEndpoint = { + /** + * Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; +}; +declare type UsersAddEmailsRequestOptions = { + method: "POST"; + url: "/user/emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersAddEmailsResponseData = { + email: string; + primary: boolean; + verified: boolean; + visibility: string; +}[]; +declare type UsersDeleteEmailsEndpoint = { + /** + * Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; +}; +declare type UsersDeleteEmailsRequestOptions = { + method: "DELETE"; + url: "/user/emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersListFollowersForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowersForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/followers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowersForAuthenticatedUserResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersListFollowedByAuthenticatedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowedByAuthenticatedRequestOptions = { + method: "GET"; + url: "/user/following"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowedByAuthenticatedResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersCheckFollowingEndpoint = { + username: string; +}; +declare type UsersCheckFollowingRequestOptions = { + method: "GET"; + url: "/user/following/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersFollowEndpoint = { + username: string; +}; +declare type UsersFollowRequestOptions = { + method: "PUT"; + url: "/user/following/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersUnfollowEndpoint = { + username: string; +}; +declare type UsersUnfollowRequestOptions = { + method: "DELETE"; + url: "/user/following/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersListGpgKeysEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListGpgKeysRequestOptions = { + method: "GET"; + url: "/user/gpg_keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListGpgKeysResponseData = { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +}[]; +declare type UsersCreateGpgKeyEndpoint = { + /** + * Your GPG key, generated in ASCII-armored format. See "[Generating a new GPG key](https://help.github.com/articles/generating-a-new-gpg-key/)" for help creating a GPG key. + */ + armored_public_key?: string; +}; +declare type UsersCreateGpgKeyRequestOptions = { + method: "POST"; + url: "/user/gpg_keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersCreateGpgKeyResponseData { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +} +declare type UsersGetGpgKeyEndpoint = { + gpg_key_id: number; +}; +declare type UsersGetGpgKeyRequestOptions = { + method: "GET"; + url: "/user/gpg_keys/:gpg_key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetGpgKeyResponseData { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +} +declare type UsersDeleteGpgKeyEndpoint = { + gpg_key_id: number; +}; +declare type UsersDeleteGpgKeyRequestOptions = { + method: "DELETE"; + url: "/user/gpg_keys/:gpg_key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsListInstallationsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListInstallationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/installations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsListInstallationsForAuthenticatedUserResponseData { + total_count: number; + installations: { + id: number; + account: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + gravatar_id: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + metadata: string; + contents: string; + issues: string; + single_file: string; + }; + events: string[]; + single_file_name: string; + }[]; +} +declare type AppsListInstallationReposForAuthenticatedUserEndpoint = { + installation_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"machine-man">; +declare type AppsListInstallationReposForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/installations/:installation_id/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsListInstallationReposForAuthenticatedUserResponseData { + total_count: number; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; +} +declare type AppsAddRepoToInstallationEndpoint = { + installation_id: number; + repository_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsAddRepoToInstallationRequestOptions = { + method: "PUT"; + url: "/user/installations/:installation_id/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsRemoveRepoFromInstallationEndpoint = { + installation_id: number; + repository_id: number; +} & RequiredPreview<"machine-man">; +declare type AppsRemoveRepoFromInstallationRequestOptions = { + method: "DELETE"; + url: "/user/installations/:installation_id/repositories/:repository_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type IssuesListForAuthenticatedUserEndpoint = { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type IssuesListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/issues"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type IssuesListForAuthenticatedUserResponseData = { + id: number; + node_id: string; + url: string; + repository_url: string; + labels_url: string; + comments_url: string; + events_url: string; + html_url: string; + number: number; + state: string; + title: string; + body: string; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + labels: { + id: number; + node_id: string; + url: string; + name: string; + description: string; + color: string; + default: boolean; + }[]; + assignee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + assignees: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }[]; + milestone: { + url: string; + html_url: string; + labels_url: string; + id: number; + node_id: string; + number: number; + state: string; + title: string; + description: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + open_issues: number; + closed_issues: number; + created_at: string; + updated_at: string; + closed_at: string; + due_on: string; + }; + locked: boolean; + active_lock_reason: string; + comments: number; + pull_request: { + url: string; + html_url: string; + diff_url: string; + patch_url: string; + }; + closed_at: string; + created_at: string; + updated_at: string; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type UsersListPublicKeysEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListPublicKeysRequestOptions = { + method: "GET"; + url: "/user/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListPublicKeysResponseData = { + key_id: string; + key: string; +}[]; +declare type UsersCreatePublicKeyEndpoint = { + /** + * A descriptive name for the new key. Use a name that will help you recognize this key in your GitHub account. For example, if you're using a personal Mac, you might call this key "Personal MacBook Air". + */ + title?: string; + /** + * The public SSH key to add to your GitHub account. See "[Generating a new SSH key](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/)" for guidance on how to create a public SSH key. + */ + key?: string; +}; +declare type UsersCreatePublicKeyRequestOptions = { + method: "POST"; + url: "/user/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersCreatePublicKeyResponseData { + key_id: string; + key: string; +} +declare type UsersGetPublicKeyEndpoint = { + key_id: number; +}; +declare type UsersGetPublicKeyRequestOptions = { + method: "GET"; + url: "/user/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetPublicKeyResponseData { + key_id: string; + key: string; +} +declare type UsersDeletePublicKeyEndpoint = { + key_id: number; +}; +declare type UsersDeletePublicKeyRequestOptions = { + method: "DELETE"; + url: "/user/keys/:key_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type AppsListSubscriptionsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListSubscriptionsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/marketplace_purchases"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListSubscriptionsForAuthenticatedUserResponseData = { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + account: { + login: string; + id: number; + url: string; + email: string; + organization_billing_email: string; + type: string; + }; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; +}[]; +declare type AppsListSubscriptionsForAuthenticatedUserStubbedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type AppsListSubscriptionsForAuthenticatedUserStubbedRequestOptions = { + method: "GET"; + url: "/user/marketplace_purchases/stubbed"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type AppsListSubscriptionsForAuthenticatedUserStubbedResponseData = { + billing_cycle: string; + next_billing_date: string; + unit_count: string; + on_free_trial: boolean; + free_trial_ends_on: string; + updated_at: string; + account: { + login: string; + id: number; + url: string; + email: string; + organization_billing_email: string; + type: string; + }; + plan: { + url: string; + accounts_url: string; + id: number; + number: number; + name: string; + description: string; + monthly_price_in_cents: number; + yearly_price_in_cents: number; + price_model: string; + has_free_trial: boolean; + unit_name: string; + state: string; + bullets: string[]; + }; +}[]; +declare type OrgsListMembershipsEndpoint = { + /** + * Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships. + */ + state?: "active" | "pending"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListMembershipsRequestOptions = { + method: "GET"; + url: "/user/memberships/orgs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListMembershipsResponseData = { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +}[]; +declare type OrgsGetMembershipForAuthenticatedUserEndpoint = { + org: string; +}; +declare type OrgsGetMembershipForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/memberships/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsGetMembershipForAuthenticatedUserResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type OrgsUpdateMembershipEndpoint = { + org: string; + /** + * The state that the membership should be in. Only `"active"` will be accepted. + */ + state: "active"; +}; +declare type OrgsUpdateMembershipRequestOptions = { + method: "PATCH"; + url: "/user/memberships/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface OrgsUpdateMembershipResponseData { + url: string; + state: string; + role: string; + organization_url: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + }; + user: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; +} +declare type MigrationsStartForAuthenticatedUserEndpoint = { + /** + * An array of repositories to include in the migration. + */ + repositories: string[]; + /** + * Locks the `repositories` to prevent changes during the migration when set to `true`. + */ + lock_repositories?: boolean; + /** + * Does not include attachments uploaded to GitHub.com in the migration data when set to `true`. Excluding attachments will reduce the migration archive file size. + */ + exclude_attachments?: boolean; +}; +declare type MigrationsStartForAuthenticatedUserRequestOptions = { + method: "POST"; + url: "/user/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsStartForAuthenticatedUserResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/migrations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListForAuthenticatedUserResponseData = { + id: number; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +}[]; +declare type MigrationsGetStatusForAuthenticatedUserEndpoint = { + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsGetStatusForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/migrations/:migration_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface MigrationsGetStatusForAuthenticatedUserResponseData { + id: number; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + guid: string; + state: string; + lock_repositories: boolean; + exclude_attachments: boolean; + repositories: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }[]; + url: string; + created_at: string; + updated_at: string; +} +declare type MigrationsGetArchiveForAuthenticatedUserEndpoint = { + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsGetArchiveForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsDeleteArchiveForAuthenticatedUserEndpoint = { + migration_id: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsDeleteArchiveForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: "/user/migrations/:migration_id/archive"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type MigrationsUnlockRepoForAuthenticatedUserEndpoint = { + migration_id: number; + repo_name: string; +} & RequiredPreview<"wyandotte">; +declare type MigrationsUnlockRepoForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: "/user/migrations/:migration_id/repos/:repo_name/lock"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type OrgsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/orgs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListForAuthenticatedUserResponseData = { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; +}[]; +declare type ProjectsCreateForAuthenticatedUserEndpoint = { + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +} & RequiredPreview<"inertia">; +declare type ProjectsCreateForAuthenticatedUserRequestOptions = { + method: "POST"; + url: "/user/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ProjectsCreateForAuthenticatedUserResponseData { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +} +declare type UsersListPublicEmailsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListPublicEmailsRequestOptions = { + method: "GET"; + url: "/user/public_emails"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListPublicEmailsResponseData = { + email: string; + verified: boolean; + primary: boolean; + visibility: string; +}[]; +declare type ReposListForAuthenticatedUserEndpoint = { + /** + * Can be one of `all`, `public`, or `private`. + */ + visibility?: "all" | "public" | "private"; + /** + * Comma-separated list of values. Can include: + * \* `owner`: Repositories that are owned by the authenticated user. + * \* `collaborator`: Repositories that the user has been added to as a collaborator. + * \* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** + * Can be one of `all`, `owner`, `public`, `private`, `member`. Default: `all` + * + * Will cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. + */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposCreateForAuthenticatedUserEndpoint = { + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to create a private repository or `false` to create a public one. + */ + private?: boolean; + /** + * Can be `public` or `private`. If your organization is associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+, `visibility` can also be `internal`. For more information, see "[Creating an internal repository](https://help.github.com/github/creating-cloning-and-archiving-repositories/creating-an-internal-repository)" in the GitHub Help documentation. + * The `visibility` parameter overrides the `private` parameter when you use both parameters with the `nebula-preview` preview header. + */ + visibility?: "public" | "private" | "visibility" | "internal"; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow automatically deleting head branches when pull requests are merged, or `false` to prevent automatic deletion. + */ + delete_branch_on_merge?: boolean; +}; +declare type ReposCreateForAuthenticatedUserRequestOptions = { + method: "POST"; + url: "/user/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface ReposCreateForAuthenticatedUserResponseData { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +} +declare type ReposListInvitationsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListInvitationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/repository_invitations"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ReposListInvitationsForAuthenticatedUserResponseData = { + id: number; + repository: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + }; + invitee: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + inviter: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + permissions: string; + created_at: string; + url: string; + html_url: string; +}[]; +declare type ReposAcceptInvitationEndpoint = { + invitation_id: number; +}; +declare type ReposAcceptInvitationRequestOptions = { + method: "PATCH"; + url: "/user/repository_invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposDeclineInvitationEndpoint = { + invitation_id: number; +}; +declare type ReposDeclineInvitationRequestOptions = { + method: "DELETE"; + url: "/user/repository_invitations/:invitation_id"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListReposStarredByAuthenticatedUserEndpoint = { + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReposStarredByAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/starred"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListReposStarredByAuthenticatedUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +}[]; +export declare type ActivityListReposStarredByAuthenticatedUserResponse200Data = { + starred_at: string; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type ActivityCheckRepoIsStarredByAuthenticatedUserEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityCheckRepoIsStarredByAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/starred/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityStarRepoForAuthenticatedUserEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityStarRepoForAuthenticatedUserRequestOptions = { + method: "PUT"; + url: "/user/starred/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityUnstarRepoForAuthenticatedUserEndpoint = { + owner: string; + repo: string; +}; +declare type ActivityUnstarRepoForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: "/user/starred/:owner/:repo"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListWatchedReposForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListWatchedReposForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/subscriptions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListWatchedReposForAuthenticatedUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type TeamsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type TeamsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/user/teams"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type TeamsListForAuthenticatedUserResponseData = { + id: number; + node_id: string; + url: string; + html_url: string; + name: string; + slug: string; + description: string; + privacy: string; + permission: string; + members_url: string; + repositories_url: string; + parent: string; + members_count: number; + repos_count: number; + created_at: string; + updated_at: string; + organization: { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; + name: string; + company: string; + blog: string; + location: string; + email: string; + is_verified: boolean; + has_organization_projects: boolean; + has_repository_projects: boolean; + public_repos: number; + public_gists: number; + followers: number; + following: number; + html_url: string; + created_at: string; + type: string; + }; +}[]; +declare type MigrationsListReposForUserEndpoint = { + migration_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"wyandotte">; +declare type MigrationsListReposForUserRequestOptions = { + method: "GET"; + url: "/user/:migration_id/repositories"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type MigrationsListReposForUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type UsersListEndpoint = { + /** + * The integer ID of the last User that you've seen. + */ + since?: string; +}; +declare type UsersListRequestOptions = { + method: "GET"; + url: "/users"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersGetByUsernameEndpoint = { + username: string; +}; +declare type UsersGetByUsernameRequestOptions = { + method: "GET"; + url: "/users/:username"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetByUsernameResponseData { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + name: string; + company: string; + blog: string; + location: string; + email: string; + hireable: boolean; + bio: string; + public_repos: number; + public_gists: number; + followers: number; + following: number; + created_at: string; + updated_at: string; +} +declare type ActivityListEventsForAuthenticatedUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListEventsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/users/:username/events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListOrgEventsForAuthenticatedUserEndpoint = { + username: string; + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListOrgEventsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: "/users/:username/events/orgs/:org"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListPublicEventsForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListPublicEventsForUserRequestOptions = { + method: "GET"; + url: "/users/:username/events/public"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type UsersListFollowersForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowersForUserRequestOptions = { + method: "GET"; + url: "/users/:username/followers"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowersForUserResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersListFollowingForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListFollowingForUserRequestOptions = { + method: "GET"; + url: "/users/:username/following"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListFollowingForUserResponseData = { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; +}[]; +declare type UsersCheckFollowingForUserEndpoint = { + username: string; + target_user: string; +}; +declare type UsersCheckFollowingForUserRequestOptions = { + method: "GET"; + url: "/users/:username/following/:target_user"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type GistsListForUserEndpoint = { + username: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type GistsListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/gists"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type GistsListForUserResponseData = { + url: string; + forks_url: string; + commits_url: string; + id: string; + node_id: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + files: { + [k: string]: { + filename?: string; + type?: string; + language?: string; + raw_url?: string; + size?: number; + [k: string]: unknown; + }; + }; + public: boolean; + created_at: string; + updated_at: string; + description: string; + comments: number; + user: string; + comments_url: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + truncated: boolean; +}[]; +declare type UsersListGpgKeysForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListGpgKeysForUserRequestOptions = { + method: "GET"; + url: "/users/:username/gpg_keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListGpgKeysForUserResponseData = { + id: number; + primary_key_id: string; + key_id: string; + public_key: string; + emails: { + email: string; + verified: boolean; + }[]; + subkeys: { + id: number; + primary_key_id: number; + key_id: string; + public_key: string; + emails: unknown[]; + subkeys: unknown[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; + }[]; + can_sign: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_certify: boolean; + created_at: string; + expires_at: string; +}[]; +declare type UsersGetContextForUserEndpoint = { + username: string; + /** + * Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. + */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** + * Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. + */ + subject_id?: string; +}; +declare type UsersGetContextForUserRequestOptions = { + method: "GET"; + url: "/users/:username/hovercard"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface UsersGetContextForUserResponseData { + contexts: { + message: string; + octicon: string; + }[]; +} +declare type AppsGetUserInstallationEndpoint = { + username: string; +} & RequiredPreview<"machine-man">; +declare type AppsGetUserInstallationRequestOptions = { + method: "GET"; + url: "/users/:username/installation"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export interface AppsGetUserInstallationResponseData { + id: number; + account: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + repository_selection: string; + access_tokens_url: string; + repositories_url: string; + html_url: string; + app_id: number; + target_id: number; + target_type: string; + permissions: { + checks: string; + metadata: string; + contents: string; + }; + events: string[]; + created_at: string; + updated_at: string; + single_file_name: string; +} +declare type UsersListPublicKeysForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type UsersListPublicKeysForUserRequestOptions = { + method: "GET"; + url: "/users/:username/keys"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type UsersListPublicKeysForUserResponseData = { + id: number; + key: string; +}[]; +declare type OrgsListForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type OrgsListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/orgs"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type OrgsListForUserResponseData = { + login: string; + id: number; + node_id: string; + url: string; + repos_url: string; + events_url: string; + hooks_url: string; + issues_url: string; + members_url: string; + public_members_url: string; + avatar_url: string; + description: string; +}[]; +declare type ProjectsListForUserEndpoint = { + username: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +} & RequiredPreview<"inertia">; +declare type ProjectsListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/projects"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ProjectsListForUserResponseData = { + owner_url: string; + url: string; + html_url: string; + columns_url: string; + id: number; + node_id: string; + name: string; + body: string; + number: number; + state: string; + creator: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + created_at: string; + updated_at: string; +}[]; +declare type ActivityListReceivedEventsForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReceivedEventsForUserRequestOptions = { + method: "GET"; + url: "/users/:username/received_events"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListReceivedPublicEventsForUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReceivedPublicEventsForUserRequestOptions = { + method: "GET"; + url: "/users/:username/received_events/public"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ReposListForUserEndpoint = { + username: string; + /** + * Can be one of `all`, `owner`, `member`. + */ + type?: "all" | "owner" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ReposListForUserRequestOptions = { + method: "GET"; + url: "/users/:username/repos"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +declare type ActivityListReposStarredByUserEndpoint = { + username: string; + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReposStarredByUserRequestOptions = { + method: "GET"; + url: "/users/:username/starred"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListReposStarredByUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; +}[]; +export declare type ActivityListReposStarredByUserResponse200Data = { + starred_at: string; + repo: { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + allow_rebase_merge: boolean; + template_repository: string; + temp_clone_token: string; + allow_squash_merge: boolean; + allow_merge_commit: boolean; + subscribers_count: number; + network_count: number; + }; +}[]; +declare type ActivityListReposWatchedByUserEndpoint = { + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +declare type ActivityListReposWatchedByUserRequestOptions = { + method: "GET"; + url: "/users/:username/subscriptions"; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +export declare type ActivityListReposWatchedByUserResponseData = { + id: number; + node_id: string; + name: string; + full_name: string; + owner: { + login: string; + id: number; + node_id: string; + avatar_url: string; + gravatar_id: string; + url: string; + html_url: string; + followers_url: string; + following_url: string; + gists_url: string; + starred_url: string; + subscriptions_url: string; + organizations_url: string; + repos_url: string; + events_url: string; + received_events_url: string; + type: string; + site_admin: boolean; + }; + private: boolean; + html_url: string; + description: string; + fork: boolean; + url: string; + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + downloads_url: string; + events_url: string; + forks_url: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + notifications_url: string; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + clone_url: string; + mirror_url: string; + hooks_url: string; + svn_url: string; + homepage: string; + language: string; + forks_count: number; + stargazers_count: number; + watchers_count: number; + size: number; + default_branch: string; + open_issues_count: number; + is_template: boolean; + topics: string[]; + has_issues: boolean; + has_projects: boolean; + has_wiki: boolean; + has_pages: boolean; + has_downloads: boolean; + archived: boolean; + disabled: boolean; + visibility: string; + pushed_at: string; + created_at: string; + updated_at: string; + permissions: { + admin: boolean; + push: boolean; + pull: boolean; + }; + template_repository: string; + temp_clone_token: string; + subscribers_count: number; + network_count: number; + license: { + key: string; + name: string; + spdx_id: string; + url: string; + node_id: string; + }; +}[]; +declare type AppsCreateInstallationTokenParamsPermissions = {}; +declare type GistsCreateParamsFiles = { + [key: string]: GistsCreateParamsFilesKeyString; +}; +declare type GistsCreateParamsFilesKeyString = { + content: string; +}; +declare type GistsUpdateParamsFiles = { + [key: string]: GistsUpdateParamsFilesKeyString; +}; +declare type GistsUpdateParamsFilesKeyString = { + content: string; + filename: string; +}; +declare type OrgsCreateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type OrgsUpdateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsInOrgParamsGroups = { + group_id: string; + group_name: string; + group_description: string; +}; +declare type ReposUpdateBranchProtectionParamsRequiredStatusChecks = { + strict: boolean; + contexts: string[]; +}; +declare type ReposUpdateBranchProtectionParamsRequiredPullRequestReviews = { + dismissal_restrictions?: ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; +}; +declare type ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions = { + users?: string[]; + teams?: string[]; +}; +declare type ReposUpdateBranchProtectionParamsRestrictions = { + users: string[]; + teams: string[]; + apps?: string[]; +}; +declare type ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions = { + users?: string[]; + teams?: string[]; +}; +declare type ChecksCreateParamsOutput = { + title: string; + summary: string; + text?: string; + annotations?: ChecksCreateParamsOutputAnnotations[]; + images?: ChecksCreateParamsOutputImages[]; +}; +declare type ChecksCreateParamsOutputAnnotations = { + path: string; + start_line: number; + end_line: number; + start_column?: number; + end_column?: number; + annotation_level: "notice" | "warning" | "failure"; + message: string; + title?: string; + raw_details?: string; +}; +declare type ChecksCreateParamsOutputImages = { + alt: string; + image_url: string; + caption?: string; +}; +declare type ChecksCreateParamsActions = { + label: string; + description: string; + identifier: string; +}; +declare type ChecksUpdateParamsOutput = { + title?: string; + summary: string; + text?: string; + annotations?: ChecksUpdateParamsOutputAnnotations[]; + images?: ChecksUpdateParamsOutputImages[]; +}; +declare type ChecksUpdateParamsOutputAnnotations = { + path: string; + start_line: number; + end_line: number; + start_column?: number; + end_column?: number; + annotation_level: "notice" | "warning" | "failure"; + message: string; + title?: string; + raw_details?: string; +}; +declare type ChecksUpdateParamsOutputImages = { + alt: string; + image_url: string; + caption?: string; +}; +declare type ChecksUpdateParamsActions = { + label: string; + description: string; + identifier: string; +}; +declare type ChecksSetSuitesPreferencesParamsAutoTriggerChecks = { + app_id: number; + setting: boolean; +}; +declare type ReposCreateOrUpdateFileParamsCommitter = { + name: string; + email: string; +}; +declare type ReposCreateOrUpdateFileParamsAuthor = { + name: string; + email: string; +}; +declare type ReposDeleteFileParamsCommitter = { + name?: string; + email?: string; +}; +declare type ReposDeleteFileParamsAuthor = { + name?: string; + email?: string; +}; +declare type ReposCreateDispatchEventParamsClientPayload = {}; +declare type GitCreateCommitParamsAuthor = { + name?: string; + email?: string; + date?: string; +}; +declare type GitCreateCommitParamsCommitter = { + name?: string; + email?: string; + date?: string; +}; +declare type GitCreateTagParamsTagger = { + name?: string; + email?: string; + date?: string; +}; +declare type GitCreateTreeParamsTree = { + path?: string; + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + type?: "blob" | "tree" | "commit"; + sha?: string | null; + content?: string; +}; +declare type ReposCreateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type ReposUpdateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +declare type ReposEnablePagesSiteParamsSource = { + branch?: "master" | "gh-pages"; + path?: string; +}; +declare type PullsCreateReviewParamsComments = { + path: string; + position: number; + body: string; +}; +declare type TeamsCreateOrUpdateIdPGroupConnectionsLegacyParamsGroups = { + group_id: string; + group_name: string; + group_description: string; +}; +export {}; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/index.d.ts b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/index.d.ts new file mode 100644 index 0000000..5d2d5ae --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-types/index.d.ts @@ -0,0 +1,20 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; +export * from "./GetResponseTypeFromEndpointMethod"; +export * from "./generated/Endpoints"; diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js new file mode 100644 index 0000000..88fd0d5 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js @@ -0,0 +1,4 @@ +const VERSION = "4.0.1"; + +export { VERSION }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js.map b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js.map new file mode 100644 index 0000000..cd0e254 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/VERSION.js"],"sourcesContent":["export const VERSION = \"0.0.0-development\";\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/package.json b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/package.json new file mode 100644 index 0000000..efc0ef4 --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/node_modules/@octokit/types/package.json @@ -0,0 +1,49 @@ +{ + "name": "@octokit/types", + "description": "Shared TypeScript definitions for Octokit projects", + "version": "4.0.1", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "repository": "https://github.com/octokit/types.ts", + "dependencies": { + "@types/node": ">= 8" + }, + "devDependencies": { + "@octokit/graphql": "^4.2.2", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.0", + "@pika/plugin-build-web": "^0.9.0", + "@pika/plugin-ts-standard-pkg": "^0.9.0", + "handlebars": "^4.7.6", + "json-schema-to-typescript": "^9.1.0", + "lodash.set": "^4.3.2", + "npm-run-all": "^4.1.5", + "pascal-case": "^3.1.1", + "prettier": "^2.0.0", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^4.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.17.0", + "typescript": "^3.6.4" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/plugin-throttling/package.json b/node_modules/@octokit/plugin-throttling/package.json new file mode 100644 index 0000000..2bd77ae --- /dev/null +++ b/node_modules/@octokit/plugin-throttling/package.json @@ -0,0 +1,50 @@ +{ + "name": "@octokit/plugin-throttling", + "description": "Octokit plugin for GitHub’s recommended request throttling", + "version": "3.2.1", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "homepage": "https://github.com/octokit/plugin-throttling.js#readme", + "bugs": { + "url": "https://github.com/octokit/plugin-throttling.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/octokit/plugin-throttling.js.git" + }, + "dependencies": { + "bottleneck": "^2.15.3", + "@octokit/types": "^4.0.1" + }, + "devDependencies": { + "@octokit/core": "^2.0.0", + "@octokit/request-error": "^2.0.0", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.9.1", + "@pika/plugin-build-web": "^0.9.1", + "@pika/plugin-ts-standard-pkg": "^0.9.1", + "@types/fetch-mock": "^7.3.1", + "@types/jest": "^25.1.0", + "@types/node": "^14.0.1", + "fetch-mock": "^9.0.0", + "jest": "^26.0.1", + "npm-run-all": "^4.1.5", + "prettier": "^2.0.1", + "semantic-release": "^17.0.0", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^26.0.0", + "typescript": "^3.7.2" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "module": "dist-web/index.js" +} diff --git a/node_modules/@octokit/request-error/LICENSE b/node_modules/@octokit/request-error/LICENSE new file mode 100644 index 0000000..ef2c18e --- /dev/null +++ b/node_modules/@octokit/request-error/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/request-error/README.md b/node_modules/@octokit/request-error/README.md new file mode 100644 index 0000000..bcb711d --- /dev/null +++ b/node_modules/@octokit/request-error/README.md @@ -0,0 +1,68 @@ +# http-error.js + +> Error class for Octokit request errors + +[![@latest](https://img.shields.io/npm/v/@octokit/request-error.svg)](https://www.npmjs.com/package/@octokit/request-error) +[![Build Status](https://travis-ci.com/octokit/request-error.js.svg?branch=master)](https://travis-ci.com/octokit/request-error.js) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/request-error.js.svg)](https://greenkeeper.io/) + +## Usage + + + + + + +
+Browsers + +Load @octokit/request-error directly from cdn.pika.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/request-error + +```js +const { RequestError } = require("@octokit/request-error"); +// or: import { RequestError } from "@octokit/request-error"; +``` + +
+ +```js +const error = new RequestError("Oops", 500, { + headers: { + "x-github-request-id": "1:2:3:4" + }, // response headers + request: { + method: "POST", + url: "https://api.github.com/foo", + body: { + bar: "baz" + }, + headers: { + authorization: "token secret123" + } + } +}); + +error.message; // Oops +error.status; // 500 +error.headers; // { 'x-github-request-id': '1:2:3:4' } +error.request.method; // POST +error.request.url; // https://api.github.com/foo +error.request.body; // { bar: 'baz' } +error.request.headers; // { authorization: 'token [REDACTED]' } +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/request-error/dist-node/index.js b/node_modules/@octokit/request-error/dist-node/index.js new file mode 100644 index 0000000..95b9c57 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-node/index.js @@ -0,0 +1,55 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var deprecation = require('deprecation'); +var once = _interopDefault(require('once')); + +const logOnce = once(deprecation => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ + +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "HttpError"; + this.status = statusCode; + Object.defineProperty(this, "code", { + get() { + logOnce(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + + }); + this.headers = options.headers || {}; // redact request credentials without mutating original request options + + const requestCopy = Object.assign({}, options.request); + + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + + requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } + +} + +exports.RequestError = RequestError; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request-error/dist-node/index.js.map b/node_modules/@octokit/request-error/dist-node/index.js.map new file mode 100644 index 0000000..ec1c6db --- /dev/null +++ b/node_modules/@octokit/request-error/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n });\n this.headers = options.headers || {};\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n}\n"],"names":["logOnce","once","deprecation","console","warn","RequestError","Error","constructor","message","statusCode","options","captureStackTrace","name","status","Object","defineProperty","get","Deprecation","headers","requestCopy","assign","request","authorization","replace","url"],"mappings":";;;;;;;;;AAEA,MAAMA,OAAO,GAAGC,IAAI,CAAEC,WAAD,IAAiBC,OAAO,CAACC,IAAR,CAAaF,WAAb,CAAlB,CAApB;;;;;AAIA,AAAO,MAAMG,YAAN,SAA2BC,KAA3B,CAAiC;EACpCC,WAAW,CAACC,OAAD,EAAUC,UAAV,EAAsBC,OAAtB,EAA+B;UAChCF,OAAN,EADsC;;;;QAIlCF,KAAK,CAACK,iBAAV,EAA6B;MACzBL,KAAK,CAACK,iBAAN,CAAwB,IAAxB,EAA8B,KAAKJ,WAAnC;;;SAECK,IAAL,GAAY,WAAZ;SACKC,MAAL,GAAcJ,UAAd;IACAK,MAAM,CAACC,cAAP,CAAsB,IAAtB,EAA4B,MAA5B,EAAoC;MAChCC,GAAG,GAAG;QACFhB,OAAO,CAAC,IAAIiB,uBAAJ,CAAgB,0EAAhB,CAAD,CAAP;eACOR,UAAP;;;KAHR;SAMKS,OAAL,GAAeR,OAAO,CAACQ,OAAR,IAAmB,EAAlC,CAfsC;;UAiBhCC,WAAW,GAAGL,MAAM,CAACM,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACW,OAA1B,CAApB;;QACIX,OAAO,CAACW,OAAR,CAAgBH,OAAhB,CAAwBI,aAA5B,EAA2C;MACvCH,WAAW,CAACD,OAAZ,GAAsBJ,MAAM,CAACM,MAAP,CAAc,EAAd,EAAkBV,OAAO,CAACW,OAAR,CAAgBH,OAAlC,EAA2C;QAC7DI,aAAa,EAAEZ,OAAO,CAACW,OAAR,CAAgBH,OAAhB,CAAwBI,aAAxB,CAAsCC,OAAtC,CAA8C,MAA9C,EAAsD,aAAtD;OADG,CAAtB;;;IAIJJ,WAAW,CAACK,GAAZ,GAAkBL,WAAW,CAACK,GAAZ;;KAGbD,OAHa,CAGL,sBAHK,EAGmB,0BAHnB;;KAMbA,OANa,CAML,qBANK,EAMkB,yBANlB,CAAlB;SAOKF,OAAL,GAAeF,WAAf;;;;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request-error/dist-src/index.js b/node_modules/@octokit/request-error/dist-src/index.js new file mode 100644 index 0000000..cfcb7c4 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-src/index.js @@ -0,0 +1,40 @@ +import { Deprecation } from "deprecation"; +import once from "once"; +const logOnce = once((deprecation) => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ +export class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + Object.defineProperty(this, "code", { + get() { + logOnce(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + }); + this.headers = options.headers || {}; + // redact request credentials without mutating original request options + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + requestCopy.url = requestCopy.url + // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") + // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } +} diff --git a/node_modules/@octokit/request-error/dist-src/types.js b/node_modules/@octokit/request-error/dist-src/types.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/@octokit/request-error/dist-types/index.d.ts b/node_modules/@octokit/request-error/dist-types/index.d.ts new file mode 100644 index 0000000..baa8a0e --- /dev/null +++ b/node_modules/@octokit/request-error/dist-types/index.d.ts @@ -0,0 +1,27 @@ +import { RequestOptions, ResponseHeaders } from "@octokit/types"; +import { RequestErrorOptions } from "./types"; +/** + * Error with extra properties to help with debugging + */ +export declare class RequestError extends Error { + name: "HttpError"; + /** + * http status code + */ + status: number; + /** + * http status code + * + * @deprecated `error.code` is deprecated in favor of `error.status` + */ + code: number; + /** + * error response headers + */ + headers: ResponseHeaders; + /** + * Request options that lead to the error. + */ + request: RequestOptions; + constructor(message: string, statusCode: number, options: RequestErrorOptions); +} diff --git a/node_modules/@octokit/request-error/dist-types/types.d.ts b/node_modules/@octokit/request-error/dist-types/types.d.ts new file mode 100644 index 0000000..865d213 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-types/types.d.ts @@ -0,0 +1,5 @@ +import { RequestOptions, ResponseHeaders } from "@octokit/types"; +export declare type RequestErrorOptions = { + headers?: ResponseHeaders; + request: RequestOptions; +}; diff --git a/node_modules/@octokit/request-error/dist-web/index.js b/node_modules/@octokit/request-error/dist-web/index.js new file mode 100644 index 0000000..32b45a3 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-web/index.js @@ -0,0 +1,44 @@ +import { Deprecation } from 'deprecation'; +import once from 'once'; + +const logOnce = once((deprecation) => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + Object.defineProperty(this, "code", { + get() { + logOnce(new Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + }); + this.headers = options.headers || {}; + // redact request credentials without mutating original request options + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + requestCopy.url = requestCopy.url + // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") + // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + } +} + +export { RequestError }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request-error/dist-web/index.js.map b/node_modules/@octokit/request-error/dist-web/index.js.map new file mode 100644 index 0000000..05151b0 --- /dev/null +++ b/node_modules/@octokit/request-error/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/index.js"],"sourcesContent":["import { Deprecation } from \"deprecation\";\nimport once from \"once\";\nconst logOnce = once((deprecation) => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\nexport class RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message);\n // Maintains proper stack trace (only available on V8)\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n this.name = \"HttpError\";\n this.status = statusCode;\n Object.defineProperty(this, \"code\", {\n get() {\n logOnce(new Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n });\n this.headers = options.headers || {};\n // redact request credentials without mutating original request options\n const requestCopy = Object.assign({}, options.request);\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n requestCopy.url = requestCopy.url\n // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\")\n // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy;\n }\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;;;;AAIjE,AAAO,MAAM,YAAY,SAAS,KAAK,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;;;QAGf,IAAI,KAAK,CAAC,iBAAiB,EAAE;YACzB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACnD;QACD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;YAChC,GAAG,GAAG;gBACF,OAAO,CAAC,IAAI,WAAW,CAAC,0EAA0E,CAAC,CAAC,CAAC;gBACrG,OAAO,UAAU,CAAC;aACrB;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;;QAErC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;YACvC,WAAW,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC7D,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;aACtF,CAAC,CAAC;SACN;QACD,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;;;aAG5B,OAAO,CAAC,sBAAsB,EAAE,0BAA0B,CAAC;;;aAG3D,OAAO,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;KAC9B;CACJ;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request-error/package.json b/node_modules/@octokit/request-error/package.json new file mode 100644 index 0000000..758d367 --- /dev/null +++ b/node_modules/@octokit/request-error/package.json @@ -0,0 +1,54 @@ +{ + "name": "@octokit/request-error", + "description": "Error class for Octokit request errors", + "version": "1.2.0", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "error" + ], + "homepage": "https://github.com/octokit/request-error.js#readme", + "bugs": { + "url": "https://github.com/octokit/request-error.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/octokit/request-error.js.git" + }, + "dependencies": { + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "devDependencies": { + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.7.0", + "@pika/plugin-build-web": "^0.7.0", + "@pika/plugin-bundle-web": "^0.7.0", + "@pika/plugin-ts-standard-pkg": "^0.7.0", + "@types/jest": "^24.0.12", + "@types/node": "^12.0.2", + "@types/once": "^1.4.0", + "jest": "^24.7.1", + "pika-plugin-unpkg-field": "^1.1.0", + "prettier": "^1.17.0", + "semantic-release": "^15.10.5", + "ts-jest": "^24.0.2", + "typescript": "^3.4.5" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "deno": "dist-web/index.js" +} diff --git a/node_modules/@octokit/request/LICENSE b/node_modules/@octokit/request/LICENSE new file mode 100644 index 0000000..af5366d --- /dev/null +++ b/node_modules/@octokit/request/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/request/README.md b/node_modules/@octokit/request/README.md new file mode 100644 index 0000000..db35e62 --- /dev/null +++ b/node_modules/@octokit/request/README.md @@ -0,0 +1,539 @@ +# request.js + +> Send parameterized requests to GitHub’s APIs with sensible defaults in browsers and Node + +[![@latest](https://img.shields.io/npm/v/@octokit/request.svg)](https://www.npmjs.com/package/@octokit/request) +[![Build Status](https://travis-ci.org/octokit/request.js.svg?branch=master)](https://travis-ci.org/octokit/request.js) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/request.js.svg)](https://greenkeeper.io/) + +`@octokit/request` is a request library for browsers & node that makes it easier +to interact with [GitHub’s REST API](https://developer.github.com/v3/) and +[GitHub’s GraphQL API](https://developer.github.com/v4/guides/forming-calls/#the-graphql-endpoint). + +It uses [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) to parse +the passed options and sends the request using [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) +([node-fetch](https://github.com/bitinn/node-fetch) in Node). + + + + + +- [Features](#features) +- [Usage](#usage) + - [REST API example](#rest-api-example) + - [GraphQL example](#graphql-example) + - [Alternative: pass `method` & `url` as part of options](#alternative-pass-method--url-as-part-of-options) +- [Authentication](#authentication) +- [request()](#request) +- [`request.defaults()`](#requestdefaults) +- [`request.endpoint`](#requestendpoint) +- [Special cases](#special-cases) + - [The `data` parameter – set request body directly](#the-data-parameter-%E2%80%93-set-request-body-directly) + - [Set parameters for both the URL/query and the request body](#set-parameters-for-both-the-urlquery-and-the-request-body) +- [LICENSE](#license) + + + +## Features + +🤩 1:1 mapping of REST API endpoint documentation, e.g. [Add labels to an issue](https://developer.github.com/v3/issues/labels/#add-labels-to-an-issue) becomes + +```js +request("POST /repos/:owner/:repo/issues/:number/labels", { + mediaType: { + previews: ["symmetra"] + }, + owner: "octokit", + repo: "request.js", + number: 1, + labels: ["🐛 bug"] +}); +``` + +👶 [Small bundle size](https://bundlephobia.com/result?p=@octokit/request@5.0.3) (\<4kb minified + gzipped) + +😎 [Authenticate](#authentication) with any of [GitHubs Authentication Strategies](https://github.com/octokit/auth.js). + +👍 Sensible defaults + +- `baseUrl`: `https://api.github.com` +- `headers.accept`: `application/vnd.github.v3+json` +- `headers.agent`: `octokit-request.js/ `, e.g. `octokit-request.js/1.2.3 Node.js/10.15.0 (macOS Mojave; x64)` + +👌 Simple to test: mock requests by passing a custom fetch method. + +🧐 Simple to debug: Sets `error.request` to request options causing the error (with redacted credentials). + +## Usage + + + + + + +
+Browsers + +Load @octokit/request directly from cdn.pika.dev + +```html + +``` + +
+Node + + +Install with npm install @octokit/request + +```js +const { request } = require("@octokit/request"); +// or: import { request } from "@octokit/request"; +``` + +
+ +### REST API example + +```js +// Following GitHub docs formatting: +// https://developer.github.com/v3/repos/#list-organization-repositories +const result = await request("GET /orgs/:org/repos", { + headers: { + authorization: "token 0000000000000000000000000000000000000001" + }, + org: "octokit", + type: "private" +}); + +console.log(`${result.data.length} repos found.`); +``` + +### GraphQL example + +For GraphQL request we recommend using [`@octokit/graphql`](https://github.com/octokit/graphql.js#readme) + +```js +const result = await request("POST /graphql", { + headers: { + authorization: "token 0000000000000000000000000000000000000001" + }, + query: `query ($login: String!) { + organization(login: $login) { + repositories(privacy: PRIVATE) { + totalCount + } + } + }`, + variables: { + login: "octokit" + } +}); +``` + +### Alternative: pass `method` & `url` as part of options + +Alternatively, pass in a method and a url + +```js +const result = await request({ + method: "GET", + url: "/orgs/:org/repos", + headers: { + authorization: "token 0000000000000000000000000000000000000001" + }, + org: "octokit", + type: "private" +}); +``` + +## Authentication + +The simplest way to authenticate a request is to set the `Authorization` header directly, e.g. to a [personal access token](https://github.com/settings/tokens/). + +```js +const requestWithAuth = request.defaults({ + headers: { + authorization: "token 0000000000000000000000000000000000000001" + } +}); +const result = await request("GET /user"); +``` + +For more complex authentication strategies such as GitHub Apps or Basic, we recommend the according authentication library exported by [`@octokit/auth`](https://github.com/octokit/auth.js). + +```js +const { createAppAuth } = require("@octokit/auth-app"); +const auth = createAppAuth({ + id: process.env.APP_ID, + privateKey: process.env.PRIVATE_KEY, + installationId: 123 +}); +const requestWithAuth = request.defaults({ + request: { + hook: auth.hook + }, + mediaType: { + previews: ["machine-man"] + } +}); + +const { data: app } = await requestWithAuth("GET /app"); +const { data: app } = await requestWithAuth("POST /repos/:owner/:repo/issues", { + owner: "octocat", + repo: "hello-world", + title: "Hello from the engine room" +}); +``` + +## request() + +`request(route, options)` or `request(options)`. + +**Options** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ name + + type + + description +
+ route + + String + + If route is set it has to be a string consisting of the request method and URL, e.g. GET /orgs/:org +
+ options.baseUrl + + String + + Required. Any supported http verb, case insensitive. Defaults to https://api.github.com. +
+ options.headers + + Object + + Custom headers. Passed headers are merged with defaults:
+ headers['user-agent'] defaults to octokit-rest.js/1.2.3 (where 1.2.3 is the released version).
+ headers['accept'] defaults to application/vnd.github.v3+json.
Use options.mediaType.{format,previews} to request API previews and custom media types. +
+ options.mediaType.format + + String + + Media type param, such as `raw`, `html`, or `full`. See Media Types. +
+ options.mediaType.previews + + Array of strings + + Name of previews, such as `mercy`, `symmetra`, or `scarlet-witch`. See API Previews. +
+ options.method + + String + + Required. Any supported http verb, case insensitive. Defaults to Get. +
+ options.url + + String + + Required. A path or full URL which may contain :variable or {variable} placeholders, + e.g. /orgs/:org/repos. The url is parsed using url-template. +
+ options.data + + Any + + Set request body directly instead of setting it to JSON based on additional parameters. See "The `data` parameter" below. +
+ options.request.agent + + http(s).Agent instance + + Node only. Useful for custom proxy, certificate, or dns lookup. +
+ options.request.fetch + + Function + + Custom replacement for built-in fetch method. Useful for testing or request hooks. +
+ options.request.hook + + Function + + Function with the signature hook(request, endpointOptions), where endpointOptions are the parsed options as returned by endpoint.merge(), and request is request(). This option works great in conjuction with before-after-hook. +
+ options.request.signal + + new AbortController().signal + + Use an AbortController instance to cancel a request. In node you can only cancel streamed requests. +
+ options.request.timeout + + Number + + Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). options.request.signal is recommended instead. +
+ +All other options except `options.request.*` will be passed depending on the `method` and `url` options. + +1. If the option key is a placeholder in the `url`, it will be used as replacement. For example, if the passed options are `{url: '/orgs/:org/repos', org: 'foo'}` the returned `options.url` is `https://api.github.com/orgs/foo/repos` +2. If the `method` is `GET` or `HEAD`, the option is passed as query parameter +3. Otherwise the parameter is passed in the request body as JSON key. + +**Result** + +`request` returns a promise and resolves with 4 keys + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ key + + type + + description +
statusIntegerResponse status status
urlStringURL of response. If a request results in redirects, this is the final URL. You can send a HEAD request to retrieve it without loading the full response body.
headersObjectAll response headers
dataAnyThe response body as returned from server. If the response is JSON then it will be parsed into an object
+ +If an error occurs, the `error` instance has additional properties to help with debugging + +- `error.status` The http response status code +- `error.headers` The http response headers as an object +- `error.request` The request options such as `method`, `url` and `data` + +## `request.defaults()` + +Override or set default options. Example: + +```js +const myrequest = require("@octokit/request").defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3", + authorization: `token 0000000000000000000000000000000000000001` + }, + org: "my-project", + per_page: 100 +}); + +myrequest(`GET /orgs/:org/repos`); +``` + +You can call `.defaults()` again on the returned method, the defaults will cascade. + +```js +const myProjectRequest = request.defaults({ + baseUrl: "https://github-enterprise.acme-inc.com/api/v3", + headers: { + "user-agent": "myApp/1.2.3" + }, + org: "my-project" +}); +const myProjectRequestWithAuth = myProjectRequest.defaults({ + headers: { + authorization: `token 0000000000000000000000000000000000000001` + } +}); +``` + +`myProjectRequest` now defaults the `baseUrl`, `headers['user-agent']`, +`org` and `headers['authorization']` on top of `headers['accept']` that is set +by the global default. + +## `request.endpoint` + +See https://github.com/octokit/endpoint.js. Example + +```js +const options = request.endpoint("GET /orgs/:org/repos", { + org: "my-project", + type: "private" +}); + +// { +// method: 'GET', +// url: 'https://api.github.com/orgs/my-project/repos?type=private', +// headers: { +// accept: 'application/vnd.github.v3+json', +// authorization: 'token 0000000000000000000000000000000000000001', +// 'user-agent': 'octokit/endpoint.js v1.2.3' +// } +// } +``` + +All of the [`@octokit/endpoint`](https://github.com/octokit/endpoint.js) API can be used: + +- [`octokitRequest.endpoint()`](#endpoint) +- [`octokitRequest.endpoint.defaults()`](#endpointdefaults) +- [`octokitRequest.endpoint.merge()`](#endpointdefaults) +- [`octokitRequest.endpoint.parse()`](#endpointmerge) + +## Special cases + + + +### The `data` parameter – set request body directly + +Some endpoints such as [Render a Markdown document in raw mode](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode) don’t have parameters that are sent as request body keys, instead the request body needs to be set directly. In these cases, set the `data` parameter. + +```js +const response = await request("POST /markdown/raw", { + data: "Hello world github/linguist#1 **cool**, and #1!", + headers: { + accept: "text/html;charset=utf-8", + "content-type": "text/plain" + } +}); + +// Request is sent as +// +// { +// method: 'post', +// url: 'https://api.github.com/markdown/raw', +// headers: { +// accept: 'text/html;charset=utf-8', +// 'content-type': 'text/plain', +// 'user-agent': userAgent +// }, +// body: 'Hello world github/linguist#1 **cool**, and #1!' +// } +// +// not as +// +// { +// ... +// body: '{"data": "Hello world github/linguist#1 **cool**, and #1!"}' +// } +``` + +### Set parameters for both the URL/query and the request body + +There are API endpoints that accept both query parameters as well as a body. In that case you need to add the query parameters as templates to `options.url`, as defined in the [RFC 6570 URI Template specification](https://tools.ietf.org/html/rfc6570). + +Example + +```js +request( + "POST https://uploads.github.com/repos/octocat/Hello-World/releases/1/assets{?name,label}", + { + name: "example.zip", + label: "short description", + headers: { + "content-type": "text/plain", + "content-length": 14, + authorization: `token 0000000000000000000000000000000000000001` + }, + data: "Hello, world!" + } +); +``` + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/request/dist-node/index.js b/node_modules/@octokit/request/dist-node/index.js new file mode 100644 index 0000000..19b227b --- /dev/null +++ b/node_modules/@octokit/request/dist-node/index.js @@ -0,0 +1,148 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var endpoint = require('@octokit/endpoint'); +var universalUserAgent = require('universal-user-agent'); +var isPlainObject = _interopDefault(require('is-plain-object')); +var nodeFetch = _interopDefault(require('node-fetch')); +var requestError = require('@octokit/request-error'); + +const VERSION = "5.3.1"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + + let headers = {}; + let status; + let url; + const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, requestOptions.request)).then(response => { + url = response.url; + status = response.status; + + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + + if (status === 204 || status === 205) { + return; + } // GitHub API returns 200 for HEAD requsets + + + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + + throw new requestError.RequestError(response.statusText, status, { + headers, + request: requestOptions + }); + } + + if (status === 304) { + throw new requestError.RequestError("Not modified", status, { + headers, + request: requestOptions + }); + } + + if (status >= 400) { + return response.text().then(message => { + const error = new requestError.RequestError(message, status, { + headers, + request: requestOptions + }); + + try { + let responseBody = JSON.parse(error.message); + Object.assign(error, responseBody); + let errors = responseBody.errors; // Assumption `errors` would always be in Array Fotmat + + error.message = error.message + ": " + errors.map(JSON.stringify).join(", "); + } catch (e) {// ignore, see octokit/rest.js#684 + } + + throw error; + }); + } + + const contentType = response.headers.get("content-type"); + + if (/application\/json/.test(contentType)) { + return response.json(); + } + + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + + return getBufferResponse(response); + }).then(data => { + return { + status, + url, + headers, + data + }; + }).catch(error => { + if (error instanceof requestError.RequestError) { + throw error; + } + + throw new requestError.RequestError(error.message, 500, { + headers, + request: requestOptions + }); + }); +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` + } +}); + +exports.request = request; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request/dist-node/index.js.map b/node_modules/@octokit/request/dist-node/index.js.map new file mode 100644 index 0000000..b0ffb70 --- /dev/null +++ b/node_modules/@octokit/request/dist-node/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/get-buffer-response.js","../dist-src/fetch-wrapper.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"5.3.1\";\n","export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n","import isPlainObject from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, requestOptions.request))\n .then(response => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requsets\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n headers,\n request: requestOptions\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions\n });\n }\n if (status >= 400) {\n return response\n .text()\n .then(message => {\n const error = new RequestError(message, status, {\n headers,\n request: requestOptions\n });\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors;\n // Assumption `errors` would always be in Array Fotmat\n error.message =\n error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n }\n catch (e) {\n // ignore, see octokit/rest.js#684\n }\n throw error;\n });\n }\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n })\n .then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n })\n .catch(error => {\n if (error instanceof RequestError) {\n throw error;\n }\n throw new RequestError(error.message, 500, {\n headers,\n request: requestOptions\n });\n });\n}\n","import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n","import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`\n }\n});\n"],"names":["VERSION","getBufferResponse","response","arrayBuffer","fetchWrapper","requestOptions","isPlainObject","body","Array","isArray","JSON","stringify","headers","status","url","fetch","request","nodeFetch","Object","assign","method","redirect","then","keyAndValue","RequestError","statusText","text","message","error","responseBody","parse","errors","map","join","e","contentType","get","test","json","getBuffer","data","catch","withDefaults","oldEndpoint","newDefaults","endpoint","defaults","newApi","route","parameters","endpointOptions","merge","hook","bind","getUserAgent"],"mappings":";;;;;;;;;;;;AAAO,MAAMA,OAAO,GAAG,mBAAhB;;ACAQ,SAASC,iBAAT,CAA2BC,QAA3B,EAAqC;SACzCA,QAAQ,CAACC,WAAT,EAAP;;;ACGW,SAASC,YAAT,CAAsBC,cAAtB,EAAsC;MAC7CC,aAAa,CAACD,cAAc,CAACE,IAAhB,CAAb,IACAC,KAAK,CAACC,OAAN,CAAcJ,cAAc,CAACE,IAA7B,CADJ,EACwC;IACpCF,cAAc,CAACE,IAAf,GAAsBG,IAAI,CAACC,SAAL,CAAeN,cAAc,CAACE,IAA9B,CAAtB;;;MAEAK,OAAO,GAAG,EAAd;MACIC,MAAJ;MACIC,GAAJ;QACMC,KAAK,GAAIV,cAAc,CAACW,OAAf,IAA0BX,cAAc,CAACW,OAAf,CAAuBD,KAAlD,IAA4DE,SAA1E;SACOF,KAAK,CAACV,cAAc,CAACS,GAAhB,EAAqBI,MAAM,CAACC,MAAP,CAAc;IAC3CC,MAAM,EAAEf,cAAc,CAACe,MADoB;IAE3Cb,IAAI,EAAEF,cAAc,CAACE,IAFsB;IAG3CK,OAAO,EAAEP,cAAc,CAACO,OAHmB;IAI3CS,QAAQ,EAAEhB,cAAc,CAACgB;GAJI,EAK9BhB,cAAc,CAACW,OALe,CAArB,CAAL,CAMFM,IANE,CAMGpB,QAAQ,IAAI;IAClBY,GAAG,GAAGZ,QAAQ,CAACY,GAAf;IACAD,MAAM,GAAGX,QAAQ,CAACW,MAAlB;;SACK,MAAMU,WAAX,IAA0BrB,QAAQ,CAACU,OAAnC,EAA4C;MACxCA,OAAO,CAACW,WAAW,CAAC,CAAD,CAAZ,CAAP,GAA0BA,WAAW,CAAC,CAAD,CAArC;;;QAEAV,MAAM,KAAK,GAAX,IAAkBA,MAAM,KAAK,GAAjC,EAAsC;;KANpB;;;QAUdR,cAAc,CAACe,MAAf,KAA0B,MAA9B,EAAsC;UAC9BP,MAAM,GAAG,GAAb,EAAkB;;;;YAGZ,IAAIW,yBAAJ,CAAiBtB,QAAQ,CAACuB,UAA1B,EAAsCZ,MAAtC,EAA8C;QAChDD,OADgD;QAEhDI,OAAO,EAAEX;OAFP,CAAN;;;QAKAQ,MAAM,KAAK,GAAf,EAAoB;YACV,IAAIW,yBAAJ,CAAiB,cAAjB,EAAiCX,MAAjC,EAAyC;QAC3CD,OAD2C;QAE3CI,OAAO,EAAEX;OAFP,CAAN;;;QAKAQ,MAAM,IAAI,GAAd,EAAmB;aACRX,QAAQ,CACVwB,IADE,GAEFJ,IAFE,CAEGK,OAAO,IAAI;cACXC,KAAK,GAAG,IAAIJ,yBAAJ,CAAiBG,OAAjB,EAA0Bd,MAA1B,EAAkC;UAC5CD,OAD4C;UAE5CI,OAAO,EAAEX;SAFC,CAAd;;YAII;cACIwB,YAAY,GAAGnB,IAAI,CAACoB,KAAL,CAAWF,KAAK,CAACD,OAAjB,CAAnB;UACAT,MAAM,CAACC,MAAP,CAAcS,KAAd,EAAqBC,YAArB;cACIE,MAAM,GAAGF,YAAY,CAACE,MAA1B,CAHA;;UAKAH,KAAK,CAACD,OAAN,GACIC,KAAK,CAACD,OAAN,GAAgB,IAAhB,GAAuBI,MAAM,CAACC,GAAP,CAAWtB,IAAI,CAACC,SAAhB,EAA2BsB,IAA3B,CAAgC,IAAhC,CAD3B;SALJ,CAQA,OAAOC,CAAP,EAAU;;;cAGJN,KAAN;OAlBG,CAAP;;;UAqBEO,WAAW,GAAGjC,QAAQ,CAACU,OAAT,CAAiBwB,GAAjB,CAAqB,cAArB,CAApB;;QACI,oBAAoBC,IAApB,CAAyBF,WAAzB,CAAJ,EAA2C;aAChCjC,QAAQ,CAACoC,IAAT,EAAP;;;QAEA,CAACH,WAAD,IAAgB,yBAAyBE,IAAzB,CAA8BF,WAA9B,CAApB,EAAgE;aACrDjC,QAAQ,CAACwB,IAAT,EAAP;;;WAEGa,iBAAS,CAACrC,QAAD,CAAhB;GA5DG,EA8DFoB,IA9DE,CA8DGkB,IAAI,IAAI;WACP;MACH3B,MADG;MAEHC,GAFG;MAGHF,OAHG;MAIH4B;KAJJ;GA/DG,EAsEFC,KAtEE,CAsEIb,KAAK,IAAI;QACZA,KAAK,YAAYJ,yBAArB,EAAmC;YACzBI,KAAN;;;UAEE,IAAIJ,yBAAJ,CAAiBI,KAAK,CAACD,OAAvB,EAAgC,GAAhC,EAAqC;MACvCf,OADuC;MAEvCI,OAAO,EAAEX;KAFP,CAAN;GA1EG,CAAP;;;ACZW,SAASqC,YAAT,CAAsBC,WAAtB,EAAmCC,WAAnC,EAAgD;QACrDC,QAAQ,GAAGF,WAAW,CAACG,QAAZ,CAAqBF,WAArB,CAAjB;;QACMG,MAAM,GAAG,UAAUC,KAAV,EAAiBC,UAAjB,EAA6B;UAClCC,eAAe,GAAGL,QAAQ,CAACM,KAAT,CAAeH,KAAf,EAAsBC,UAAtB,CAAxB;;QACI,CAACC,eAAe,CAAClC,OAAjB,IAA4B,CAACkC,eAAe,CAAClC,OAAhB,CAAwBoC,IAAzD,EAA+D;aACpDhD,YAAY,CAACyC,QAAQ,CAACf,KAAT,CAAeoB,eAAf,CAAD,CAAnB;;;UAEElC,OAAO,GAAG,CAACgC,KAAD,EAAQC,UAAR,KAAuB;aAC5B7C,YAAY,CAACyC,QAAQ,CAACf,KAAT,CAAee,QAAQ,CAACM,KAAT,CAAeH,KAAf,EAAsBC,UAAtB,CAAf,CAAD,CAAnB;KADJ;;IAGA/B,MAAM,CAACC,MAAP,CAAcH,OAAd,EAAuB;MACnB6B,QADmB;MAEnBC,QAAQ,EAAEJ,YAAY,CAACW,IAAb,CAAkB,IAAlB,EAAwBR,QAAxB;KAFd;WAIOK,eAAe,CAAClC,OAAhB,CAAwBoC,IAAxB,CAA6BpC,OAA7B,EAAsCkC,eAAtC,CAAP;GAZJ;;SAcOhC,MAAM,CAACC,MAAP,CAAc4B,MAAd,EAAsB;IACzBF,QADyB;IAEzBC,QAAQ,EAAEJ,YAAY,CAACW,IAAb,CAAkB,IAAlB,EAAwBR,QAAxB;GAFP,CAAP;;;MCbS7B,OAAO,GAAG0B,YAAY,CAACG,iBAAD,EAAW;EAC1CjC,OAAO,EAAE;kBACU,sBAAqBZ,OAAQ,IAAGsD,+BAAY,EAAG;;CAFnC,CAA5B;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request/dist-src/fetch-wrapper.js b/node_modules/@octokit/request/dist-src/fetch-wrapper.js new file mode 100644 index 0000000..f2b80d7 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/fetch-wrapper.js @@ -0,0 +1,93 @@ +import isPlainObject from "is-plain-object"; +import nodeFetch from "node-fetch"; +import { RequestError } from "@octokit/request-error"; +import getBuffer from "./get-buffer-response"; +export default function fetchWrapper(requestOptions) { + if (isPlainObject(requestOptions.body) || + Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, requestOptions.request)) + .then(response => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if (status === 204 || status === 205) { + return; + } + // GitHub API returns 200 for HEAD requsets + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + headers, + request: requestOptions + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + headers, + request: requestOptions + }); + } + if (status >= 400) { + return response + .text() + .then(message => { + const error = new RequestError(message, status, { + headers, + request: requestOptions + }); + try { + let responseBody = JSON.parse(error.message); + Object.assign(error, responseBody); + let errors = responseBody.errors; + // Assumption `errors` would always be in Array Fotmat + error.message = + error.message + ": " + errors.map(JSON.stringify).join(", "); + } + catch (e) { + // ignore, see octokit/rest.js#684 + } + throw error; + }); + } + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json(); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBuffer(response); + }) + .then(data => { + return { + status, + url, + headers, + data + }; + }) + .catch(error => { + if (error instanceof RequestError) { + throw error; + } + throw new RequestError(error.message, 500, { + headers, + request: requestOptions + }); + }); +} diff --git a/node_modules/@octokit/request/dist-src/get-buffer-response.js b/node_modules/@octokit/request/dist-src/get-buffer-response.js new file mode 100644 index 0000000..845a394 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/get-buffer-response.js @@ -0,0 +1,3 @@ +export default function getBufferResponse(response) { + return response.arrayBuffer(); +} diff --git a/node_modules/@octokit/request/dist-src/index.js b/node_modules/@octokit/request/dist-src/index.js new file mode 100644 index 0000000..6a36142 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/index.js @@ -0,0 +1,9 @@ +import { endpoint } from "@octokit/endpoint"; +import { getUserAgent } from "universal-user-agent"; +import { VERSION } from "./version"; +import withDefaults from "./with-defaults"; +export const request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}` + } +}); diff --git a/node_modules/@octokit/request/dist-src/version.js b/node_modules/@octokit/request/dist-src/version.js new file mode 100644 index 0000000..6250d76 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/version.js @@ -0,0 +1 @@ +export const VERSION = "5.3.1"; diff --git a/node_modules/@octokit/request/dist-src/with-defaults.js b/node_modules/@octokit/request/dist-src/with-defaults.js new file mode 100644 index 0000000..8e44f46 --- /dev/null +++ b/node_modules/@octokit/request/dist-src/with-defaults.js @@ -0,0 +1,22 @@ +import fetchWrapper from "./fetch-wrapper"; +export default function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} diff --git a/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts b/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts new file mode 100644 index 0000000..594bce6 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/fetch-wrapper.d.ts @@ -0,0 +1,11 @@ +import { EndpointInterface } from "@octokit/types"; +export default function fetchWrapper(requestOptions: ReturnType & { + redirect?: string; +}): Promise<{ + status: number; + url: string; + headers: { + [header: string]: string; + }; + data: any; +}>; diff --git a/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts b/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts new file mode 100644 index 0000000..915b705 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/get-buffer-response.d.ts @@ -0,0 +1,2 @@ +import { Response } from "node-fetch"; +export default function getBufferResponse(response: Response): Promise; diff --git a/node_modules/@octokit/request/dist-types/index.d.ts b/node_modules/@octokit/request/dist-types/index.d.ts new file mode 100644 index 0000000..cb9c9ba --- /dev/null +++ b/node_modules/@octokit/request/dist-types/index.d.ts @@ -0,0 +1 @@ +export declare const request: import("@octokit/types").RequestInterface; diff --git a/node_modules/@octokit/request/dist-types/version.d.ts b/node_modules/@octokit/request/dist-types/version.d.ts new file mode 100644 index 0000000..c32c7ab --- /dev/null +++ b/node_modules/@octokit/request/dist-types/version.d.ts @@ -0,0 +1 @@ +export declare const VERSION = "5.3.1"; diff --git a/node_modules/@octokit/request/dist-types/with-defaults.d.ts b/node_modules/@octokit/request/dist-types/with-defaults.d.ts new file mode 100644 index 0000000..0080469 --- /dev/null +++ b/node_modules/@octokit/request/dist-types/with-defaults.d.ts @@ -0,0 +1,2 @@ +import { EndpointInterface, RequestInterface, RequestParameters } from "@octokit/types"; +export default function withDefaults(oldEndpoint: EndpointInterface, newDefaults: RequestParameters): RequestInterface; diff --git a/node_modules/@octokit/request/dist-web/index.js b/node_modules/@octokit/request/dist-web/index.js new file mode 100644 index 0000000..3f51926 --- /dev/null +++ b/node_modules/@octokit/request/dist-web/index.js @@ -0,0 +1,132 @@ +import { endpoint } from '@octokit/endpoint'; +import { getUserAgent } from 'universal-user-agent'; +import isPlainObject from 'is-plain-object'; +import nodeFetch from 'node-fetch'; +import { RequestError } from '@octokit/request-error'; + +const VERSION = "5.3.1"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + if (isPlainObject(requestOptions.body) || + Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, requestOptions.request)) + .then(response => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if (status === 204 || status === 205) { + return; + } + // GitHub API returns 200 for HEAD requsets + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new RequestError(response.statusText, status, { + headers, + request: requestOptions + }); + } + if (status === 304) { + throw new RequestError("Not modified", status, { + headers, + request: requestOptions + }); + } + if (status >= 400) { + return response + .text() + .then(message => { + const error = new RequestError(message, status, { + headers, + request: requestOptions + }); + try { + let responseBody = JSON.parse(error.message); + Object.assign(error, responseBody); + let errors = responseBody.errors; + // Assumption `errors` would always be in Array Fotmat + error.message = + error.message + ": " + errors.map(JSON.stringify).join(", "); + } + catch (e) { + // ignore, see octokit/rest.js#684 + } + throw error; + }); + } + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json(); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBufferResponse(response); + }) + .then(data => { + return { + status, + url, + headers, + data + }; + }) + .catch(error => { + if (error instanceof RequestError) { + throw error; + } + throw new RequestError(error.message, 500, { + headers, + request: requestOptions + }); + }); +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${getUserAgent()}` + } +}); + +export { request }; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@octokit/request/dist-web/index.js.map b/node_modules/@octokit/request/dist-web/index.js.map new file mode 100644 index 0000000..f4c3084 --- /dev/null +++ b/node_modules/@octokit/request/dist-web/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../dist-src/version.js","../dist-src/get-buffer-response.js","../dist-src/fetch-wrapper.js","../dist-src/with-defaults.js","../dist-src/index.js"],"sourcesContent":["export const VERSION = \"5.3.1\";\n","export default function getBufferResponse(response) {\n return response.arrayBuffer();\n}\n","import isPlainObject from \"is-plain-object\";\nimport nodeFetch from \"node-fetch\";\nimport { RequestError } from \"@octokit/request-error\";\nimport getBuffer from \"./get-buffer-response\";\nexport default function fetchWrapper(requestOptions) {\n if (isPlainObject(requestOptions.body) ||\n Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n let headers = {};\n let status;\n let url;\n const fetch = (requestOptions.request && requestOptions.request.fetch) || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, requestOptions.request))\n .then(response => {\n url = response.url;\n status = response.status;\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n if (status === 204 || status === 205) {\n return;\n }\n // GitHub API returns 200 for HEAD requsets\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n throw new RequestError(response.statusText, status, {\n headers,\n request: requestOptions\n });\n }\n if (status === 304) {\n throw new RequestError(\"Not modified\", status, {\n headers,\n request: requestOptions\n });\n }\n if (status >= 400) {\n return response\n .text()\n .then(message => {\n const error = new RequestError(message, status, {\n headers,\n request: requestOptions\n });\n try {\n let responseBody = JSON.parse(error.message);\n Object.assign(error, responseBody);\n let errors = responseBody.errors;\n // Assumption `errors` would always be in Array Fotmat\n error.message =\n error.message + \": \" + errors.map(JSON.stringify).join(\", \");\n }\n catch (e) {\n // ignore, see octokit/rest.js#684\n }\n throw error;\n });\n }\n const contentType = response.headers.get(\"content-type\");\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n return getBuffer(response);\n })\n .then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n })\n .catch(error => {\n if (error instanceof RequestError) {\n throw error;\n }\n throw new RequestError(error.message, 500, {\n headers,\n request: requestOptions\n });\n });\n}\n","import fetchWrapper from \"./fetch-wrapper\";\nexport default function withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n","import { endpoint } from \"@octokit/endpoint\";\nimport { getUserAgent } from \"universal-user-agent\";\nimport { VERSION } from \"./version\";\nimport withDefaults from \"./with-defaults\";\nexport const request = withDefaults(endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${getUserAgent()}`\n }\n});\n"],"names":["getBuffer"],"mappings":";;;;;;AAAO,MAAM,OAAO,GAAG,mBAAmB,CAAC;;ACA5B,SAAS,iBAAiB,CAAC,QAAQ,EAAE;IAChD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;CACjC;;ACEc,SAAS,YAAY,CAAC,cAAc,EAAE;IACjD,IAAI,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;QACpC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7D;IACD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,CAAC;IACX,IAAI,GAAG,CAAC;IACR,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC;IACpF,OAAO,KAAK,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;QAC3C,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,QAAQ,EAAE,cAAc,CAAC,QAAQ;KACpC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;SACtB,IAAI,CAAC,QAAQ,IAAI;QAClB,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACnB,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QACzB,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,OAAO,EAAE;YACxC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;SAC5C;QACD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE;YAClC,OAAO;SACV;;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,EAAE;YAClC,IAAI,MAAM,GAAG,GAAG,EAAE;gBACd,OAAO;aACV;YACD,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE;gBAChD,OAAO;gBACP,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAC;SACN;QACD,IAAI,MAAM,KAAK,GAAG,EAAE;YAChB,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE;gBAC3C,OAAO;gBACP,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAC;SACN;QACD,IAAI,MAAM,IAAI,GAAG,EAAE;YACf,OAAO,QAAQ;iBACV,IAAI,EAAE;iBACN,IAAI,CAAC,OAAO,IAAI;gBACjB,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE;oBAC5C,OAAO;oBACP,OAAO,EAAE,cAAc;iBAC1B,CAAC,CAAC;gBACH,IAAI;oBACA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;oBACnC,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;;oBAEjC,KAAK,CAAC,OAAO;wBACT,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpE;gBACD,OAAO,CAAC,EAAE;;iBAET;gBACD,MAAM,KAAK,CAAC;aACf,CAAC,CAAC;SACN;QACD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACvC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1B;QACD,IAAI,CAAC,WAAW,IAAI,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC5D,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC1B;QACD,OAAOA,iBAAS,CAAC,QAAQ,CAAC,CAAC;KAC9B,CAAC;SACG,IAAI,CAAC,IAAI,IAAI;QACd,OAAO;YACH,MAAM;YACN,GAAG;YACH,OAAO;YACP,IAAI;SACP,CAAC;KACL,CAAC;SACG,KAAK,CAAC,KAAK,IAAI;QAChB,IAAI,KAAK,YAAY,YAAY,EAAE;YAC/B,MAAM,KAAK,CAAC;SACf;QACD,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE;YACvC,OAAO;YACP,OAAO,EAAE,cAAc;SAC1B,CAAC,CAAC;KACN,CAAC,CAAC;CACN;;AC3Fc,SAAS,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE;IAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE;QACxC,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE;YAC3D,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;SACxD;QACD,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK;YACnC,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;SAC1E,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,QAAQ;YACR,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;SAC9C,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;KACjE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ;QACR,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;KAC9C,CAAC,CAAC;CACN;;ACjBW,MAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE;QACL,YAAY,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;KAClE;CACJ,CAAC;;;;"} \ No newline at end of file diff --git a/node_modules/@octokit/request/node_modules/is-plain-object/LICENSE b/node_modules/@octokit/request/node_modules/is-plain-object/LICENSE new file mode 100644 index 0000000..3f2eca1 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/is-plain-object/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/request/node_modules/is-plain-object/README.md b/node_modules/@octokit/request/node_modules/is-plain-object/README.md new file mode 100644 index 0000000..60b7b59 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/is-plain-object/README.md @@ -0,0 +1,119 @@ +# is-plain-object [![NPM version](https://img.shields.io/npm/v/is-plain-object.svg?style=flat)](https://www.npmjs.com/package/is-plain-object) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![NPM total downloads](https://img.shields.io/npm/dt/is-plain-object.svg?style=flat)](https://npmjs.org/package/is-plain-object) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-plain-object.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-plain-object) + +> Returns true if an object was created by the `Object` constructor. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-plain-object +``` + +Use [isobject](https://github.com/jonschlinkert/isobject) if you only want to check if the value is an object and not an array or null. + +## Usage + +```js +import isPlainObject from 'is-plain-object'; +``` + +**true** when created by the `Object` constructor. + +```js +isPlainObject(Object.create({})); +//=> true +isPlainObject(Object.create(Object.prototype)); +//=> true +isPlainObject({foo: 'bar'}); +//=> true +isPlainObject({}); +//=> true +``` + +**false** when not created by the `Object` constructor. + +```js +isPlainObject(1); +//=> false +isPlainObject(['foo', 'bar']); +//=> false +isPlainObject([]); +//=> false +isPlainObject(new Foo); +//=> false +isPlainObject(null); +//=> false +isPlainObject(Object.create(null)); +//=> false +``` + +## About + +

+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-number](https://www.npmjs.com/package/is-number): Returns true if a number or string value is a finite number. Useful for regex… [more](https://github.com/jonschlinkert/is-number) | [homepage](https://github.com/jonschlinkert/is-number "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 19 | [jonschlinkert](https://github.com/jonschlinkert) | +| 6 | [TrySound](https://github.com/TrySound) | +| 6 | [stevenvachon](https://github.com/stevenvachon) | +| 3 | [onokumus](https://github.com/onokumus) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ \ No newline at end of file diff --git a/node_modules/@octokit/request/node_modules/is-plain-object/index.cjs.js b/node_modules/@octokit/request/node_modules/is-plain-object/index.cjs.js new file mode 100644 index 0000000..d7dda95 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/is-plain-object/index.cjs.js @@ -0,0 +1,48 @@ +'use strict'; + +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +} + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObjectObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; + + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +module.exports = isPlainObject; diff --git a/node_modules/@octokit/request/node_modules/is-plain-object/index.d.ts b/node_modules/@octokit/request/node_modules/is-plain-object/index.d.ts new file mode 100644 index 0000000..fd131f0 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/is-plain-object/index.d.ts @@ -0,0 +1,3 @@ +declare function isPlainObject(o: any): boolean; + +export default isPlainObject; diff --git a/node_modules/@octokit/request/node_modules/is-plain-object/index.js b/node_modules/@octokit/request/node_modules/is-plain-object/index.js new file mode 100644 index 0000000..565ce9e --- /dev/null +++ b/node_modules/@octokit/request/node_modules/is-plain-object/index.js @@ -0,0 +1,35 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +import isObject from 'isobject'; + +function isObjectObject(o) { + return isObject(o) === true + && Object.prototype.toString.call(o) === '[object Object]'; +} + +export default function isPlainObject(o) { + var ctor,prot; + + if (isObjectObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (typeof ctor !== 'function') return false; + + // If has modified prototype + prot = ctor.prototype; + if (isObjectObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +}; diff --git a/node_modules/@octokit/request/node_modules/is-plain-object/package.json b/node_modules/@octokit/request/node_modules/is-plain-object/package.json new file mode 100644 index 0000000..fd2e3a5 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/is-plain-object/package.json @@ -0,0 +1,82 @@ +{ + "name": "is-plain-object", + "description": "Returns true if an object was created by the `Object` constructor.", + "version": "3.0.0", + "homepage": "https://github.com/jonschlinkert/is-plain-object", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Osman Nuri Okumuş (http://onokumus.com)", + "Steven Vachon (https://svachon.com)", + "(https://github.com/wtgtybhertgeghgtwtg)" + ], + "repository": "jonschlinkert/is-plain-object", + "bugs": { + "url": "https://github.com/jonschlinkert/is-plain-object/issues" + }, + "license": "MIT", + "main": "index.cjs.js", + "module": "index.js", + "types": "index.d.ts", + "files": [ + "index.d.ts", + "index.js", + "index.cjs.js" + ], + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "build": "rollup -c", + "test_browser": "mocha-headless-chrome --args=disable-web-security -f test/browser.html", + "test_node": "mocha -r esm", + "test": "npm run test_node && npm run build && npm run test_browser", + "prepare": "rollup -c" + }, + "dependencies": { + "isobject": "^4.0.0" + }, + "devDependencies": { + "chai": "^4.2.0", + "esm": "^3.2.22", + "gulp-format-md": "^1.0.0", + "mocha": "^6.1.4", + "mocha-headless-chrome": "^2.0.2", + "rollup": "^1.10.1", + "rollup-plugin-node-resolve": "^4.2.3" + }, + "keywords": [ + "check", + "is", + "is-object", + "isobject", + "javascript", + "kind", + "kind-of", + "object", + "plain", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "is-number", + "isobject", + "kind-of" + ] + }, + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/@octokit/request/node_modules/isobject/LICENSE b/node_modules/@octokit/request/node_modules/isobject/LICENSE new file mode 100644 index 0000000..943e71d --- /dev/null +++ b/node_modules/@octokit/request/node_modules/isobject/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/@octokit/request/node_modules/isobject/README.md b/node_modules/@octokit/request/node_modules/isobject/README.md new file mode 100644 index 0000000..1c6e21f --- /dev/null +++ b/node_modules/@octokit/request/node_modules/isobject/README.md @@ -0,0 +1,127 @@ +# isobject [![NPM version](https://img.shields.io/npm/v/isobject.svg?style=flat)](https://www.npmjs.com/package/isobject) [![NPM monthly downloads](https://img.shields.io/npm/dm/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![NPM total downloads](https://img.shields.io/npm/dt/isobject.svg?style=flat)](https://npmjs.org/package/isobject) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/isobject.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/isobject) + +> Returns true if the value is an object and not an array or null. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save isobject +``` + +Use [is-plain-object](https://github.com/jonschlinkert/is-plain-object) if you want only objects that are created by the `Object` constructor. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install isobject +``` + +## Usage + +```js +import isObject from 'isobject'; +``` + +**True** + +All of the following return `true`: + +```js +isObject({}); +isObject(Object.create({})); +isObject(Object.create(Object.prototype)); +isObject(Object.create(null)); +isObject({}); +isObject(new Foo); +isObject(/foo/); +``` + +**False** + +All of the following return `false`: + +```js +isObject(); +isObject(function () {}); +isObject(1); +isObject([]); +isObject(undefined); +isObject(null); +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [extend-shallow](https://www.npmjs.com/package/extend-shallow): Extend an object with the properties of additional objects. node.js/javascript util. | [homepage](https://github.com/jonschlinkert/extend-shallow "Extend an object with the properties of additional objects. node.js/javascript util.") +* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") +* [merge-deep](https://www.npmjs.com/package/merge-deep): Recursively merge values in a javascript object. | [homepage](https://github.com/jonschlinkert/merge-deep "Recursively merge values in a javascript object.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 30 | [jonschlinkert](https://github.com/jonschlinkert) | +| 8 | [doowb](https://github.com/doowb) | +| 7 | [TrySound](https://github.com/TrySound) | +| 3 | [onokumus](https://github.com/onokumus) | +| 1 | [LeSuisse](https://github.com/LeSuisse) | +| 1 | [tmcw](https://github.com/tmcw) | +| 1 | [ZhouHansen](https://github.com/ZhouHansen) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 28, 2019._ \ No newline at end of file diff --git a/node_modules/@octokit/request/node_modules/isobject/index.cjs.js b/node_modules/@octokit/request/node_modules/isobject/index.cjs.js new file mode 100644 index 0000000..49debe7 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/isobject/index.cjs.js @@ -0,0 +1,14 @@ +'use strict'; + +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +} + +module.exports = isObject; diff --git a/node_modules/@octokit/request/node_modules/isobject/index.d.ts b/node_modules/@octokit/request/node_modules/isobject/index.d.ts new file mode 100644 index 0000000..c471c71 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/isobject/index.d.ts @@ -0,0 +1,3 @@ +declare function isObject(val: any): boolean; + +export default isObject; diff --git a/node_modules/@octokit/request/node_modules/isobject/index.js b/node_modules/@octokit/request/node_modules/isobject/index.js new file mode 100644 index 0000000..e9f0382 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/isobject/index.js @@ -0,0 +1,10 @@ +/*! + * isobject + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +export default function isObject(val) { + return val != null && typeof val === 'object' && Array.isArray(val) === false; +}; diff --git a/node_modules/@octokit/request/node_modules/isobject/package.json b/node_modules/@octokit/request/node_modules/isobject/package.json new file mode 100644 index 0000000..c5683e8 --- /dev/null +++ b/node_modules/@octokit/request/node_modules/isobject/package.json @@ -0,0 +1,80 @@ +{ + "name": "isobject", + "description": "Returns true if the value is an object and not an array or null.", + "version": "4.0.0", + "homepage": "https://github.com/jonschlinkert/isobject", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "(https://github.com/LeSuisse)", + "Brian Woodward (https://twitter.com/doowb)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Magnús Dæhlen (https://github.com/magnudae)", + "Tom MacWright (https://macwright.org)" + ], + "repository": "jonschlinkert/isobject", + "bugs": { + "url": "https://github.com/jonschlinkert/isobject/issues" + }, + "license": "MIT", + "files": [ + "index.d.ts", + "index.cjs.js", + "index.js" + ], + "main": "index.cjs.js", + "module": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "build": "rollup -i index.js -o index.cjs.js -f cjs", + "test": "mocha -r esm", + "prepublish": "npm run build" + }, + "dependencies": {}, + "devDependencies": { + "esm": "^3.2.22", + "gulp-format-md": "^0.1.9", + "mocha": "^2.4.5", + "rollup": "^1.10.1" + }, + "keywords": [ + "check", + "is", + "is-object", + "isobject", + "kind", + "kind-of", + "kindof", + "native", + "object", + "type", + "typeof", + "value" + ], + "types": "index.d.ts", + "verb": { + "related": { + "list": [ + "extend-shallow", + "is-plain-object", + "kind-of", + "merge-deep" + ] + }, + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "reflinks": [ + "verb" + ] + } +} diff --git a/node_modules/@octokit/request/package.json b/node_modules/@octokit/request/package.json new file mode 100644 index 0000000..299179f --- /dev/null +++ b/node_modules/@octokit/request/package.json @@ -0,0 +1,64 @@ +{ + "name": "@octokit/request", + "description": "Send parameterized requests to GitHub’s APIs with sensible defaults in browsers and Node", + "version": "5.3.1", + "license": "MIT", + "files": [ + "dist-*/", + "bin/" + ], + "pika": true, + "sideEffects": false, + "keywords": [ + "octokit", + "github", + "api", + "request" + ], + "homepage": "https://github.com/octokit/request.js#readme", + "bugs": { + "url": "https://github.com/octokit/request.js/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/octokit/request.js.git" + }, + "dependencies": { + "@octokit/endpoint": "^5.5.0", + "@octokit/request-error": "^1.0.1", + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "is-plain-object": "^3.0.0", + "node-fetch": "^2.3.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" + }, + "devDependencies": { + "@octokit/auth-app": "^2.1.2", + "@pika/pack": "^0.5.0", + "@pika/plugin-build-node": "^0.7.0", + "@pika/plugin-build-web": "^0.7.0", + "@pika/plugin-ts-standard-pkg": "^0.7.0", + "@types/fetch-mock": "^7.2.4", + "@types/jest": "^24.0.12", + "@types/lolex": "^3.1.1", + "@types/node": "^12.0.3", + "@types/node-fetch": "^2.3.3", + "@types/once": "^1.4.0", + "fetch-mock": "^7.2.0", + "jest": "^24.7.1", + "lolex": "^5.0.0", + "prettier": "^1.17.0", + "semantic-release": "^15.13.27", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "ts-jest": "^24.0.2", + "typescript": "^3.4.5" + }, + "publishConfig": { + "access": "public" + }, + "source": "dist-src/index.js", + "types": "dist-types/index.d.ts", + "main": "dist-node/index.js", + "deno": "dist-web/index.js" +} diff --git a/node_modules/@octokit/rest/LICENSE b/node_modules/@octokit/rest/LICENSE new file mode 100644 index 0000000..4c0d268 --- /dev/null +++ b/node_modules/@octokit/rest/LICENSE @@ -0,0 +1,22 @@ +The MIT License + +Copyright (c) 2012 Cloud9 IDE, Inc. (Mike de Boer) +Copyright (c) 2017-2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/@octokit/rest/README.md b/node_modules/@octokit/rest/README.md new file mode 100644 index 0000000..2a31824 --- /dev/null +++ b/node_modules/@octokit/rest/README.md @@ -0,0 +1,46 @@ +# rest.js + +> GitHub REST API client for JavaScript + +[![@latest](https://img.shields.io/npm/v/@octokit/rest.svg)](https://www.npmjs.com/package/@octokit/rest) +![Build Status](https://github.com/octokit/rest.js/workflows/Test/badge.svg) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/rest.js.svg)](https://greenkeeper.io/) + +## Installation + +```shell +npm install @octokit/rest +``` + +## Usage + +```js +const Octokit = require("@octokit/rest"); +const octokit = new Octokit(); + +// Compare: https://developer.github.com/v3/repos/#list-organization-repositories +octokit.repos + .listForOrg({ + org: "octokit", + type: "public" + }) + .then(({ data }) => { + // handle data + }); +``` + +See https://octokit.github.io/rest.js/ for full documentation. + +## Contributing + +We would love you to contribute to `@octokit/rest`, pull requests are very welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information. + +## Credits + +`@octokit/rest` was originally created as [`node-github`](https://www.npmjs.com/package/github) in 2012 by Mike de Boer from Cloud9 IDE, Inc. + +It was adopted and renamed by GitHub in 2017 + +## LICENSE + +[MIT](LICENSE) diff --git a/node_modules/@octokit/rest/index.d.ts b/node_modules/@octokit/rest/index.d.ts new file mode 100644 index 0000000..c66a088 --- /dev/null +++ b/node_modules/@octokit/rest/index.d.ts @@ -0,0 +1,36073 @@ +/** + * This file is generated based on https://github.com/octokit/routes/ & "npm run build:ts". + * + * DO NOT EDIT MANUALLY. + */ + +/** + * This declaration file requires TypeScript 3.1 or above. + */ + +/// + +import * as http from "http"; + +declare namespace Octokit { + type json = any; + type date = string; + + export interface Static { + plugin(plugin: Plugin): Static; + new (options?: Octokit.Options): Octokit; + } + + export interface Response { + /** This is the data you would see in https://developer.github.com/v3/ */ + data: T; + + /** Response status number */ + status: number; + + /** Response headers */ + headers: { + date: string; + "x-ratelimit-limit": string; + "x-ratelimit-remaining": string; + "x-ratelimit-reset": string; + "x-Octokit-request-id": string; + "x-Octokit-media-type": string; + link: string; + "last-modified": string; + etag: string; + status: string; + }; + + [Symbol.iterator](): Iterator; + } + + export type AnyResponse = Response; + + export interface EmptyParams {} + + export interface Options { + auth?: + | string + | { username: string; password: string; on2fa: () => Promise } + | { clientId: string; clientSecret: string } + | { (): string | Promise }; + userAgent?: string; + previews?: string[]; + baseUrl?: string; + log?: { + debug?: (message: string, info?: object) => void; + info?: (message: string, info?: object) => void; + warn?: (message: string, info?: object) => void; + error?: (message: string, info?: object) => void; + }; + request?: { + agent?: http.Agent; + timeout?: number; + }; + /** + * @deprecated Use {request: {timeout}} instead. See https://github.com/octokit/request.js#request + */ + timeout?: number; + /** + * @deprecated Use {userAgent, previews} instead. See https://github.com/octokit/request.js#request + */ + headers?: { [header: string]: any }; + /** + * @deprecated Use {request: {agent}} instead. See https://github.com/octokit/request.js#request + */ + agent?: http.Agent; + [option: string]: any; + } + + export type RequestMethod = + | "DELETE" + | "GET" + | "HEAD" + | "PATCH" + | "POST" + | "PUT"; + + export interface EndpointOptions { + baseUrl?: string; + method?: RequestMethod; + url?: string; + headers?: { [header: string]: any }; + data?: any; + request?: { [option: string]: any }; + [parameter: string]: any; + } + + export interface RequestOptions { + method?: RequestMethod; + url?: string; + headers?: RequestHeaders; + body?: any; + request?: OctokitRequestOptions; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + + /** + * Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + } + + export type RequestHeaders = { + /** + * Avoid setting `accept`, use `mediaFormat.{format|previews}` instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + + [header: string]: string | number | undefined; + }; + + export type OctokitRequestOptions = { + /** + * Node only. Useful for custom proxy, certificate, or dns lookup. + */ + agent?: http.Agent; + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: any; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: any; + /** + * Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). `options.request.signal` is recommended instead. + */ + timeout?: number; + + [option: string]: any; + }; + + export interface Log { + debug: (message: string, additionalInfo?: object) => void; + info: (message: string, additionalInfo?: object) => void; + warn: (message: string, additionalInfo?: object) => void; + error: (message: string, additionalInfo?: object) => void; + } + + export interface Endpoint { + ( + Route: string, + EndpointOptions?: Octokit.EndpointOptions + ): Octokit.RequestOptions; + (EndpointOptions: Octokit.EndpointOptions): Octokit.RequestOptions; + /** + * Current default options + */ + DEFAULTS: Octokit.EndpointOptions; + /** + * Get the defaulted endpoint options, but without parsing them into request options: + */ + merge( + Route: string, + EndpointOptions?: Octokit.EndpointOptions + ): Octokit.RequestOptions; + merge(EndpointOptions: Octokit.EndpointOptions): Octokit.RequestOptions; + /** + * Stateless method to turn endpoint options into request options. Calling endpoint(options) is the same as calling endpoint.parse(endpoint.merge(options)). + */ + parse(EndpointOptions: Octokit.EndpointOptions): Octokit.RequestOptions; + /** + * Merges existing defaults with passed options and returns new endpoint() method with new defaults + */ + defaults(EndpointOptions: Octokit.EndpointOptions): Octokit.Endpoint; + } + + export interface Request { + (Route: string, EndpointOptions?: Octokit.EndpointOptions): Promise< + Octokit.AnyResponse + >; + (EndpointOptions: Octokit.EndpointOptions): Promise; + endpoint: Octokit.Endpoint; + } + + export interface AuthBasic { + type: "basic"; + username: string; + password: string; + } + + export interface AuthOAuthToken { + type: "oauth"; + token: string; + } + + export interface AuthOAuthSecret { + type: "oauth"; + key: string; + secret: string; + } + + export interface AuthUserToken { + type: "token"; + token: string; + } + + export interface AuthJWT { + type: "app"; + token: string; + } + + export type Link = { link: string } | { headers: { link: string } } | string; + + export interface Callback { + (error: Error | null, result: T): any; + } + + export type Plugin = (octokit: Octokit, options: Octokit.Options) => void; + + // See https://github.com/octokit/request.js#request + export type HookOptions = { + baseUrl: string; + headers: { [header: string]: string }; + method: string; + url: string; + data: any; + // See https://github.com/bitinn/node-fetch#options + request: { + follow?: number; + timeout?: number; + compress?: boolean; + size?: number; + agent?: string | null; + }; + [index: string]: any; + }; + + export type HookError = Error & { + status: number; + headers: { [header: string]: string }; + documentation_url?: string; + errors?: [ + { + resource: string; + field: string; + code: string; + } + ]; + }; + + export interface Paginate { + ( + Route: string, + EndpointOptions?: Octokit.EndpointOptions, + callback?: (response: Octokit.AnyResponse, done: () => void) => any + ): Promise; + ( + EndpointOptions: Octokit.EndpointOptions, + callback?: (response: Octokit.AnyResponse, done: () => void) => any + ): Promise; + iterator: ( + EndpointOptions: Octokit.EndpointOptions + ) => AsyncIterableIterator; + } + + // response types + type UsersUpdateAuthenticatedResponsePlan = { + collaborators: number; + name: string; + private_repos: number; + space: number; + }; + type UsersUpdateAuthenticatedResponse = { + avatar_url: string; + bio: string; + blog: string; + collaborators: number; + company: string; + created_at: string; + disk_usage: number; + email: string; + events_url: string; + followers: number; + followers_url: string; + following: number; + following_url: string; + gists_url: string; + gravatar_id: string; + hireable: boolean; + html_url: string; + id: number; + location: string; + login: string; + name: string; + node_id: string; + organizations_url: string; + owned_private_repos: number; + plan: UsersUpdateAuthenticatedResponsePlan; + private_gists: number; + public_gists: number; + public_repos: number; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + total_private_repos: number; + two_factor_authentication: boolean; + type: string; + updated_at: string; + url: string; + }; + type UsersTogglePrimaryEmailVisibilityResponseItem = { + email: string; + primary: boolean; + verified: boolean; + visibility: string; + }; + type UsersListPublicKeysForUserResponseItem = { id: number; key: string }; + type UsersListPublicKeysResponseItem = { + created_at: string; + id: number; + key: string; + read_only: boolean; + title: string; + url: string; + verified: boolean; + }; + type UsersListPublicEmailsResponseItem = { + email: string; + primary: boolean; + verified: boolean; + visibility: string; + }; + type UsersListGpgKeysForUserResponseItemSubkeysItem = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: number; + public_key: string; + subkeys: Array; + }; + type UsersListGpgKeysForUserResponseItemEmailsItem = { + email: string; + verified: boolean; + }; + type UsersListGpgKeysForUserResponseItem = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: null; + public_key: string; + subkeys: Array; + }; + type UsersListGpgKeysResponseItemSubkeysItem = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: number; + public_key: string; + subkeys: Array; + }; + type UsersListGpgKeysResponseItemEmailsItem = { + email: string; + verified: boolean; + }; + type UsersListGpgKeysResponseItem = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: null; + public_key: string; + subkeys: Array; + }; + type UsersListFollowingForUserResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type UsersListFollowingForAuthenticatedUserResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type UsersListFollowersForUserResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type UsersListFollowersForAuthenticatedUserResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type UsersListEmailsResponseItem = { + email: string; + primary: boolean; + verified: boolean; + visibility: string; + }; + type UsersListBlockedResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type UsersListResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type UsersGetPublicKeyResponse = { + created_at: string; + id: number; + key: string; + read_only: boolean; + title: string; + url: string; + verified: boolean; + }; + type UsersGetGpgKeyResponseSubkeysItem = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: number; + public_key: string; + subkeys: Array; + }; + type UsersGetGpgKeyResponseEmailsItem = { email: string; verified: boolean }; + type UsersGetGpgKeyResponse = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: null; + public_key: string; + subkeys: Array; + }; + type UsersGetContextForUserResponseContextsItem = { + message: string; + octicon: string; + }; + type UsersGetContextForUserResponse = { + contexts: Array; + }; + type UsersGetByUsernameResponsePlan = { + collaborators: number; + name: string; + private_repos: number; + space: number; + }; + type UsersGetByUsernameResponse = { + avatar_url: string; + bio: string; + blog: string; + company: string; + created_at: string; + email: string; + events_url: string; + followers: number; + followers_url: string; + following: number; + following_url: string; + gists_url: string; + gravatar_id: string; + hireable: boolean; + html_url: string; + id: number; + location: string; + login: string; + name: string; + node_id: string; + organizations_url: string; + public_gists: number; + public_repos: number; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + updated_at: string; + url: string; + plan?: UsersGetByUsernameResponsePlan; + }; + type UsersGetAuthenticatedResponsePlan = { + collaborators: number; + name: string; + private_repos: number; + space: number; + }; + type UsersGetAuthenticatedResponse = { + avatar_url: string; + bio: string; + blog: string; + collaborators?: number; + company: string; + created_at: string; + disk_usage?: number; + email: string; + events_url: string; + followers: number; + followers_url: string; + following: number; + following_url: string; + gists_url: string; + gravatar_id: string; + hireable: boolean; + html_url: string; + id: number; + location: string; + login: string; + name: string; + node_id: string; + organizations_url: string; + owned_private_repos?: number; + plan?: UsersGetAuthenticatedResponsePlan; + private_gists?: number; + public_gists: number; + public_repos: number; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + total_private_repos?: number; + two_factor_authentication?: boolean; + type: string; + updated_at: string; + url: string; + }; + type UsersCreatePublicKeyResponse = { + created_at: string; + id: number; + key: string; + read_only: boolean; + title: string; + url: string; + verified: boolean; + }; + type UsersCreateGpgKeyResponseSubkeysItem = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: number; + public_key: string; + subkeys: Array; + }; + type UsersCreateGpgKeyResponseEmailsItem = { + email: string; + verified: boolean; + }; + type UsersCreateGpgKeyResponse = { + can_certify: boolean; + can_encrypt_comms: boolean; + can_encrypt_storage: boolean; + can_sign: boolean; + created_at: string; + emails: Array; + expires_at: null; + id: number; + key_id: string; + primary_key_id: null; + public_key: string; + subkeys: Array; + }; + type UsersAddEmailsResponseItem = { + email: string; + primary: boolean; + verified: boolean; + visibility: string | null; + }; + type TeamsUpdateDiscussionCommentResponseReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsUpdateDiscussionCommentResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsUpdateDiscussionCommentResponse = { + author: TeamsUpdateDiscussionCommentResponseAuthor; + body: string; + body_html: string; + body_version: string; + created_at: string; + discussion_url: string; + html_url: string; + last_edited_at: string; + node_id: string; + number: number; + reactions: TeamsUpdateDiscussionCommentResponseReactions; + updated_at: string; + url: string; + }; + type TeamsUpdateDiscussionResponseReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsUpdateDiscussionResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsUpdateDiscussionResponse = { + author: TeamsUpdateDiscussionResponseAuthor; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + html_url: string; + last_edited_at: string; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + reactions: TeamsUpdateDiscussionResponseReactions; + team_url: string; + title: string; + updated_at: string; + url: string; + }; + type TeamsUpdateResponseOrganization = { + avatar_url: string; + blog: string; + company: string; + created_at: string; + description: string; + email: string; + events_url: string; + followers: number; + following: number; + has_organization_projects: boolean; + has_repository_projects: boolean; + hooks_url: string; + html_url: string; + id: number; + is_verified: boolean; + issues_url: string; + location: string; + login: string; + members_url: string; + name: string; + node_id: string; + public_gists: number; + public_members_url: string; + public_repos: number; + repos_url: string; + type: string; + url: string; + }; + type TeamsUpdateResponse = { + created_at: string; + description: string; + html_url: string; + id: number; + members_count: number; + members_url: string; + name: string; + node_id: string; + organization: TeamsUpdateResponseOrganization; + parent: null; + permission: string; + privacy: string; + repos_count: number; + repositories_url: string; + slug: string; + updated_at: string; + url: string; + }; + type TeamsReviewProjectResponsePermissions = { + admin: boolean; + read: boolean; + write: boolean; + }; + type TeamsReviewProjectResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsReviewProjectResponse = { + body: string; + columns_url: string; + created_at: string; + creator: TeamsReviewProjectResponseCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + organization_permission: string; + owner_url: string; + permissions: TeamsReviewProjectResponsePermissions; + private: boolean; + state: string; + updated_at: string; + url: string; + }; + type TeamsListReposResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type TeamsListReposResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsListReposResponseItemLicense = { + key: string; + name: string; + node_id: string; + spdx_id: string; + url: string; + }; + type TeamsListReposResponseItem = { + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + license: TeamsListReposResponseItemLicense; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: TeamsListReposResponseItemOwner; + permissions: TeamsListReposResponseItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type TeamsListProjectsResponseItemPermissions = { + admin: boolean; + read: boolean; + write: boolean; + }; + type TeamsListProjectsResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsListProjectsResponseItem = { + body: string; + columns_url: string; + created_at: string; + creator: TeamsListProjectsResponseItemCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + organization_permission: string; + owner_url: string; + permissions: TeamsListProjectsResponseItemPermissions; + private: boolean; + state: string; + updated_at: string; + url: string; + }; + type TeamsListPendingInvitationsResponseItemInviter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsListPendingInvitationsResponseItem = { + created_at: string; + email: string; + id: number; + invitation_team_url: string; + inviter: TeamsListPendingInvitationsResponseItemInviter; + login: string; + role: string; + team_count: number; + }; + type TeamsListMembersResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsListForAuthenticatedUserResponseItemOrganization = { + avatar_url: string; + blog: string; + company: string; + created_at: string; + description: string; + email: string; + events_url: string; + followers: number; + following: number; + has_organization_projects: boolean; + has_repository_projects: boolean; + hooks_url: string; + html_url: string; + id: number; + is_verified: boolean; + issues_url: string; + location: string; + login: string; + members_url: string; + name: string; + node_id: string; + public_gists: number; + public_members_url: string; + public_repos: number; + repos_url: string; + type: string; + url: string; + }; + type TeamsListForAuthenticatedUserResponseItem = { + created_at: string; + description: string; + html_url: string; + id: number; + members_count: number; + members_url: string; + name: string; + node_id: string; + organization: TeamsListForAuthenticatedUserResponseItemOrganization; + parent: null; + permission: string; + privacy: string; + repos_count: number; + repositories_url: string; + slug: string; + updated_at: string; + url: string; + }; + type TeamsListDiscussionsResponseItemReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsListDiscussionsResponseItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsListDiscussionsResponseItem = { + author: TeamsListDiscussionsResponseItemAuthor; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + html_url: string; + last_edited_at: null; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + reactions: TeamsListDiscussionsResponseItemReactions; + team_url: string; + title: string; + updated_at: string; + url: string; + }; + type TeamsListDiscussionCommentsResponseItemReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsListDiscussionCommentsResponseItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsListDiscussionCommentsResponseItem = { + author: TeamsListDiscussionCommentsResponseItemAuthor; + body: string; + body_html: string; + body_version: string; + created_at: string; + discussion_url: string; + html_url: string; + last_edited_at: null; + node_id: string; + number: number; + reactions: TeamsListDiscussionCommentsResponseItemReactions; + updated_at: string; + url: string; + }; + type TeamsListChildResponseItemParent = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type TeamsListChildResponseItem = { + description: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: TeamsListChildResponseItemParent; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type TeamsListResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type TeamsGetMembershipResponse = { + role: string; + state: string; + url: string; + }; + type TeamsGetDiscussionCommentResponseReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsGetDiscussionCommentResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsGetDiscussionCommentResponse = { + author: TeamsGetDiscussionCommentResponseAuthor; + body: string; + body_html: string; + body_version: string; + created_at: string; + discussion_url: string; + html_url: string; + last_edited_at: null; + node_id: string; + number: number; + reactions: TeamsGetDiscussionCommentResponseReactions; + updated_at: string; + url: string; + }; + type TeamsGetDiscussionResponseReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsGetDiscussionResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsGetDiscussionResponse = { + author: TeamsGetDiscussionResponseAuthor; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + html_url: string; + last_edited_at: null; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + reactions: TeamsGetDiscussionResponseReactions; + team_url: string; + title: string; + updated_at: string; + url: string; + }; + type TeamsGetByNameResponseOrganization = { + avatar_url: string; + blog: string; + company: string; + created_at: string; + description: string; + email: string; + events_url: string; + followers: number; + following: number; + has_organization_projects: boolean; + has_repository_projects: boolean; + hooks_url: string; + html_url: string; + id: number; + is_verified: boolean; + issues_url: string; + location: string; + login: string; + members_url: string; + name: string; + node_id: string; + public_gists: number; + public_members_url: string; + public_repos: number; + repos_url: string; + type: string; + url: string; + }; + type TeamsGetByNameResponse = { + created_at: string; + description: string; + html_url: string; + id: number; + members_count: number; + members_url: string; + name: string; + node_id: string; + organization: TeamsGetByNameResponseOrganization; + parent: null; + permission: string; + privacy: string; + repos_count: number; + repositories_url: string; + slug: string; + updated_at: string; + url: string; + }; + type TeamsGetResponseOrganization = { + avatar_url: string; + blog: string; + company: string; + created_at: string; + description: string; + email: string; + events_url: string; + followers: number; + following: number; + has_organization_projects: boolean; + has_repository_projects: boolean; + hooks_url: string; + html_url: string; + id: number; + is_verified: boolean; + issues_url: string; + location: string; + login: string; + members_url: string; + name: string; + node_id: string; + public_gists: number; + public_members_url: string; + public_repos: number; + repos_url: string; + type: string; + url: string; + }; + type TeamsGetResponse = { + created_at: string; + description: string; + html_url: string; + id: number; + members_count: number; + members_url: string; + name: string; + node_id: string; + organization: TeamsGetResponseOrganization; + parent: null; + permission: string; + privacy: string; + repos_count: number; + repositories_url: string; + slug: string; + updated_at: string; + url: string; + }; + type TeamsCreateDiscussionCommentResponseReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsCreateDiscussionCommentResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsCreateDiscussionCommentResponse = { + author: TeamsCreateDiscussionCommentResponseAuthor; + body: string; + body_html: string; + body_version: string; + created_at: string; + discussion_url: string; + html_url: string; + last_edited_at: null; + node_id: string; + number: number; + reactions: TeamsCreateDiscussionCommentResponseReactions; + updated_at: string; + url: string; + }; + type TeamsCreateDiscussionResponseReactions = { + "+1": number; + "-1": number; + confused: number; + heart: number; + hooray: number; + laugh: number; + total_count: number; + url: string; + }; + type TeamsCreateDiscussionResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsCreateDiscussionResponse = { + author: TeamsCreateDiscussionResponseAuthor; + body: string; + body_html: string; + body_version: string; + comments_count: number; + comments_url: string; + created_at: string; + html_url: string; + last_edited_at: null; + node_id: string; + number: number; + pinned: boolean; + private: boolean; + reactions: TeamsCreateDiscussionResponseReactions; + team_url: string; + title: string; + updated_at: string; + url: string; + }; + type TeamsCreateResponseOrganization = { + avatar_url: string; + blog: string; + company: string; + created_at: string; + description: string; + email: string; + events_url: string; + followers: number; + following: number; + has_organization_projects: boolean; + has_repository_projects: boolean; + hooks_url: string; + html_url: string; + id: number; + is_verified: boolean; + issues_url: string; + location: string; + login: string; + members_url: string; + name: string; + node_id: string; + public_gists: number; + public_members_url: string; + public_repos: number; + repos_url: string; + type: string; + url: string; + }; + type TeamsCreateResponse = { + created_at: string; + description: string; + html_url: string; + id: number; + members_count: number; + members_url: string; + name: string; + node_id: string; + organization: TeamsCreateResponseOrganization; + parent: null; + permission: string; + privacy: string; + repos_count: number; + repositories_url: string; + slug: string; + updated_at: string; + url: string; + }; + type TeamsCheckManagesRepoResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type TeamsCheckManagesRepoResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type TeamsCheckManagesRepoResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: TeamsCheckManagesRepoResponseOwner; + permissions: TeamsCheckManagesRepoResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type TeamsAddOrUpdateProjectResponse = { + documentation_url: string; + message: string; + }; + type TeamsAddOrUpdateMembershipResponse = { + role: string; + state: string; + url: string; + }; + type TeamsAddMemberResponseErrorsItem = { + code: string; + field: string; + resource: string; + }; + type TeamsAddMemberResponse = { + errors: Array; + message: string; + }; + type SearchUsersResponseItemsItem = { + avatar_url: string; + followers_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + score: number; + subscriptions_url: string; + type: string; + url: string; + }; + type SearchUsersResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type SearchTopicsResponseItemsItem = { + created_at: string; + created_by: string; + curated: boolean; + description: string; + display_name: string; + featured: boolean; + name: string; + released: string; + score: number; + short_description: string; + updated_at: string; + }; + type SearchTopicsResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type SearchReposResponseItemsItemOwner = { + avatar_url: string; + gravatar_id: string; + id: number; + login: string; + node_id: string; + received_events_url: string; + type: string; + url: string; + }; + type SearchReposResponseItemsItem = { + created_at: string; + default_branch: string; + description: string; + fork: boolean; + forks_count: number; + full_name: string; + homepage: string; + html_url: string; + id: number; + language: string; + master_branch: string; + name: string; + node_id: string; + open_issues_count: number; + owner: SearchReposResponseItemsItemOwner; + private: boolean; + pushed_at: string; + score: number; + size: number; + stargazers_count: number; + updated_at: string; + url: string; + watchers_count: number; + }; + type SearchReposResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type SearchLabelsResponseItemsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + score: number; + url: string; + }; + type SearchLabelsResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type SearchIssuesAndPullRequestsResponseItemsItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type SearchIssuesAndPullRequestsResponseItemsItemPullRequest = { + diff_url: null; + html_url: null; + patch_url: null; + }; + type SearchIssuesAndPullRequestsResponseItemsItemLabelsItem = { + color: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type SearchIssuesAndPullRequestsResponseItemsItem = { + assignee: null; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + milestone: null; + node_id: string; + number: number; + pull_request: SearchIssuesAndPullRequestsResponseItemsItemPullRequest; + repository_url: string; + score: number; + state: string; + title: string; + updated_at: string; + url: string; + user: SearchIssuesAndPullRequestsResponseItemsItemUser; + }; + type SearchIssuesAndPullRequestsResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type SearchIssuesResponseItemsItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type SearchIssuesResponseItemsItemPullRequest = { + diff_url: null; + html_url: null; + patch_url: null; + }; + type SearchIssuesResponseItemsItemLabelsItem = { + color: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type SearchIssuesResponseItemsItem = { + assignee: null; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + milestone: null; + node_id: string; + number: number; + pull_request: SearchIssuesResponseItemsItemPullRequest; + repository_url: string; + score: number; + state: string; + title: string; + updated_at: string; + url: string; + user: SearchIssuesResponseItemsItemUser; + }; + type SearchIssuesResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type SearchCommitsResponseItemsItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type SearchCommitsResponseItemsItemRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + hooks_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: SearchCommitsResponseItemsItemRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type SearchCommitsResponseItemsItemParentsItem = { + html_url: string; + sha: string; + url: string; + }; + type SearchCommitsResponseItemsItemCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type SearchCommitsResponseItemsItemCommitTree = { sha: string; url: string }; + type SearchCommitsResponseItemsItemCommitCommitter = { + date: string; + email: string; + name: string; + }; + type SearchCommitsResponseItemsItemCommitAuthor = { + date: string; + email: string; + name: string; + }; + type SearchCommitsResponseItemsItemCommit = { + author: SearchCommitsResponseItemsItemCommitAuthor; + comment_count: number; + committer: SearchCommitsResponseItemsItemCommitCommitter; + message: string; + tree: SearchCommitsResponseItemsItemCommitTree; + url: string; + }; + type SearchCommitsResponseItemsItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type SearchCommitsResponseItemsItem = { + author: SearchCommitsResponseItemsItemAuthor; + comments_url: string; + commit: SearchCommitsResponseItemsItemCommit; + committer: SearchCommitsResponseItemsItemCommitter; + html_url: string; + parents: Array; + repository: SearchCommitsResponseItemsItemRepository; + score: number; + sha: string; + url: string; + }; + type SearchCommitsResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type SearchCodeResponseItemsItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type SearchCodeResponseItemsItemRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + hooks_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: SearchCodeResponseItemsItemRepositoryOwner; + private: boolean; + pulls_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type SearchCodeResponseItemsItem = { + git_url: string; + html_url: string; + name: string; + path: string; + repository: SearchCodeResponseItemsItemRepository; + score: number; + sha: string; + url: string; + }; + type SearchCodeResponse = { + incomplete_results: boolean; + items: Array; + total_count: number; + }; + type ReposUploadReleaseAssetResponseValueUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUploadReleaseAssetResponseValue = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposUploadReleaseAssetResponseValueUploader; + url: string; + }; + type ReposUploadReleaseAssetResponse = { + value: ReposUploadReleaseAssetResponseValue; + }; + type ReposUpdateReleaseAssetResponseUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateReleaseAssetResponse = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposUpdateReleaseAssetResponseUploader; + url: string; + }; + type ReposUpdateReleaseResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateReleaseResponseAssetsItemUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateReleaseResponseAssetsItem = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposUpdateReleaseResponseAssetsItemUploader; + url: string; + }; + type ReposUpdateReleaseResponse = { + assets: Array; + assets_url: string; + author: ReposUpdateReleaseResponseAuthor; + body: string; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + node_id: string; + prerelease: boolean; + published_at: string; + tag_name: string; + tarball_url: string; + target_commitish: string; + upload_url: string; + url: string; + zipball_url: string; + }; + type ReposUpdateProtectedBranchRequiredStatusChecksResponse = { + contexts: Array; + contexts_url: string; + strict: boolean; + url: string; + }; + type ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictions = { + teams: Array< + ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsTeamsItem + >; + teams_url: string; + url: string; + users: Array< + ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsUsersItem + >; + users_url: string; + }; + type ReposUpdateProtectedBranchPullRequestReviewEnforcementResponse = { + dismiss_stale_reviews: boolean; + dismissal_restrictions: ReposUpdateProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictions; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + url: string; + }; + type ReposUpdateInvitationResponseRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateInvitationResponseRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ReposUpdateInvitationResponseRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ReposUpdateInvitationResponseInviter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateInvitationResponseInvitee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateInvitationResponse = { + created_at: string; + html_url: string; + id: number; + invitee: ReposUpdateInvitationResponseInvitee; + inviter: ReposUpdateInvitationResponseInviter; + permissions: string; + repository: ReposUpdateInvitationResponseRepository; + url: string; + }; + type ReposUpdateHookResponseLastResponse = { + code: null; + message: null; + status: string; + }; + type ReposUpdateHookResponseConfig = { + content_type: string; + insecure_ssl: string; + url: string; + }; + type ReposUpdateHookResponse = { + active: boolean; + config: ReposUpdateHookResponseConfig; + created_at: string; + events: Array; + id: number; + last_response: ReposUpdateHookResponseLastResponse; + name: string; + ping_url: string; + test_url: string; + type: string; + updated_at: string; + url: string; + }; + type ReposUpdateFileResponseContentLinks = { + git: string; + html: string; + self: string; + }; + type ReposUpdateFileResponseContent = { + _links: ReposUpdateFileResponseContentLinks; + download_url: string; + git_url: string; + html_url: string; + name: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + }; + type ReposUpdateFileResponseCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposUpdateFileResponseCommitTree = { sha: string; url: string }; + type ReposUpdateFileResponseCommitParentsItem = { + html_url: string; + sha: string; + url: string; + }; + type ReposUpdateFileResponseCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposUpdateFileResponseCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposUpdateFileResponseCommit = { + author: ReposUpdateFileResponseCommitAuthor; + committer: ReposUpdateFileResponseCommitCommitter; + html_url: string; + message: string; + node_id: string; + parents: Array; + sha: string; + tree: ReposUpdateFileResponseCommitTree; + url: string; + verification: ReposUpdateFileResponseCommitVerification; + }; + type ReposUpdateFileResponse = { + commit: ReposUpdateFileResponseCommit; + content: ReposUpdateFileResponseContent; + }; + type ReposUpdateCommitCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateCommitCommentResponse = { + body: string; + commit_id: string; + created_at: string; + html_url: string; + id: number; + line: number; + node_id: string; + path: string; + position: number; + updated_at: string; + url: string; + user: ReposUpdateCommitCommentResponseUser; + }; + type ReposUpdateBranchProtectionResponseRestrictionsUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateBranchProtectionResponseRestrictionsTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposUpdateBranchProtectionResponseRestrictionsAppsItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposUpdateBranchProtectionResponseRestrictionsAppsItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposUpdateBranchProtectionResponseRestrictionsAppsItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposUpdateBranchProtectionResponseRestrictionsAppsItemOwner; + permissions: ReposUpdateBranchProtectionResponseRestrictionsAppsItemPermissions; + slug: string; + updated_at: string; + }; + type ReposUpdateBranchProtectionResponseRestrictions = { + apps: Array; + apps_url: string; + teams: Array; + teams_url: string; + url: string; + users: Array; + users_url: string; + }; + type ReposUpdateBranchProtectionResponseRequiredStatusChecks = { + contexts: Array; + contexts_url: string; + strict: boolean; + url: string; + }; + type ReposUpdateBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposUpdateBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictions = { + teams: Array< + ReposUpdateBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsTeamsItem + >; + teams_url: string; + url: string; + users: Array< + ReposUpdateBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsUsersItem + >; + users_url: string; + }; + type ReposUpdateBranchProtectionResponseRequiredPullRequestReviews = { + dismiss_stale_reviews: boolean; + dismissal_restrictions: ReposUpdateBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictions; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + url: string; + }; + type ReposUpdateBranchProtectionResponseEnforceAdmins = { + enabled: boolean; + url: string; + }; + type ReposUpdateBranchProtectionResponse = { + enforce_admins: ReposUpdateBranchProtectionResponseEnforceAdmins; + required_pull_request_reviews: ReposUpdateBranchProtectionResponseRequiredPullRequestReviews; + required_status_checks: ReposUpdateBranchProtectionResponseRequiredStatusChecks; + restrictions: ReposUpdateBranchProtectionResponseRestrictions; + url: string; + }; + type ReposUpdateResponseSourcePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposUpdateResponseSourceOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateResponseSource = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposUpdateResponseSourceOwner; + permissions: ReposUpdateResponseSourcePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposUpdateResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposUpdateResponseParentPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposUpdateResponseParentOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateResponseParent = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposUpdateResponseParentOwner; + permissions: ReposUpdateResponseParentPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposUpdateResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateResponseOrganization = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposUpdateResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + organization: ReposUpdateResponseOrganization; + owner: ReposUpdateResponseOwner; + parent: ReposUpdateResponseParent; + permissions: ReposUpdateResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + source: ReposUpdateResponseSource; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposTransferResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposTransferResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposTransferResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposTransferResponseOwner; + permissions: ReposTransferResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposRetrieveCommunityProfileMetricsResponseFilesReadme = { + html_url: string; + url: string; + }; + type ReposRetrieveCommunityProfileMetricsResponseFilesPullRequestTemplate = { + html_url: string; + url: string; + }; + type ReposRetrieveCommunityProfileMetricsResponseFilesLicense = { + html_url: string; + key: string; + name: string; + spdx_id: string; + url: string; + }; + type ReposRetrieveCommunityProfileMetricsResponseFilesIssueTemplate = { + html_url: string; + url: string; + }; + type ReposRetrieveCommunityProfileMetricsResponseFilesContributing = { + html_url: string; + url: string; + }; + type ReposRetrieveCommunityProfileMetricsResponseFilesCodeOfConduct = { + html_url: string; + key: string; + name: string; + url: string; + }; + type ReposRetrieveCommunityProfileMetricsResponseFiles = { + code_of_conduct: ReposRetrieveCommunityProfileMetricsResponseFilesCodeOfConduct; + contributing: ReposRetrieveCommunityProfileMetricsResponseFilesContributing; + issue_template: ReposRetrieveCommunityProfileMetricsResponseFilesIssueTemplate; + license: ReposRetrieveCommunityProfileMetricsResponseFilesLicense; + pull_request_template: ReposRetrieveCommunityProfileMetricsResponseFilesPullRequestTemplate; + readme: ReposRetrieveCommunityProfileMetricsResponseFilesReadme; + }; + type ReposRetrieveCommunityProfileMetricsResponse = { + description: string; + documentation: boolean; + files: ReposRetrieveCommunityProfileMetricsResponseFiles; + health_percentage: number; + updated_at: string; + }; + type ReposRequestPageBuildResponse = { status: string; url: string }; + type ReposReplaceTopicsResponse = { names: Array }; + type ReposReplaceProtectedBranchUserRestrictionsResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposReplaceProtectedBranchTeamRestrictionsResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposReplaceProtectedBranchAppRestrictionsResponseItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposReplaceProtectedBranchAppRestrictionsResponseItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposReplaceProtectedBranchAppRestrictionsResponseItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposReplaceProtectedBranchAppRestrictionsResponseItemOwner; + permissions: ReposReplaceProtectedBranchAppRestrictionsResponseItemPermissions; + slug: string; + updated_at: string; + }; + type ReposRemoveProtectedBranchUserRestrictionsResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposRemoveProtectedBranchTeamRestrictionsResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposRemoveProtectedBranchAppRestrictionsResponseItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposRemoveProtectedBranchAppRestrictionsResponseItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposRemoveProtectedBranchAppRestrictionsResponseItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposRemoveProtectedBranchAppRestrictionsResponseItemOwner; + permissions: ReposRemoveProtectedBranchAppRestrictionsResponseItemPermissions; + slug: string; + updated_at: string; + }; + type ReposMergeResponseParentsItem = { sha: string; url: string }; + type ReposMergeResponseCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposMergeResponseCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposMergeResponseCommitTree = { sha: string; url: string }; + type ReposMergeResponseCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposMergeResponseCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposMergeResponseCommit = { + author: ReposMergeResponseCommitAuthor; + comment_count: number; + committer: ReposMergeResponseCommitCommitter; + message: string; + tree: ReposMergeResponseCommitTree; + url: string; + verification: ReposMergeResponseCommitVerification; + }; + type ReposMergeResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposMergeResponse = { + author: ReposMergeResponseAuthor; + comments_url: string; + commit: ReposMergeResponseCommit; + committer: ReposMergeResponseCommitter; + html_url: string; + node_id: string; + parents: Array; + sha: string; + url: string; + }; + type ReposListUsersWithAccessToProtectedBranchResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListTopicsResponse = { names: Array }; + type ReposListTeamsWithAccessToProtectedBranchResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposListTeamsResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposListTagsResponseItemCommit = { sha: string; url: string }; + type ReposListTagsResponseItem = { + commit: ReposListTagsResponseItemCommit; + name: string; + tarball_url: string; + zipball_url: string; + }; + type ReposListStatusesForRefResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListStatusesForRefResponseItem = { + avatar_url: string; + context: string; + created_at: string; + creator: ReposListStatusesForRefResponseItemCreator; + description: string; + id: number; + node_id: string; + state: string; + target_url: string; + updated_at: string; + url: string; + }; + type ReposListReleasesResponseItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListReleasesResponseItemAssetsItemUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListReleasesResponseItemAssetsItem = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposListReleasesResponseItemAssetsItemUploader; + url: string; + }; + type ReposListReleasesResponseItem = { + assets: Array; + assets_url: string; + author: ReposListReleasesResponseItemAuthor; + body: string; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + node_id: string; + prerelease: boolean; + published_at: string; + tag_name: string; + tarball_url: string; + target_commitish: string; + upload_url: string; + url: string; + zipball_url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemRequestedTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemRequestedReviewersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: ReposListPullRequestsAssociatedWithCommitResponseItemMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemHeadUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemHeadRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemHeadRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemHeadRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposListPullRequestsAssociatedWithCommitResponseItemHeadRepoOwner; + permissions: ReposListPullRequestsAssociatedWithCommitResponseItemHeadRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemHead = { + label: string; + ref: string; + repo: ReposListPullRequestsAssociatedWithCommitResponseItemHeadRepo; + sha: string; + user: ReposListPullRequestsAssociatedWithCommitResponseItemHeadUser; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemBaseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemBaseRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemBaseRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemBaseRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposListPullRequestsAssociatedWithCommitResponseItemBaseRepoOwner; + permissions: ReposListPullRequestsAssociatedWithCommitResponseItemBaseRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemBase = { + label: string; + ref: string; + repo: ReposListPullRequestsAssociatedWithCommitResponseItemBaseRepo; + sha: string; + user: ReposListPullRequestsAssociatedWithCommitResponseItemBaseUser; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksStatuses = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksSelf = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksReviewComments = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksReviewComment = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksIssue = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksHtml = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksCommits = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinksComments = { + href: string; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItemLinks = { + comments: ReposListPullRequestsAssociatedWithCommitResponseItemLinksComments; + commits: ReposListPullRequestsAssociatedWithCommitResponseItemLinksCommits; + html: ReposListPullRequestsAssociatedWithCommitResponseItemLinksHtml; + issue: ReposListPullRequestsAssociatedWithCommitResponseItemLinksIssue; + review_comment: ReposListPullRequestsAssociatedWithCommitResponseItemLinksReviewComment; + review_comments: ReposListPullRequestsAssociatedWithCommitResponseItemLinksReviewComments; + self: ReposListPullRequestsAssociatedWithCommitResponseItemLinksSelf; + statuses: ReposListPullRequestsAssociatedWithCommitResponseItemLinksStatuses; + }; + type ReposListPullRequestsAssociatedWithCommitResponseItem = { + _links: ReposListPullRequestsAssociatedWithCommitResponseItemLinks; + active_lock_reason: string; + assignee: ReposListPullRequestsAssociatedWithCommitResponseItemAssignee; + assignees: Array< + ReposListPullRequestsAssociatedWithCommitResponseItemAssigneesItem + >; + author_association: string; + base: ReposListPullRequestsAssociatedWithCommitResponseItemBase; + body: string; + closed_at: string; + comments_url: string; + commits_url: string; + created_at: string; + diff_url: string; + draft: boolean; + head: ReposListPullRequestsAssociatedWithCommitResponseItemHead; + html_url: string; + id: number; + issue_url: string; + labels: Array< + ReposListPullRequestsAssociatedWithCommitResponseItemLabelsItem + >; + locked: boolean; + merge_commit_sha: string; + merged_at: string; + milestone: ReposListPullRequestsAssociatedWithCommitResponseItemMilestone; + node_id: string; + number: number; + patch_url: string; + requested_reviewers: Array< + ReposListPullRequestsAssociatedWithCommitResponseItemRequestedReviewersItem + >; + requested_teams: Array< + ReposListPullRequestsAssociatedWithCommitResponseItemRequestedTeamsItem + >; + review_comment_url: string; + review_comments_url: string; + state: string; + statuses_url: string; + title: string; + updated_at: string; + url: string; + user: ReposListPullRequestsAssociatedWithCommitResponseItemUser; + }; + type ReposListPublicResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPublicResponseItem = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ReposListPublicResponseItemOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ReposListProtectedBranchUserRestrictionsResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListProtectedBranchTeamRestrictionsResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposListPagesBuildsResponseItemPusher = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListPagesBuildsResponseItemError = { message: null }; + type ReposListPagesBuildsResponseItem = { + commit: string; + created_at: string; + duration: number; + error: ReposListPagesBuildsResponseItemError; + pusher: ReposListPagesBuildsResponseItemPusher; + status: string; + updated_at: string; + url: string; + }; + type ReposListLanguagesResponse = { C: number; Python: number }; + type ReposListInvitationsForAuthenticatedUserResponseItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListInvitationsForAuthenticatedUserResponseItemRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ReposListInvitationsForAuthenticatedUserResponseItemRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ReposListInvitationsForAuthenticatedUserResponseItemInviter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListInvitationsForAuthenticatedUserResponseItemInvitee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListInvitationsForAuthenticatedUserResponseItem = { + created_at: string; + html_url: string; + id: number; + invitee: ReposListInvitationsForAuthenticatedUserResponseItemInvitee; + inviter: ReposListInvitationsForAuthenticatedUserResponseItemInviter; + permissions: string; + repository: ReposListInvitationsForAuthenticatedUserResponseItemRepository; + url: string; + }; + type ReposListInvitationsResponseItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListInvitationsResponseItemRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ReposListInvitationsResponseItemRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ReposListInvitationsResponseItemInviter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListInvitationsResponseItemInvitee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListInvitationsResponseItem = { + created_at: string; + html_url: string; + id: number; + invitee: ReposListInvitationsResponseItemInvitee; + inviter: ReposListInvitationsResponseItemInviter; + permissions: string; + repository: ReposListInvitationsResponseItemRepository; + url: string; + }; + type ReposListHooksResponseItemLastResponse = { + code: null; + message: null; + status: string; + }; + type ReposListHooksResponseItemConfig = { + content_type: string; + insecure_ssl: string; + url: string; + }; + type ReposListHooksResponseItem = { + active: boolean; + config: ReposListHooksResponseItemConfig; + created_at: string; + events: Array; + id: number; + last_response: ReposListHooksResponseItemLastResponse; + name: string; + ping_url: string; + test_url: string; + type: string; + updated_at: string; + url: string; + }; + type ReposListForksResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposListForksResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListForksResponseItemLicense = { + key: string; + name: string; + node_id: string; + spdx_id: string; + url: string; + }; + type ReposListForksResponseItem = { + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + license: ReposListForksResponseItemLicense; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposListForksResponseItemOwner; + permissions: ReposListForksResponseItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposListForOrgResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposListForOrgResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListForOrgResponseItemLicense = { + key: string; + name: string; + node_id: string; + spdx_id: string; + url: string; + }; + type ReposListForOrgResponseItem = { + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + license: ReposListForOrgResponseItemLicense; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposListForOrgResponseItemOwner; + permissions: ReposListForOrgResponseItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposListDownloadsResponseItem = { + content_type: string; + description: string; + download_count: number; + html_url: string; + id: number; + name: string; + size: number; + url: string; + }; + type ReposListDeploymentsResponseItemPayload = { deploy: string }; + type ReposListDeploymentsResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListDeploymentsResponseItem = { + created_at: string; + creator: ReposListDeploymentsResponseItemCreator; + description: string; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: ReposListDeploymentsResponseItemPayload; + production_environment: boolean; + ref: string; + repository_url: string; + sha: string; + statuses_url: string; + task: string; + transient_environment: boolean; + updated_at: string; + url: string; + }; + type ReposListDeploymentStatusesResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListDeploymentStatusesResponseItem = { + created_at: string; + creator: ReposListDeploymentStatusesResponseItemCreator; + deployment_url: string; + description: string; + environment: string; + environment_url: string; + id: number; + log_url: string; + node_id: string; + repository_url: string; + state: string; + target_url: string; + updated_at: string; + url: string; + }; + type ReposListDeployKeysResponseItem = { + created_at: string; + id: number; + key: string; + read_only: boolean; + title: string; + url: string; + verified: boolean; + }; + type ReposListContributorsResponseItem = { + avatar_url: string; + contributions: number; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListCommitsResponseItemParentsItem = { sha: string; url: string }; + type ReposListCommitsResponseItemCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListCommitsResponseItemCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposListCommitsResponseItemCommitTree = { sha: string; url: string }; + type ReposListCommitsResponseItemCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposListCommitsResponseItemCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposListCommitsResponseItemCommit = { + author: ReposListCommitsResponseItemCommitAuthor; + comment_count: number; + committer: ReposListCommitsResponseItemCommitCommitter; + message: string; + tree: ReposListCommitsResponseItemCommitTree; + url: string; + verification: ReposListCommitsResponseItemCommitVerification; + }; + type ReposListCommitsResponseItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListCommitsResponseItem = { + author: ReposListCommitsResponseItemAuthor; + comments_url: string; + commit: ReposListCommitsResponseItemCommit; + committer: ReposListCommitsResponseItemCommitter; + html_url: string; + node_id: string; + parents: Array; + sha: string; + url: string; + }; + type ReposListCommitCommentsResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListCommitCommentsResponseItem = { + body: string; + commit_id: string; + created_at: string; + html_url: string; + id: number; + line: number; + node_id: string; + path: string; + position: number; + updated_at: string; + url: string; + user: ReposListCommitCommentsResponseItemUser; + }; + type ReposListCommentsForCommitResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListCommentsForCommitResponseItem = { + body: string; + commit_id: string; + created_at: string; + html_url: string; + id: number; + line: number; + node_id: string; + path: string; + position: number; + updated_at: string; + url: string; + user: ReposListCommentsForCommitResponseItemUser; + }; + type ReposListCollaboratorsResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposListCollaboratorsResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + permissions: ReposListCollaboratorsResponseItemPermissions; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListBranchesForHeadCommitResponseItemCommit = { + sha: string; + url: string; + }; + type ReposListBranchesForHeadCommitResponseItem = { + commit: ReposListBranchesForHeadCommitResponseItemCommit; + name: string; + protected: string; + }; + type ReposListBranchesResponseItemProtectionRequiredStatusChecks = { + contexts: Array; + enforcement_level: string; + }; + type ReposListBranchesResponseItemProtection = { + enabled: boolean; + required_status_checks: ReposListBranchesResponseItemProtectionRequiredStatusChecks; + }; + type ReposListBranchesResponseItemCommit = { sha: string; url: string }; + type ReposListBranchesResponseItem = { + commit: ReposListBranchesResponseItemCommit; + name: string; + protected: boolean; + protection: ReposListBranchesResponseItemProtection; + protection_url: string; + }; + type ReposListAssetsForReleaseResponseItemUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposListAssetsForReleaseResponseItem = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposListAssetsForReleaseResponseItemUploader; + url: string; + }; + type ReposListAppsWithAccessToProtectedBranchResponseItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposListAppsWithAccessToProtectedBranchResponseItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposListAppsWithAccessToProtectedBranchResponseItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposListAppsWithAccessToProtectedBranchResponseItemOwner; + permissions: ReposListAppsWithAccessToProtectedBranchResponseItemPermissions; + slug: string; + updated_at: string; + }; + type ReposGetViewsResponseViewsItem = { + count: number; + timestamp: string; + uniques: number; + }; + type ReposGetViewsResponse = { + count: number; + uniques: number; + views: Array; + }; + type ReposGetUsersWithAccessToProtectedBranchResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetTopReferrersResponseItem = { + count: number; + referrer: string; + uniques: number; + }; + type ReposGetTopPathsResponseItem = { + count: number; + path: string; + title: string; + uniques: number; + }; + type ReposGetTeamsWithAccessToProtectedBranchResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposGetReleaseByTagResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetReleaseByTagResponseAssetsItemUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetReleaseByTagResponseAssetsItem = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposGetReleaseByTagResponseAssetsItemUploader; + url: string; + }; + type ReposGetReleaseByTagResponse = { + assets: Array; + assets_url: string; + author: ReposGetReleaseByTagResponseAuthor; + body: string; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + node_id: string; + prerelease: boolean; + published_at: string; + tag_name: string; + tarball_url: string; + target_commitish: string; + upload_url: string; + url: string; + zipball_url: string; + }; + type ReposGetReleaseAssetResponseUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetReleaseAssetResponse = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposGetReleaseAssetResponseUploader; + url: string; + }; + type ReposGetReleaseResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetReleaseResponseAssetsItemUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetReleaseResponseAssetsItem = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposGetReleaseResponseAssetsItemUploader; + url: string; + }; + type ReposGetReleaseResponse = { + assets: Array; + assets_url: string; + author: ReposGetReleaseResponseAuthor; + body: string; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + node_id: string; + prerelease: boolean; + published_at: string; + tag_name: string; + tarball_url: string; + target_commitish: string; + upload_url: string; + url: string; + zipball_url: string; + }; + type ReposGetReadmeResponseLinks = { + git: string; + html: string; + self: string; + }; + type ReposGetReadmeResponse = { + _links: ReposGetReadmeResponseLinks; + content: string; + download_url: string; + encoding: string; + git_url: string; + html_url: string; + name: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + }; + type ReposGetProtectedBranchRestrictionsResponseUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetProtectedBranchRestrictionsResponseTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposGetProtectedBranchRestrictionsResponseAppsItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposGetProtectedBranchRestrictionsResponseAppsItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposGetProtectedBranchRestrictionsResponseAppsItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposGetProtectedBranchRestrictionsResponseAppsItemOwner; + permissions: ReposGetProtectedBranchRestrictionsResponseAppsItemPermissions; + slug: string; + updated_at: string; + }; + type ReposGetProtectedBranchRestrictionsResponse = { + apps: Array; + apps_url: string; + teams: Array; + teams_url: string; + url: string; + users: Array; + users_url: string; + }; + type ReposGetProtectedBranchRequiredStatusChecksResponse = { + contexts: Array; + contexts_url: string; + strict: boolean; + url: string; + }; + type ReposGetProtectedBranchRequiredSignaturesResponse = { + enabled: boolean; + url: string; + }; + type ReposGetProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposGetProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictions = { + teams: Array< + ReposGetProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsTeamsItem + >; + teams_url: string; + url: string; + users: Array< + ReposGetProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictionsUsersItem + >; + users_url: string; + }; + type ReposGetProtectedBranchPullRequestReviewEnforcementResponse = { + dismiss_stale_reviews: boolean; + dismissal_restrictions: ReposGetProtectedBranchPullRequestReviewEnforcementResponseDismissalRestrictions; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + url: string; + }; + type ReposGetProtectedBranchAdminEnforcementResponse = { + enabled: boolean; + url: string; + }; + type ReposGetParticipationStatsResponse = { + all: Array; + owner: Array; + }; + type ReposGetPagesBuildResponsePusher = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetPagesBuildResponseError = { message: null }; + type ReposGetPagesBuildResponse = { + commit: string; + created_at: string; + duration: number; + error: ReposGetPagesBuildResponseError; + pusher: ReposGetPagesBuildResponsePusher; + status: string; + updated_at: string; + url: string; + }; + type ReposGetPagesResponseSource = { branch: string; directory: string }; + type ReposGetPagesResponse = { + cname: string; + custom_404: boolean; + html_url: string; + source: ReposGetPagesResponseSource; + status: string; + url: string; + }; + type ReposGetLatestReleaseResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetLatestReleaseResponseAssetsItemUploader = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetLatestReleaseResponseAssetsItem = { + browser_download_url: string; + content_type: string; + created_at: string; + download_count: number; + id: number; + label: string; + name: string; + node_id: string; + size: number; + state: string; + updated_at: string; + uploader: ReposGetLatestReleaseResponseAssetsItemUploader; + url: string; + }; + type ReposGetLatestReleaseResponse = { + assets: Array; + assets_url: string; + author: ReposGetLatestReleaseResponseAuthor; + body: string; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + node_id: string; + prerelease: boolean; + published_at: string; + tag_name: string; + tarball_url: string; + target_commitish: string; + upload_url: string; + url: string; + zipball_url: string; + }; + type ReposGetLatestPagesBuildResponsePusher = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetLatestPagesBuildResponseError = { message: null }; + type ReposGetLatestPagesBuildResponse = { + commit: string; + created_at: string; + duration: number; + error: ReposGetLatestPagesBuildResponseError; + pusher: ReposGetLatestPagesBuildResponsePusher; + status: string; + updated_at: string; + url: string; + }; + type ReposGetHookResponseLastResponse = { + code: null; + message: null; + status: string; + }; + type ReposGetHookResponseConfig = { + content_type: string; + insecure_ssl: string; + url: string; + }; + type ReposGetHookResponse = { + active: boolean; + config: ReposGetHookResponseConfig; + created_at: string; + events: Array; + id: number; + last_response: ReposGetHookResponseLastResponse; + name: string; + ping_url: string; + test_url: string; + type: string; + updated_at: string; + url: string; + }; + type ReposGetDownloadResponse = { + content_type: string; + description: string; + download_count: number; + html_url: string; + id: number; + name: string; + size: number; + url: string; + }; + type ReposGetDeploymentStatusResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetDeploymentStatusResponse = { + created_at: string; + creator: ReposGetDeploymentStatusResponseCreator; + deployment_url: string; + description: string; + environment: string; + environment_url: string; + id: number; + log_url: string; + node_id: string; + repository_url: string; + state: string; + target_url: string; + updated_at: string; + url: string; + }; + type ReposGetDeploymentResponsePayload = { deploy: string }; + type ReposGetDeploymentResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetDeploymentResponse = { + created_at: string; + creator: ReposGetDeploymentResponseCreator; + description: string; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: ReposGetDeploymentResponsePayload; + production_environment: boolean; + ref: string; + repository_url: string; + sha: string; + statuses_url: string; + task: string; + transient_environment: boolean; + updated_at: string; + url: string; + }; + type ReposGetDeployKeyResponse = { + created_at: string; + id: number; + key: string; + read_only: boolean; + title: string; + url: string; + verified: boolean; + }; + type ReposGetContributorsStatsResponseItemWeeksItem = { + a: number; + c: number; + d: number; + w: string; + }; + type ReposGetContributorsStatsResponseItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetContributorsStatsResponseItem = { + author: ReposGetContributorsStatsResponseItemAuthor; + total: number; + weeks: Array; + }; + type ReposGetContentsResponseItemLinks = { + git: string; + html: string; + self: string; + }; + type ReposGetContentsResponseItem = { + _links: ReposGetContentsResponseItemLinks; + download_url: string | null; + git_url: string; + html_url: string; + name: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + }; + type ReposGetContentsResponseLinks = { + git: string; + html: string; + self: string; + }; + type ReposGetContentsResponse = + | { + _links: ReposGetContentsResponseLinks; + content?: string; + download_url: string | null; + encoding?: string; + git_url: string; + html_url: string; + name: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + target?: string; + submodule_git_url?: string; + } + | Array; + type ReposGetCommitCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetCommitCommentResponse = { + body: string; + commit_id: string; + created_at: string; + html_url: string; + id: number; + line: number; + node_id: string; + path: string; + position: number; + updated_at: string; + url: string; + user: ReposGetCommitCommentResponseUser; + }; + type ReposGetCommitActivityStatsResponseItem = { + days: Array; + total: number; + week: number; + }; + type ReposGetCommitResponseStats = { + additions: number; + deletions: number; + total: number; + }; + type ReposGetCommitResponseParentsItem = { sha: string; url: string }; + type ReposGetCommitResponseFilesItem = { + additions: number; + blob_url: string; + changes: number; + deletions: number; + filename: string; + patch: string; + raw_url: string; + status: string; + }; + type ReposGetCommitResponseCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetCommitResponseCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposGetCommitResponseCommitTree = { sha: string; url: string }; + type ReposGetCommitResponseCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposGetCommitResponseCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposGetCommitResponseCommit = { + author: ReposGetCommitResponseCommitAuthor; + comment_count: number; + committer: ReposGetCommitResponseCommitCommitter; + message: string; + tree: ReposGetCommitResponseCommitTree; + url: string; + verification: ReposGetCommitResponseCommitVerification; + }; + type ReposGetCommitResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetCommitResponse = { + author: ReposGetCommitResponseAuthor; + comments_url: string; + commit: ReposGetCommitResponseCommit; + committer: ReposGetCommitResponseCommitter; + files: Array; + html_url: string; + node_id: string; + parents: Array; + sha: string; + stats: ReposGetCommitResponseStats; + url: string; + }; + type ReposGetCombinedStatusForRefResponseStatusesItem = { + avatar_url: string; + context: string; + created_at: string; + description: string; + id: number; + node_id: string; + state: string; + target_url: string; + updated_at: string; + url: string; + }; + type ReposGetCombinedStatusForRefResponseRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetCombinedStatusForRefResponseRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ReposGetCombinedStatusForRefResponseRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ReposGetCombinedStatusForRefResponse = { + commit_url: string; + repository: ReposGetCombinedStatusForRefResponseRepository; + sha: string; + state: string; + statuses: Array; + total_count: number; + url: string; + }; + type ReposGetCollaboratorPermissionLevelResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetCollaboratorPermissionLevelResponse = { + permission: string; + user: ReposGetCollaboratorPermissionLevelResponseUser; + }; + type ReposGetClonesResponseClonesItem = { + count: number; + timestamp: string; + uniques: number; + }; + type ReposGetClonesResponse = { + clones: Array; + count: number; + uniques: number; + }; + type ReposGetBranchProtectionResponseRestrictionsUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetBranchProtectionResponseRestrictionsTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposGetBranchProtectionResponseRestrictionsAppsItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposGetBranchProtectionResponseRestrictionsAppsItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposGetBranchProtectionResponseRestrictionsAppsItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposGetBranchProtectionResponseRestrictionsAppsItemOwner; + permissions: ReposGetBranchProtectionResponseRestrictionsAppsItemPermissions; + slug: string; + updated_at: string; + }; + type ReposGetBranchProtectionResponseRestrictions = { + apps: Array; + apps_url: string; + teams: Array; + teams_url: string; + url: string; + users: Array; + users_url: string; + }; + type ReposGetBranchProtectionResponseRequiredStatusChecks = { + contexts: Array; + contexts_url: string; + strict: boolean; + url: string; + }; + type ReposGetBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposGetBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictions = { + teams: Array< + ReposGetBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsTeamsItem + >; + teams_url: string; + url: string; + users: Array< + ReposGetBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictionsUsersItem + >; + users_url: string; + }; + type ReposGetBranchProtectionResponseRequiredPullRequestReviews = { + dismiss_stale_reviews: boolean; + dismissal_restrictions: ReposGetBranchProtectionResponseRequiredPullRequestReviewsDismissalRestrictions; + require_code_owner_reviews: boolean; + required_approving_review_count: number; + url: string; + }; + type ReposGetBranchProtectionResponseEnforceAdmins = { + enabled: boolean; + url: string; + }; + type ReposGetBranchProtectionResponse = { + enforce_admins: ReposGetBranchProtectionResponseEnforceAdmins; + required_pull_request_reviews: ReposGetBranchProtectionResponseRequiredPullRequestReviews; + required_status_checks: ReposGetBranchProtectionResponseRequiredStatusChecks; + restrictions: ReposGetBranchProtectionResponseRestrictions; + url: string; + }; + type ReposGetBranchResponseProtectionRequiredStatusChecks = { + contexts: Array; + enforcement_level: string; + }; + type ReposGetBranchResponseProtection = { + enabled: boolean; + required_status_checks: ReposGetBranchResponseProtectionRequiredStatusChecks; + }; + type ReposGetBranchResponseCommitParentsItem = { sha: string; url: string }; + type ReposGetBranchResponseCommitCommitter = { + avatar_url: string; + gravatar_id: string; + id: number; + login: string; + url: string; + }; + type ReposGetBranchResponseCommitCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposGetBranchResponseCommitCommitTree = { sha: string; url: string }; + type ReposGetBranchResponseCommitCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposGetBranchResponseCommitCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposGetBranchResponseCommitCommit = { + author: ReposGetBranchResponseCommitCommitAuthor; + committer: ReposGetBranchResponseCommitCommitCommitter; + message: string; + tree: ReposGetBranchResponseCommitCommitTree; + url: string; + verification: ReposGetBranchResponseCommitCommitVerification; + }; + type ReposGetBranchResponseCommitAuthor = { + avatar_url: string; + gravatar_id: string; + id: number; + login: string; + url: string; + }; + type ReposGetBranchResponseCommit = { + author: ReposGetBranchResponseCommitAuthor; + commit: ReposGetBranchResponseCommitCommit; + committer: ReposGetBranchResponseCommitCommitter; + node_id: string; + parents: Array; + sha: string; + url: string; + }; + type ReposGetBranchResponseLinks = { html: string; self: string }; + type ReposGetBranchResponse = { + _links: ReposGetBranchResponseLinks; + commit: ReposGetBranchResponseCommit; + name: string; + protected: boolean; + protection: ReposGetBranchResponseProtection; + protection_url: string; + }; + type ReposGetAppsWithAccessToProtectedBranchResponseItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposGetAppsWithAccessToProtectedBranchResponseItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposGetAppsWithAccessToProtectedBranchResponseItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposGetAppsWithAccessToProtectedBranchResponseItemOwner; + permissions: ReposGetAppsWithAccessToProtectedBranchResponseItemPermissions; + slug: string; + updated_at: string; + }; + type ReposGetResponseSourcePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposGetResponseSourceOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetResponseSource = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposGetResponseSourceOwner; + permissions: ReposGetResponseSourcePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposGetResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposGetResponseParentPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposGetResponseParentOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetResponseParent = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposGetResponseParentOwner; + permissions: ReposGetResponseParentPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposGetResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetResponseOrganization = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposGetResponseLicense = { + key: string; + name: string; + node_id: string; + spdx_id: string; + url: string; + }; + type ReposGetResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + license: ReposGetResponseLicense; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + organization: ReposGetResponseOrganization; + owner: ReposGetResponseOwner; + parent: ReposGetResponseParent; + permissions: ReposGetResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + source: ReposGetResponseSource; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposEnablePagesSiteResponseSource = { + branch: string; + directory: string; + }; + type ReposEnablePagesSiteResponse = { + cname: string; + custom_404: boolean; + html_url: string; + source: ReposEnablePagesSiteResponseSource; + status: string; + url: string; + }; + type ReposDeleteFileResponseCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposDeleteFileResponseCommitTree = { sha: string; url: string }; + type ReposDeleteFileResponseCommitParentsItem = { + html_url: string; + sha: string; + url: string; + }; + type ReposDeleteFileResponseCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposDeleteFileResponseCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposDeleteFileResponseCommit = { + author: ReposDeleteFileResponseCommitAuthor; + committer: ReposDeleteFileResponseCommitCommitter; + html_url: string; + message: string; + node_id: string; + parents: Array; + sha: string; + tree: ReposDeleteFileResponseCommitTree; + url: string; + verification: ReposDeleteFileResponseCommitVerification; + }; + type ReposDeleteFileResponse = { + commit: ReposDeleteFileResponseCommit; + content: null; + }; + type ReposDeleteResponse = { documentation_url: string; message: string }; + type ReposCreateUsingTemplateResponseTemplateRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposCreateUsingTemplateResponseTemplateRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateUsingTemplateResponseTemplateRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposCreateUsingTemplateResponseTemplateRepositoryOwner; + permissions: ReposCreateUsingTemplateResponseTemplateRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposCreateUsingTemplateResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposCreateUsingTemplateResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateUsingTemplateResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposCreateUsingTemplateResponseOwner; + permissions: ReposCreateUsingTemplateResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: ReposCreateUsingTemplateResponseTemplateRepository; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposCreateStatusResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateStatusResponse = { + avatar_url: string; + context: string; + created_at: string; + creator: ReposCreateStatusResponseCreator; + description: string; + id: number; + node_id: string; + state: string; + target_url: string; + updated_at: string; + url: string; + }; + type ReposCreateReleaseResponseAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateReleaseResponse = { + assets: Array; + assets_url: string; + author: ReposCreateReleaseResponseAuthor; + body: string; + created_at: string; + draft: boolean; + html_url: string; + id: number; + name: string; + node_id: string; + prerelease: boolean; + published_at: string; + tag_name: string; + tarball_url: string; + target_commitish: string; + upload_url: string; + url: string; + zipball_url: string; + }; + type ReposCreateOrUpdateFileResponseContentLinks = { + git: string; + html: string; + self: string; + }; + type ReposCreateOrUpdateFileResponseContent = { + _links: ReposCreateOrUpdateFileResponseContentLinks; + download_url: string; + git_url: string; + html_url: string; + name: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + }; + type ReposCreateOrUpdateFileResponseCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposCreateOrUpdateFileResponseCommitTree = { sha: string; url: string }; + type ReposCreateOrUpdateFileResponseCommitParentsItem = { + html_url: string; + sha: string; + url: string; + }; + type ReposCreateOrUpdateFileResponseCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposCreateOrUpdateFileResponseCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposCreateOrUpdateFileResponseCommit = { + author: ReposCreateOrUpdateFileResponseCommitAuthor; + committer: ReposCreateOrUpdateFileResponseCommitCommitter; + html_url: string; + message: string; + node_id: string; + parents: Array; + sha: string; + tree: ReposCreateOrUpdateFileResponseCommitTree; + url: string; + verification: ReposCreateOrUpdateFileResponseCommitVerification; + }; + type ReposCreateOrUpdateFileResponse = { + commit: ReposCreateOrUpdateFileResponseCommit; + content: ReposCreateOrUpdateFileResponseContent; + }; + type ReposCreateInOrgResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposCreateInOrgResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateInOrgResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposCreateInOrgResponseOwner; + permissions: ReposCreateInOrgResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposCreateHookResponseLastResponse = { + code: null; + message: null; + status: string; + }; + type ReposCreateHookResponseConfig = { + content_type: string; + insecure_ssl: string; + url: string; + }; + type ReposCreateHookResponse = { + active: boolean; + config: ReposCreateHookResponseConfig; + created_at: string; + events: Array; + id: number; + last_response: ReposCreateHookResponseLastResponse; + name: string; + ping_url: string; + test_url: string; + type: string; + updated_at: string; + url: string; + }; + type ReposCreateForkResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposCreateForkResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateForkResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposCreateForkResponseOwner; + permissions: ReposCreateForkResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposCreateForAuthenticatedUserResponsePermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ReposCreateForAuthenticatedUserResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateForAuthenticatedUserResponse = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ReposCreateForAuthenticatedUserResponseOwner; + permissions: ReposCreateForAuthenticatedUserResponsePermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ReposCreateFileResponseContentLinks = { + git: string; + html: string; + self: string; + }; + type ReposCreateFileResponseContent = { + _links: ReposCreateFileResponseContentLinks; + download_url: string; + git_url: string; + html_url: string; + name: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + }; + type ReposCreateFileResponseCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposCreateFileResponseCommitTree = { sha: string; url: string }; + type ReposCreateFileResponseCommitParentsItem = { + html_url: string; + sha: string; + url: string; + }; + type ReposCreateFileResponseCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposCreateFileResponseCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposCreateFileResponseCommit = { + author: ReposCreateFileResponseCommitAuthor; + committer: ReposCreateFileResponseCommitCommitter; + html_url: string; + message: string; + node_id: string; + parents: Array; + sha: string; + tree: ReposCreateFileResponseCommitTree; + url: string; + verification: ReposCreateFileResponseCommitVerification; + }; + type ReposCreateFileResponse = { + commit: ReposCreateFileResponseCommit; + content: ReposCreateFileResponseContent; + }; + type ReposCreateDeploymentStatusResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateDeploymentStatusResponse = { + created_at: string; + creator: ReposCreateDeploymentStatusResponseCreator; + deployment_url: string; + description: string; + environment: string; + environment_url: string; + id: number; + log_url: string; + node_id: string; + repository_url: string; + state: string; + target_url: string; + updated_at: string; + url: string; + }; + type ReposCreateDeploymentResponsePayload = { deploy: string }; + type ReposCreateDeploymentResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateDeploymentResponse = { + created_at: string; + creator: ReposCreateDeploymentResponseCreator; + description: string; + environment: string; + id: number; + node_id: string; + original_environment: string; + payload: ReposCreateDeploymentResponsePayload; + production_environment: boolean; + ref: string; + repository_url: string; + sha: string; + statuses_url: string; + task: string; + transient_environment: boolean; + updated_at: string; + url: string; + }; + type ReposCreateCommitCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCreateCommitCommentResponse = { + body: string; + commit_id: string; + created_at: string; + html_url: string; + id: number; + line: number; + node_id: string; + path: string; + position: number; + updated_at: string; + url: string; + user: ReposCreateCommitCommentResponseUser; + }; + type ReposCompareCommitsResponseMergeBaseCommitParentsItem = { + sha: string; + url: string; + }; + type ReposCompareCommitsResponseMergeBaseCommitCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCompareCommitsResponseMergeBaseCommitCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposCompareCommitsResponseMergeBaseCommitCommitTree = { + sha: string; + url: string; + }; + type ReposCompareCommitsResponseMergeBaseCommitCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposCompareCommitsResponseMergeBaseCommitCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposCompareCommitsResponseMergeBaseCommitCommit = { + author: ReposCompareCommitsResponseMergeBaseCommitCommitAuthor; + comment_count: number; + committer: ReposCompareCommitsResponseMergeBaseCommitCommitCommitter; + message: string; + tree: ReposCompareCommitsResponseMergeBaseCommitCommitTree; + url: string; + verification: ReposCompareCommitsResponseMergeBaseCommitCommitVerification; + }; + type ReposCompareCommitsResponseMergeBaseCommitAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCompareCommitsResponseMergeBaseCommit = { + author: ReposCompareCommitsResponseMergeBaseCommitAuthor; + comments_url: string; + commit: ReposCompareCommitsResponseMergeBaseCommitCommit; + committer: ReposCompareCommitsResponseMergeBaseCommitCommitter; + html_url: string; + node_id: string; + parents: Array; + sha: string; + url: string; + }; + type ReposCompareCommitsResponseFilesItem = { + additions: number; + blob_url: string; + changes: number; + contents_url: string; + deletions: number; + filename: string; + patch: string; + raw_url: string; + sha: string; + status: string; + }; + type ReposCompareCommitsResponseCommitsItemParentsItem = { + sha: string; + url: string; + }; + type ReposCompareCommitsResponseCommitsItemCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCompareCommitsResponseCommitsItemCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposCompareCommitsResponseCommitsItemCommitTree = { + sha: string; + url: string; + }; + type ReposCompareCommitsResponseCommitsItemCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposCompareCommitsResponseCommitsItemCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposCompareCommitsResponseCommitsItemCommit = { + author: ReposCompareCommitsResponseCommitsItemCommitAuthor; + comment_count: number; + committer: ReposCompareCommitsResponseCommitsItemCommitCommitter; + message: string; + tree: ReposCompareCommitsResponseCommitsItemCommitTree; + url: string; + verification: ReposCompareCommitsResponseCommitsItemCommitVerification; + }; + type ReposCompareCommitsResponseCommitsItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCompareCommitsResponseCommitsItem = { + author: ReposCompareCommitsResponseCommitsItemAuthor; + comments_url: string; + commit: ReposCompareCommitsResponseCommitsItemCommit; + committer: ReposCompareCommitsResponseCommitsItemCommitter; + html_url: string; + node_id: string; + parents: Array; + sha: string; + url: string; + }; + type ReposCompareCommitsResponseBaseCommitParentsItem = { + sha: string; + url: string; + }; + type ReposCompareCommitsResponseBaseCommitCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCompareCommitsResponseBaseCommitCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type ReposCompareCommitsResponseBaseCommitCommitTree = { + sha: string; + url: string; + }; + type ReposCompareCommitsResponseBaseCommitCommitCommitter = { + date: string; + email: string; + name: string; + }; + type ReposCompareCommitsResponseBaseCommitCommitAuthor = { + date: string; + email: string; + name: string; + }; + type ReposCompareCommitsResponseBaseCommitCommit = { + author: ReposCompareCommitsResponseBaseCommitCommitAuthor; + comment_count: number; + committer: ReposCompareCommitsResponseBaseCommitCommitCommitter; + message: string; + tree: ReposCompareCommitsResponseBaseCommitCommitTree; + url: string; + verification: ReposCompareCommitsResponseBaseCommitCommitVerification; + }; + type ReposCompareCommitsResponseBaseCommitAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposCompareCommitsResponseBaseCommit = { + author: ReposCompareCommitsResponseBaseCommitAuthor; + comments_url: string; + commit: ReposCompareCommitsResponseBaseCommitCommit; + committer: ReposCompareCommitsResponseBaseCommitCommitter; + html_url: string; + node_id: string; + parents: Array; + sha: string; + url: string; + }; + type ReposCompareCommitsResponse = { + ahead_by: number; + base_commit: ReposCompareCommitsResponseBaseCommit; + behind_by: number; + commits: Array; + diff_url: string; + files: Array; + html_url: string; + merge_base_commit: ReposCompareCommitsResponseMergeBaseCommit; + patch_url: string; + permalink_url: string; + status: string; + total_commits: number; + url: string; + }; + type ReposAddProtectedBranchUserRestrictionsResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposAddProtectedBranchTeamRestrictionsResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type ReposAddProtectedBranchRequiredSignaturesResponse = { + enabled: boolean; + url: string; + }; + type ReposAddProtectedBranchAppRestrictionsResponseItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ReposAddProtectedBranchAppRestrictionsResponseItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ReposAddProtectedBranchAppRestrictionsResponseItem = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ReposAddProtectedBranchAppRestrictionsResponseItemOwner; + permissions: ReposAddProtectedBranchAppRestrictionsResponseItemPermissions; + slug: string; + updated_at: string; + }; + type ReposAddProtectedBranchAdminEnforcementResponse = { + enabled: boolean; + url: string; + }; + type ReposAddDeployKeyResponse = { + created_at: string; + id: number; + key: string; + read_only: boolean; + title: string; + url: string; + verified: boolean; + }; + type ReposAddCollaboratorResponseRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposAddCollaboratorResponseRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ReposAddCollaboratorResponseRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ReposAddCollaboratorResponseInviter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposAddCollaboratorResponseInvitee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReposAddCollaboratorResponse = { + created_at: string; + html_url: string; + id: number; + invitee: ReposAddCollaboratorResponseInvitee; + inviter: ReposAddCollaboratorResponseInviter; + permissions: string; + repository: ReposAddCollaboratorResponseRepository; + url: string; + }; + type ReactionsListForTeamDiscussionCommentResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsListForTeamDiscussionCommentResponseItem = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsListForTeamDiscussionCommentResponseItemUser; + }; + type ReactionsListForTeamDiscussionResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsListForTeamDiscussionResponseItem = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsListForTeamDiscussionResponseItemUser; + }; + type ReactionsListForPullRequestReviewCommentResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsListForPullRequestReviewCommentResponseItem = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsListForPullRequestReviewCommentResponseItemUser; + }; + type ReactionsListForIssueCommentResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsListForIssueCommentResponseItem = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsListForIssueCommentResponseItemUser; + }; + type ReactionsListForIssueResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsListForIssueResponseItem = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsListForIssueResponseItemUser; + }; + type ReactionsListForCommitCommentResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsListForCommitCommentResponseItem = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsListForCommitCommentResponseItemUser; + }; + type ReactionsCreateForTeamDiscussionCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsCreateForTeamDiscussionCommentResponse = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsCreateForTeamDiscussionCommentResponseUser; + }; + type ReactionsCreateForTeamDiscussionResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsCreateForTeamDiscussionResponse = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsCreateForTeamDiscussionResponseUser; + }; + type ReactionsCreateForPullRequestReviewCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsCreateForPullRequestReviewCommentResponse = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsCreateForPullRequestReviewCommentResponseUser; + }; + type ReactionsCreateForIssueCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsCreateForIssueCommentResponse = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsCreateForIssueCommentResponseUser; + }; + type ReactionsCreateForIssueResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsCreateForIssueResponse = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsCreateForIssueResponseUser; + }; + type ReactionsCreateForCommitCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ReactionsCreateForCommitCommentResponse = { + content: string; + created_at: string; + id: number; + node_id: string; + user: ReactionsCreateForCommitCommentResponseUser; + }; + type RateLimitGetResponseResourcesSearch = { + limit: number; + remaining: number; + reset: number; + }; + type RateLimitGetResponseResourcesIntegrationManifest = { + limit: number; + remaining: number; + reset: number; + }; + type RateLimitGetResponseResourcesGraphql = { + limit: number; + remaining: number; + reset: number; + }; + type RateLimitGetResponseResourcesCore = { + limit: number; + remaining: number; + reset: number; + }; + type RateLimitGetResponseResources = { + core: RateLimitGetResponseResourcesCore; + graphql: RateLimitGetResponseResourcesGraphql; + integration_manifest: RateLimitGetResponseResourcesIntegrationManifest; + search: RateLimitGetResponseResourcesSearch; + }; + type RateLimitGetResponseRate = { + limit: number; + remaining: number; + reset: number; + }; + type RateLimitGetResponse = { + rate: RateLimitGetResponseRate; + resources: RateLimitGetResponseResources; + }; + type PullsUpdateReviewResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateReviewResponseLinksPullRequest = { href: string }; + type PullsUpdateReviewResponseLinksHtml = { href: string }; + type PullsUpdateReviewResponseLinks = { + html: PullsUpdateReviewResponseLinksHtml; + pull_request: PullsUpdateReviewResponseLinksPullRequest; + }; + type PullsUpdateReviewResponse = { + _links: PullsUpdateReviewResponseLinks; + body: string; + commit_id: string; + html_url: string; + id: number; + node_id: string; + pull_request_url: string; + state: string; + user: PullsUpdateReviewResponseUser; + }; + type PullsUpdateCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateCommentResponseLinksSelf = { href: string }; + type PullsUpdateCommentResponseLinksPullRequest = { href: string }; + type PullsUpdateCommentResponseLinksHtml = { href: string }; + type PullsUpdateCommentResponseLinks = { + html: PullsUpdateCommentResponseLinksHtml; + pull_request: PullsUpdateCommentResponseLinksPullRequest; + self: PullsUpdateCommentResponseLinksSelf; + }; + type PullsUpdateCommentResponse = { + _links: PullsUpdateCommentResponseLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + in_reply_to_id: number; + line: number; + node_id: string; + original_commit_id: string; + original_line: number; + original_position: number; + original_start_line: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + side: string; + start_line: number; + start_side: string; + updated_at: string; + url: string; + user: PullsUpdateCommentResponseUser; + }; + type PullsUpdateBranchResponse = { message: string; url: string }; + type PullsUpdateResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseRequestedTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type PullsUpdateResponseRequestedReviewersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: PullsUpdateResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type PullsUpdateResponseMergedBy = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type PullsUpdateResponseHeadUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseHeadRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsUpdateResponseHeadRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseHeadRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsUpdateResponseHeadRepoOwner; + permissions: PullsUpdateResponseHeadRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsUpdateResponseHead = { + label: string; + ref: string; + repo: PullsUpdateResponseHeadRepo; + sha: string; + user: PullsUpdateResponseHeadUser; + }; + type PullsUpdateResponseBaseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseBaseRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsUpdateResponseBaseRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseBaseRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsUpdateResponseBaseRepoOwner; + permissions: PullsUpdateResponseBaseRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsUpdateResponseBase = { + label: string; + ref: string; + repo: PullsUpdateResponseBaseRepo; + sha: string; + user: PullsUpdateResponseBaseUser; + }; + type PullsUpdateResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsUpdateResponseLinksStatuses = { href: string }; + type PullsUpdateResponseLinksSelf = { href: string }; + type PullsUpdateResponseLinksReviewComments = { href: string }; + type PullsUpdateResponseLinksReviewComment = { href: string }; + type PullsUpdateResponseLinksIssue = { href: string }; + type PullsUpdateResponseLinksHtml = { href: string }; + type PullsUpdateResponseLinksCommits = { href: string }; + type PullsUpdateResponseLinksComments = { href: string }; + type PullsUpdateResponseLinks = { + comments: PullsUpdateResponseLinksComments; + commits: PullsUpdateResponseLinksCommits; + html: PullsUpdateResponseLinksHtml; + issue: PullsUpdateResponseLinksIssue; + review_comment: PullsUpdateResponseLinksReviewComment; + review_comments: PullsUpdateResponseLinksReviewComments; + self: PullsUpdateResponseLinksSelf; + statuses: PullsUpdateResponseLinksStatuses; + }; + type PullsUpdateResponse = { + _links: PullsUpdateResponseLinks; + active_lock_reason: string; + additions: number; + assignee: PullsUpdateResponseAssignee; + assignees: Array; + author_association: string; + base: PullsUpdateResponseBase; + body: string; + changed_files: number; + closed_at: string; + comments: number; + comments_url: string; + commits: number; + commits_url: string; + created_at: string; + deletions: number; + diff_url: string; + draft: boolean; + head: PullsUpdateResponseHead; + html_url: string; + id: number; + issue_url: string; + labels: Array; + locked: boolean; + maintainer_can_modify: boolean; + merge_commit_sha: string; + mergeable: boolean; + mergeable_state: string; + merged: boolean; + merged_at: string; + merged_by: PullsUpdateResponseMergedBy; + milestone: PullsUpdateResponseMilestone; + node_id: string; + number: number; + patch_url: string; + rebaseable: boolean; + requested_reviewers: Array; + requested_teams: Array; + review_comment_url: string; + review_comments: number; + review_comments_url: string; + state: string; + statuses_url: string; + title: string; + updated_at: string; + url: string; + user: PullsUpdateResponseUser; + }; + type PullsSubmitReviewResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsSubmitReviewResponseLinksPullRequest = { href: string }; + type PullsSubmitReviewResponseLinksHtml = { href: string }; + type PullsSubmitReviewResponseLinks = { + html: PullsSubmitReviewResponseLinksHtml; + pull_request: PullsSubmitReviewResponseLinksPullRequest; + }; + type PullsSubmitReviewResponse = { + _links: PullsSubmitReviewResponseLinks; + body: string; + commit_id: string; + html_url: string; + id: number; + node_id: string; + pull_request_url: string; + state: string; + user: PullsSubmitReviewResponseUser; + }; + type PullsMergeResponse = { merged: boolean; message: string; sha: string }; + type PullsListReviewsResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListReviewsResponseItemLinksPullRequest = { href: string }; + type PullsListReviewsResponseItemLinksHtml = { href: string }; + type PullsListReviewsResponseItemLinks = { + html: PullsListReviewsResponseItemLinksHtml; + pull_request: PullsListReviewsResponseItemLinksPullRequest; + }; + type PullsListReviewsResponseItem = { + _links: PullsListReviewsResponseItemLinks; + body: string; + commit_id: string; + html_url: string; + id: number; + node_id: string; + pull_request_url: string; + state: string; + user: PullsListReviewsResponseItemUser; + }; + type PullsListReviewRequestsResponseUsersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListReviewRequestsResponseTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type PullsListReviewRequestsResponse = { + teams: Array; + users: Array; + }; + type PullsListFilesResponseItem = { + additions: number; + blob_url: string; + changes: number; + contents_url: string; + deletions: number; + filename: string; + patch: string; + raw_url: string; + sha: string; + status: string; + }; + type PullsListCommitsResponseItemParentsItem = { sha: string; url: string }; + type PullsListCommitsResponseItemCommitter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListCommitsResponseItemCommitVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type PullsListCommitsResponseItemCommitTree = { sha: string; url: string }; + type PullsListCommitsResponseItemCommitCommitter = { + date: string; + email: string; + name: string; + }; + type PullsListCommitsResponseItemCommitAuthor = { + date: string; + email: string; + name: string; + }; + type PullsListCommitsResponseItemCommit = { + author: PullsListCommitsResponseItemCommitAuthor; + comment_count: number; + committer: PullsListCommitsResponseItemCommitCommitter; + message: string; + tree: PullsListCommitsResponseItemCommitTree; + url: string; + verification: PullsListCommitsResponseItemCommitVerification; + }; + type PullsListCommitsResponseItemAuthor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListCommitsResponseItem = { + author: PullsListCommitsResponseItemAuthor; + comments_url: string; + commit: PullsListCommitsResponseItemCommit; + committer: PullsListCommitsResponseItemCommitter; + html_url: string; + node_id: string; + parents: Array; + sha: string; + url: string; + }; + type PullsListCommentsForRepoResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListCommentsForRepoResponseItemLinksSelf = { href: string }; + type PullsListCommentsForRepoResponseItemLinksPullRequest = { href: string }; + type PullsListCommentsForRepoResponseItemLinksHtml = { href: string }; + type PullsListCommentsForRepoResponseItemLinks = { + html: PullsListCommentsForRepoResponseItemLinksHtml; + pull_request: PullsListCommentsForRepoResponseItemLinksPullRequest; + self: PullsListCommentsForRepoResponseItemLinksSelf; + }; + type PullsListCommentsForRepoResponseItem = { + _links: PullsListCommentsForRepoResponseItemLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + in_reply_to_id: number; + line: number; + node_id: string; + original_commit_id: string; + original_line: number; + original_position: number; + original_start_line: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + side: string; + start_line: number; + start_side: string; + updated_at: string; + url: string; + user: PullsListCommentsForRepoResponseItemUser; + }; + type PullsListCommentsResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListCommentsResponseItemLinksSelf = { href: string }; + type PullsListCommentsResponseItemLinksPullRequest = { href: string }; + type PullsListCommentsResponseItemLinksHtml = { href: string }; + type PullsListCommentsResponseItemLinks = { + html: PullsListCommentsResponseItemLinksHtml; + pull_request: PullsListCommentsResponseItemLinksPullRequest; + self: PullsListCommentsResponseItemLinksSelf; + }; + type PullsListCommentsResponseItem = { + _links: PullsListCommentsResponseItemLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + in_reply_to_id: number; + line: number; + node_id: string; + original_commit_id: string; + original_line: number; + original_position: number; + original_start_line: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + side: string; + start_line: number; + start_side: string; + updated_at: string; + url: string; + user: PullsListCommentsResponseItemUser; + }; + type PullsListResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemRequestedTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type PullsListResponseItemRequestedReviewersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: PullsListResponseItemMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type PullsListResponseItemLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type PullsListResponseItemHeadUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemHeadRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsListResponseItemHeadRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemHeadRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsListResponseItemHeadRepoOwner; + permissions: PullsListResponseItemHeadRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsListResponseItemHead = { + label: string; + ref: string; + repo: PullsListResponseItemHeadRepo; + sha: string; + user: PullsListResponseItemHeadUser; + }; + type PullsListResponseItemBaseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemBaseRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsListResponseItemBaseRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemBaseRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsListResponseItemBaseRepoOwner; + permissions: PullsListResponseItemBaseRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsListResponseItemBase = { + label: string; + ref: string; + repo: PullsListResponseItemBaseRepo; + sha: string; + user: PullsListResponseItemBaseUser; + }; + type PullsListResponseItemAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsListResponseItemLinksStatuses = { href: string }; + type PullsListResponseItemLinksSelf = { href: string }; + type PullsListResponseItemLinksReviewComments = { href: string }; + type PullsListResponseItemLinksReviewComment = { href: string }; + type PullsListResponseItemLinksIssue = { href: string }; + type PullsListResponseItemLinksHtml = { href: string }; + type PullsListResponseItemLinksCommits = { href: string }; + type PullsListResponseItemLinksComments = { href: string }; + type PullsListResponseItemLinks = { + comments: PullsListResponseItemLinksComments; + commits: PullsListResponseItemLinksCommits; + html: PullsListResponseItemLinksHtml; + issue: PullsListResponseItemLinksIssue; + review_comment: PullsListResponseItemLinksReviewComment; + review_comments: PullsListResponseItemLinksReviewComments; + self: PullsListResponseItemLinksSelf; + statuses: PullsListResponseItemLinksStatuses; + }; + type PullsListResponseItem = { + _links: PullsListResponseItemLinks; + active_lock_reason: string; + assignee: PullsListResponseItemAssignee; + assignees: Array; + author_association: string; + base: PullsListResponseItemBase; + body: string; + closed_at: string; + comments_url: string; + commits_url: string; + created_at: string; + diff_url: string; + draft: boolean; + head: PullsListResponseItemHead; + html_url: string; + id: number; + issue_url: string; + labels: Array; + locked: boolean; + merge_commit_sha: string; + merged_at: string; + milestone: PullsListResponseItemMilestone; + node_id: string; + number: number; + patch_url: string; + requested_reviewers: Array; + requested_teams: Array; + review_comment_url: string; + review_comments_url: string; + state: string; + statuses_url: string; + title: string; + updated_at: string; + url: string; + user: PullsListResponseItemUser; + }; + type PullsGetReviewResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetReviewResponseLinksPullRequest = { href: string }; + type PullsGetReviewResponseLinksHtml = { href: string }; + type PullsGetReviewResponseLinks = { + html: PullsGetReviewResponseLinksHtml; + pull_request: PullsGetReviewResponseLinksPullRequest; + }; + type PullsGetReviewResponse = { + _links: PullsGetReviewResponseLinks; + body: string; + commit_id: string; + html_url: string; + id: number; + node_id: string; + pull_request_url: string; + state: string; + user: PullsGetReviewResponseUser; + }; + type PullsGetCommentsForReviewResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetCommentsForReviewResponseItemLinksSelf = { href: string }; + type PullsGetCommentsForReviewResponseItemLinksPullRequest = { href: string }; + type PullsGetCommentsForReviewResponseItemLinksHtml = { href: string }; + type PullsGetCommentsForReviewResponseItemLinks = { + html: PullsGetCommentsForReviewResponseItemLinksHtml; + pull_request: PullsGetCommentsForReviewResponseItemLinksPullRequest; + self: PullsGetCommentsForReviewResponseItemLinksSelf; + }; + type PullsGetCommentsForReviewResponseItem = { + _links: PullsGetCommentsForReviewResponseItemLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + in_reply_to_id: number; + node_id: string; + original_commit_id: string; + original_position: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + updated_at: string; + url: string; + user: PullsGetCommentsForReviewResponseItemUser; + }; + type PullsGetCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetCommentResponseLinksSelf = { href: string }; + type PullsGetCommentResponseLinksPullRequest = { href: string }; + type PullsGetCommentResponseLinksHtml = { href: string }; + type PullsGetCommentResponseLinks = { + html: PullsGetCommentResponseLinksHtml; + pull_request: PullsGetCommentResponseLinksPullRequest; + self: PullsGetCommentResponseLinksSelf; + }; + type PullsGetCommentResponse = { + _links: PullsGetCommentResponseLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + in_reply_to_id: number; + line: number; + node_id: string; + original_commit_id: string; + original_line: number; + original_position: number; + original_start_line: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + side: string; + start_line: number; + start_side: string; + updated_at: string; + url: string; + user: PullsGetCommentResponseUser; + }; + type PullsGetResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseRequestedTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type PullsGetResponseRequestedReviewersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: PullsGetResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type PullsGetResponseMergedBy = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type PullsGetResponseHeadUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseHeadRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsGetResponseHeadRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseHeadRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsGetResponseHeadRepoOwner; + permissions: PullsGetResponseHeadRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsGetResponseHead = { + label: string; + ref: string; + repo: PullsGetResponseHeadRepo; + sha: string; + user: PullsGetResponseHeadUser; + }; + type PullsGetResponseBaseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseBaseRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsGetResponseBaseRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseBaseRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsGetResponseBaseRepoOwner; + permissions: PullsGetResponseBaseRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsGetResponseBase = { + label: string; + ref: string; + repo: PullsGetResponseBaseRepo; + sha: string; + user: PullsGetResponseBaseUser; + }; + type PullsGetResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsGetResponseLinksStatuses = { href: string }; + type PullsGetResponseLinksSelf = { href: string }; + type PullsGetResponseLinksReviewComments = { href: string }; + type PullsGetResponseLinksReviewComment = { href: string }; + type PullsGetResponseLinksIssue = { href: string }; + type PullsGetResponseLinksHtml = { href: string }; + type PullsGetResponseLinksCommits = { href: string }; + type PullsGetResponseLinksComments = { href: string }; + type PullsGetResponseLinks = { + comments: PullsGetResponseLinksComments; + commits: PullsGetResponseLinksCommits; + html: PullsGetResponseLinksHtml; + issue: PullsGetResponseLinksIssue; + review_comment: PullsGetResponseLinksReviewComment; + review_comments: PullsGetResponseLinksReviewComments; + self: PullsGetResponseLinksSelf; + statuses: PullsGetResponseLinksStatuses; + }; + type PullsGetResponse = { + _links: PullsGetResponseLinks; + active_lock_reason: string; + additions: number; + assignee: PullsGetResponseAssignee; + assignees: Array; + author_association: string; + base: PullsGetResponseBase; + body: string; + changed_files: number; + closed_at: string; + comments: number; + comments_url: string; + commits: number; + commits_url: string; + created_at: string; + deletions: number; + diff_url: string; + draft: boolean; + head: PullsGetResponseHead; + html_url: string; + id: number; + issue_url: string; + labels: Array; + locked: boolean; + maintainer_can_modify: boolean; + merge_commit_sha: string; + mergeable: boolean; + mergeable_state: string; + merged: boolean; + merged_at: string; + merged_by: PullsGetResponseMergedBy; + milestone: PullsGetResponseMilestone; + node_id: string; + number: number; + patch_url: string; + rebaseable: boolean; + requested_reviewers: Array; + requested_teams: Array; + review_comment_url: string; + review_comments: number; + review_comments_url: string; + state: string; + statuses_url: string; + title: string; + updated_at: string; + url: string; + user: PullsGetResponseUser; + }; + type PullsDismissReviewResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsDismissReviewResponseLinksPullRequest = { href: string }; + type PullsDismissReviewResponseLinksHtml = { href: string }; + type PullsDismissReviewResponseLinks = { + html: PullsDismissReviewResponseLinksHtml; + pull_request: PullsDismissReviewResponseLinksPullRequest; + }; + type PullsDismissReviewResponse = { + _links: PullsDismissReviewResponseLinks; + body: string; + commit_id: string; + html_url: string; + id: number; + node_id: string; + pull_request_url: string; + state: string; + user: PullsDismissReviewResponseUser; + }; + type PullsDeletePendingReviewResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsDeletePendingReviewResponseLinksPullRequest = { href: string }; + type PullsDeletePendingReviewResponseLinksHtml = { href: string }; + type PullsDeletePendingReviewResponseLinks = { + html: PullsDeletePendingReviewResponseLinksHtml; + pull_request: PullsDeletePendingReviewResponseLinksPullRequest; + }; + type PullsDeletePendingReviewResponse = { + _links: PullsDeletePendingReviewResponseLinks; + body: string; + commit_id: string; + html_url: string; + id: number; + node_id: string; + pull_request_url: string; + state: string; + user: PullsDeletePendingReviewResponseUser; + }; + type PullsCreateReviewRequestResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseRequestedTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type PullsCreateReviewRequestResponseRequestedReviewersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: PullsCreateReviewRequestResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type PullsCreateReviewRequestResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type PullsCreateReviewRequestResponseHeadUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseHeadRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsCreateReviewRequestResponseHeadRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseHeadRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsCreateReviewRequestResponseHeadRepoOwner; + permissions: PullsCreateReviewRequestResponseHeadRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsCreateReviewRequestResponseHead = { + label: string; + ref: string; + repo: PullsCreateReviewRequestResponseHeadRepo; + sha: string; + user: PullsCreateReviewRequestResponseHeadUser; + }; + type PullsCreateReviewRequestResponseBaseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseBaseRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsCreateReviewRequestResponseBaseRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseBaseRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsCreateReviewRequestResponseBaseRepoOwner; + permissions: PullsCreateReviewRequestResponseBaseRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsCreateReviewRequestResponseBase = { + label: string; + ref: string; + repo: PullsCreateReviewRequestResponseBaseRepo; + sha: string; + user: PullsCreateReviewRequestResponseBaseUser; + }; + type PullsCreateReviewRequestResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewRequestResponseLinksStatuses = { href: string }; + type PullsCreateReviewRequestResponseLinksSelf = { href: string }; + type PullsCreateReviewRequestResponseLinksReviewComments = { href: string }; + type PullsCreateReviewRequestResponseLinksReviewComment = { href: string }; + type PullsCreateReviewRequestResponseLinksIssue = { href: string }; + type PullsCreateReviewRequestResponseLinksHtml = { href: string }; + type PullsCreateReviewRequestResponseLinksCommits = { href: string }; + type PullsCreateReviewRequestResponseLinksComments = { href: string }; + type PullsCreateReviewRequestResponseLinks = { + comments: PullsCreateReviewRequestResponseLinksComments; + commits: PullsCreateReviewRequestResponseLinksCommits; + html: PullsCreateReviewRequestResponseLinksHtml; + issue: PullsCreateReviewRequestResponseLinksIssue; + review_comment: PullsCreateReviewRequestResponseLinksReviewComment; + review_comments: PullsCreateReviewRequestResponseLinksReviewComments; + self: PullsCreateReviewRequestResponseLinksSelf; + statuses: PullsCreateReviewRequestResponseLinksStatuses; + }; + type PullsCreateReviewRequestResponse = { + _links: PullsCreateReviewRequestResponseLinks; + active_lock_reason: string; + assignee: PullsCreateReviewRequestResponseAssignee; + assignees: Array; + author_association: string; + base: PullsCreateReviewRequestResponseBase; + body: string; + closed_at: string; + comments_url: string; + commits_url: string; + created_at: string; + diff_url: string; + draft: boolean; + head: PullsCreateReviewRequestResponseHead; + html_url: string; + id: number; + issue_url: string; + labels: Array; + locked: boolean; + merge_commit_sha: string; + merged_at: string; + milestone: PullsCreateReviewRequestResponseMilestone; + node_id: string; + number: number; + patch_url: string; + requested_reviewers: Array< + PullsCreateReviewRequestResponseRequestedReviewersItem + >; + requested_teams: Array; + review_comment_url: string; + review_comments_url: string; + state: string; + statuses_url: string; + title: string; + updated_at: string; + url: string; + user: PullsCreateReviewRequestResponseUser; + }; + type PullsCreateReviewCommentReplyResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewCommentReplyResponseLinksSelf = { href: string }; + type PullsCreateReviewCommentReplyResponseLinksPullRequest = { href: string }; + type PullsCreateReviewCommentReplyResponseLinksHtml = { href: string }; + type PullsCreateReviewCommentReplyResponseLinks = { + html: PullsCreateReviewCommentReplyResponseLinksHtml; + pull_request: PullsCreateReviewCommentReplyResponseLinksPullRequest; + self: PullsCreateReviewCommentReplyResponseLinksSelf; + }; + type PullsCreateReviewCommentReplyResponse = { + _links: PullsCreateReviewCommentReplyResponseLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + node_id: string; + original_commit_id: string; + original_position: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + updated_at: string; + url: string; + user: PullsCreateReviewCommentReplyResponseUser; + }; + type PullsCreateReviewResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateReviewResponseLinksPullRequest = { href: string }; + type PullsCreateReviewResponseLinksHtml = { href: string }; + type PullsCreateReviewResponseLinks = { + html: PullsCreateReviewResponseLinksHtml; + pull_request: PullsCreateReviewResponseLinksPullRequest; + }; + type PullsCreateReviewResponse = { + _links: PullsCreateReviewResponseLinks; + body: string; + commit_id: string; + html_url: string; + id: number; + node_id: string; + pull_request_url: string; + state: string; + user: PullsCreateReviewResponseUser; + }; + type PullsCreateFromIssueResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseRequestedTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type PullsCreateFromIssueResponseRequestedReviewersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: PullsCreateFromIssueResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type PullsCreateFromIssueResponseMergedBy = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type PullsCreateFromIssueResponseHeadUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseHeadRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsCreateFromIssueResponseHeadRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseHeadRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsCreateFromIssueResponseHeadRepoOwner; + permissions: PullsCreateFromIssueResponseHeadRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsCreateFromIssueResponseHead = { + label: string; + ref: string; + repo: PullsCreateFromIssueResponseHeadRepo; + sha: string; + user: PullsCreateFromIssueResponseHeadUser; + }; + type PullsCreateFromIssueResponseBaseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseBaseRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsCreateFromIssueResponseBaseRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseBaseRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsCreateFromIssueResponseBaseRepoOwner; + permissions: PullsCreateFromIssueResponseBaseRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsCreateFromIssueResponseBase = { + label: string; + ref: string; + repo: PullsCreateFromIssueResponseBaseRepo; + sha: string; + user: PullsCreateFromIssueResponseBaseUser; + }; + type PullsCreateFromIssueResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateFromIssueResponseLinksStatuses = { href: string }; + type PullsCreateFromIssueResponseLinksSelf = { href: string }; + type PullsCreateFromIssueResponseLinksReviewComments = { href: string }; + type PullsCreateFromIssueResponseLinksReviewComment = { href: string }; + type PullsCreateFromIssueResponseLinksIssue = { href: string }; + type PullsCreateFromIssueResponseLinksHtml = { href: string }; + type PullsCreateFromIssueResponseLinksCommits = { href: string }; + type PullsCreateFromIssueResponseLinksComments = { href: string }; + type PullsCreateFromIssueResponseLinks = { + comments: PullsCreateFromIssueResponseLinksComments; + commits: PullsCreateFromIssueResponseLinksCommits; + html: PullsCreateFromIssueResponseLinksHtml; + issue: PullsCreateFromIssueResponseLinksIssue; + review_comment: PullsCreateFromIssueResponseLinksReviewComment; + review_comments: PullsCreateFromIssueResponseLinksReviewComments; + self: PullsCreateFromIssueResponseLinksSelf; + statuses: PullsCreateFromIssueResponseLinksStatuses; + }; + type PullsCreateFromIssueResponse = { + _links: PullsCreateFromIssueResponseLinks; + active_lock_reason: string; + additions: number; + assignee: PullsCreateFromIssueResponseAssignee; + assignees: Array; + author_association: string; + base: PullsCreateFromIssueResponseBase; + body: string; + changed_files: number; + closed_at: string; + comments: number; + comments_url: string; + commits: number; + commits_url: string; + created_at: string; + deletions: number; + diff_url: string; + draft: boolean; + head: PullsCreateFromIssueResponseHead; + html_url: string; + id: number; + issue_url: string; + labels: Array; + locked: boolean; + maintainer_can_modify: boolean; + merge_commit_sha: string; + mergeable: boolean; + mergeable_state: string; + merged: boolean; + merged_at: string; + merged_by: PullsCreateFromIssueResponseMergedBy; + milestone: PullsCreateFromIssueResponseMilestone; + node_id: string; + number: number; + patch_url: string; + rebaseable: boolean; + requested_reviewers: Array< + PullsCreateFromIssueResponseRequestedReviewersItem + >; + requested_teams: Array; + review_comment_url: string; + review_comments: number; + review_comments_url: string; + state: string; + statuses_url: string; + title: string; + updated_at: string; + url: string; + user: PullsCreateFromIssueResponseUser; + }; + type PullsCreateCommentReplyResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateCommentReplyResponseLinksSelf = { href: string }; + type PullsCreateCommentReplyResponseLinksPullRequest = { href: string }; + type PullsCreateCommentReplyResponseLinksHtml = { href: string }; + type PullsCreateCommentReplyResponseLinks = { + html: PullsCreateCommentReplyResponseLinksHtml; + pull_request: PullsCreateCommentReplyResponseLinksPullRequest; + self: PullsCreateCommentReplyResponseLinksSelf; + }; + type PullsCreateCommentReplyResponse = { + _links: PullsCreateCommentReplyResponseLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + in_reply_to_id: number; + line: number; + node_id: string; + original_commit_id: string; + original_line: number; + original_position: number; + original_start_line: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + side: string; + start_line: number; + start_side: string; + updated_at: string; + url: string; + user: PullsCreateCommentReplyResponseUser; + }; + type PullsCreateCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateCommentResponseLinksSelf = { href: string }; + type PullsCreateCommentResponseLinksPullRequest = { href: string }; + type PullsCreateCommentResponseLinksHtml = { href: string }; + type PullsCreateCommentResponseLinks = { + html: PullsCreateCommentResponseLinksHtml; + pull_request: PullsCreateCommentResponseLinksPullRequest; + self: PullsCreateCommentResponseLinksSelf; + }; + type PullsCreateCommentResponse = { + _links: PullsCreateCommentResponseLinks; + author_association: string; + body: string; + commit_id: string; + created_at: string; + diff_hunk: string; + html_url: string; + id: number; + in_reply_to_id: number; + line: number; + node_id: string; + original_commit_id: string; + original_line: number; + original_position: number; + original_start_line: number; + path: string; + position: number; + pull_request_review_id: number; + pull_request_url: string; + side: string; + start_line: number; + start_side: string; + updated_at: string; + url: string; + user: PullsCreateCommentResponseUser; + }; + type PullsCreateResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseRequestedTeamsItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type PullsCreateResponseRequestedReviewersItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: PullsCreateResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type PullsCreateResponseMergedBy = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type PullsCreateResponseHeadUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseHeadRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsCreateResponseHeadRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseHeadRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsCreateResponseHeadRepoOwner; + permissions: PullsCreateResponseHeadRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsCreateResponseHead = { + label: string; + ref: string; + repo: PullsCreateResponseHeadRepo; + sha: string; + user: PullsCreateResponseHeadUser; + }; + type PullsCreateResponseBaseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseBaseRepoPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type PullsCreateResponseBaseRepoOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseBaseRepo = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: PullsCreateResponseBaseRepoOwner; + permissions: PullsCreateResponseBaseRepoPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type PullsCreateResponseBase = { + label: string; + ref: string; + repo: PullsCreateResponseBaseRepo; + sha: string; + user: PullsCreateResponseBaseUser; + }; + type PullsCreateResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type PullsCreateResponseLinksStatuses = { href: string }; + type PullsCreateResponseLinksSelf = { href: string }; + type PullsCreateResponseLinksReviewComments = { href: string }; + type PullsCreateResponseLinksReviewComment = { href: string }; + type PullsCreateResponseLinksIssue = { href: string }; + type PullsCreateResponseLinksHtml = { href: string }; + type PullsCreateResponseLinksCommits = { href: string }; + type PullsCreateResponseLinksComments = { href: string }; + type PullsCreateResponseLinks = { + comments: PullsCreateResponseLinksComments; + commits: PullsCreateResponseLinksCommits; + html: PullsCreateResponseLinksHtml; + issue: PullsCreateResponseLinksIssue; + review_comment: PullsCreateResponseLinksReviewComment; + review_comments: PullsCreateResponseLinksReviewComments; + self: PullsCreateResponseLinksSelf; + statuses: PullsCreateResponseLinksStatuses; + }; + type PullsCreateResponse = { + _links: PullsCreateResponseLinks; + active_lock_reason: string; + additions: number; + assignee: PullsCreateResponseAssignee; + assignees: Array; + author_association: string; + base: PullsCreateResponseBase; + body: string; + changed_files: number; + closed_at: string; + comments: number; + comments_url: string; + commits: number; + commits_url: string; + created_at: string; + deletions: number; + diff_url: string; + draft: boolean; + head: PullsCreateResponseHead; + html_url: string; + id: number; + issue_url: string; + labels: Array; + locked: boolean; + maintainer_can_modify: boolean; + merge_commit_sha: string; + mergeable: boolean; + mergeable_state: string; + merged: boolean; + merged_at: string; + merged_by: PullsCreateResponseMergedBy; + milestone: PullsCreateResponseMilestone; + node_id: string; + number: number; + patch_url: string; + rebaseable: boolean; + requested_reviewers: Array; + requested_teams: Array; + review_comment_url: string; + review_comments: number; + review_comments_url: string; + state: string; + statuses_url: string; + title: string; + updated_at: string; + url: string; + user: PullsCreateResponseUser; + }; + type ProjectsUpdateColumnResponse = { + cards_url: string; + created_at: string; + id: number; + name: string; + node_id: string; + project_url: string; + updated_at: string; + url: string; + }; + type ProjectsUpdateCardResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsUpdateCardResponse = { + archived: boolean; + column_url: string; + content_url: string; + created_at: string; + creator: ProjectsUpdateCardResponseCreator; + id: number; + node_id: string; + note: string; + project_url: string; + updated_at: string; + url: string; + }; + type ProjectsUpdateResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsUpdateResponse = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsUpdateResponseCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsReviewUserPermissionLevelResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsReviewUserPermissionLevelResponse = { + permission: string; + user: ProjectsReviewUserPermissionLevelResponseUser; + }; + type ProjectsListForUserResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsListForUserResponseItem = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsListForUserResponseItemCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsListForRepoResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsListForRepoResponseItem = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsListForRepoResponseItemCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsListForOrgResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsListForOrgResponseItem = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsListForOrgResponseItemCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsListColumnsResponseItem = { + cards_url: string; + created_at: string; + id: number; + name: string; + node_id: string; + project_url: string; + updated_at: string; + url: string; + }; + type ProjectsListCollaboratorsResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsListCardsResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsListCardsResponseItem = { + archived: boolean; + column_url: string; + content_url: string; + created_at: string; + creator: ProjectsListCardsResponseItemCreator; + id: number; + node_id: string; + note: string; + project_url: string; + updated_at: string; + url: string; + }; + type ProjectsGetColumnResponse = { + cards_url: string; + created_at: string; + id: number; + name: string; + node_id: string; + project_url: string; + updated_at: string; + url: string; + }; + type ProjectsGetCardResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsGetCardResponse = { + archived: boolean; + column_url: string; + content_url: string; + created_at: string; + creator: ProjectsGetCardResponseCreator; + id: number; + node_id: string; + note: string; + project_url: string; + updated_at: string; + url: string; + }; + type ProjectsGetResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsGetResponse = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsGetResponseCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsCreateForRepoResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsCreateForRepoResponse = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsCreateForRepoResponseCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsCreateForOrgResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsCreateForOrgResponse = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsCreateForOrgResponseCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsCreateForAuthenticatedUserResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsCreateForAuthenticatedUserResponse = { + body: string; + columns_url: string; + created_at: string; + creator: ProjectsCreateForAuthenticatedUserResponseCreator; + html_url: string; + id: number; + name: string; + node_id: string; + number: number; + owner_url: string; + state: string; + updated_at: string; + url: string; + }; + type ProjectsCreateColumnResponse = { + cards_url: string; + created_at: string; + id: number; + name: string; + node_id: string; + project_url: string; + updated_at: string; + url: string; + }; + type ProjectsCreateCardResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ProjectsCreateCardResponse = { + archived: boolean; + column_url: string; + content_url: string; + created_at: string; + creator: ProjectsCreateCardResponseCreator; + id: number; + node_id: string; + note: string; + project_url: string; + updated_at: string; + url: string; + }; + type OrgsUpdateMembershipResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsUpdateMembershipResponseOrganization = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsUpdateMembershipResponse = { + organization: OrgsUpdateMembershipResponseOrganization; + organization_url: string; + role: string; + state: string; + url: string; + user: OrgsUpdateMembershipResponseUser; + }; + type OrgsUpdateHookResponseConfig = { content_type: string; url: string }; + type OrgsUpdateHookResponse = { + active: boolean; + config: OrgsUpdateHookResponseConfig; + created_at: string; + events: Array; + id: number; + name: string; + ping_url: string; + updated_at: string; + url: string; + }; + type OrgsUpdateResponsePlan = { + name: string; + private_repos: number; + space: number; + }; + type OrgsUpdateResponse = { + avatar_url: string; + billing_email: string; + blog: string; + collaborators: number; + company: string; + created_at: string; + default_repository_settings: string; + description: string; + disk_usage: number; + email: string; + events_url: string; + followers: number; + following: number; + has_organization_projects: boolean; + has_repository_projects: boolean; + hooks_url: string; + html_url: string; + id: number; + is_verified: boolean; + issues_url: string; + location: string; + login: string; + members_allowed_repository_creation_type: string; + members_can_create_repositories: boolean; + members_url: string; + name: string; + node_id: string; + owned_private_repos: number; + plan: OrgsUpdateResponsePlan; + private_gists: number; + public_gists: number; + public_members_url: string; + public_repos: number; + repos_url: string; + total_private_repos: number; + two_factor_requirement_enabled: boolean; + type: string; + url: string; + }; + type OrgsRemoveOutsideCollaboratorResponse = { + documentation_url: string; + message: string; + }; + type OrgsListPublicMembersResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsListPendingInvitationsResponseItemInviter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsListPendingInvitationsResponseItem = { + created_at: string; + email: string; + id: number; + invitation_team_url: string; + inviter: OrgsListPendingInvitationsResponseItemInviter; + login: string; + role: string; + team_count: number; + }; + type OrgsListOutsideCollaboratorsResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsListMembershipsResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsListMembershipsResponseItemOrganization = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsListMembershipsResponseItem = { + organization: OrgsListMembershipsResponseItemOrganization; + organization_url: string; + role: string; + state: string; + url: string; + user: OrgsListMembershipsResponseItemUser; + }; + type OrgsListMembersResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsListInvitationTeamsResponseItem = { + description: string; + html_url: string; + id: number; + members_url: string; + name: string; + node_id: string; + parent: null; + permission: string; + privacy: string; + repositories_url: string; + slug: string; + url: string; + }; + type OrgsListInstallationsResponseInstallationsItemPermissions = { + deployments: string; + metadata: string; + pull_requests: string; + statuses: string; + }; + type OrgsListInstallationsResponseInstallationsItemAccount = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsListInstallationsResponseInstallationsItem = { + access_tokens_url: string; + account: OrgsListInstallationsResponseInstallationsItemAccount; + app_id: number; + created_at: string; + events: Array; + html_url: string; + id: number; + permissions: OrgsListInstallationsResponseInstallationsItemPermissions; + repositories_url: string; + repository_selection: string; + single_file_name: null; + target_id: number; + target_type: string; + updated_at: string; + }; + type OrgsListInstallationsResponse = { + installations: Array; + total_count: number; + }; + type OrgsListHooksResponseItemConfig = { content_type: string; url: string }; + type OrgsListHooksResponseItem = { + active: boolean; + config: OrgsListHooksResponseItemConfig; + created_at: string; + events: Array; + id: number; + name: string; + ping_url: string; + updated_at: string; + url: string; + }; + type OrgsListForUserResponseItem = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsListForAuthenticatedUserResponseItem = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsListBlockedUsersResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsListResponseItem = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsGetMembershipForAuthenticatedUserResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsGetMembershipForAuthenticatedUserResponseOrganization = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsGetMembershipForAuthenticatedUserResponse = { + organization: OrgsGetMembershipForAuthenticatedUserResponseOrganization; + organization_url: string; + role: string; + state: string; + url: string; + user: OrgsGetMembershipForAuthenticatedUserResponseUser; + }; + type OrgsGetMembershipResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsGetMembershipResponseOrganization = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsGetMembershipResponse = { + organization: OrgsGetMembershipResponseOrganization; + organization_url: string; + role: string; + state: string; + url: string; + user: OrgsGetMembershipResponseUser; + }; + type OrgsGetHookResponseConfig = { content_type: string; url: string }; + type OrgsGetHookResponse = { + active: boolean; + config: OrgsGetHookResponseConfig; + created_at: string; + events: Array; + id: number; + name: string; + ping_url: string; + updated_at: string; + url: string; + }; + type OrgsGetResponsePlan = { + name: string; + private_repos: number; + space: number; + filled_seats?: number; + seats?: number; + }; + type OrgsGetResponse = { + avatar_url: string; + billing_email?: string; + blog: string; + collaborators?: number; + company: string; + created_at: string; + default_repository_settings?: string; + description: string; + disk_usage?: number; + email: string; + events_url: string; + followers: number; + following: number; + has_organization_projects: boolean; + has_repository_projects: boolean; + hooks_url: string; + html_url: string; + id: number; + is_verified: boolean; + issues_url: string; + location: string; + login: string; + members_allowed_repository_creation_type?: string; + members_can_create_repositories?: boolean; + members_url: string; + name: string; + node_id: string; + owned_private_repos?: number; + plan: OrgsGetResponsePlan; + private_gists?: number; + public_gists: number; + public_members_url: string; + public_repos: number; + repos_url: string; + total_private_repos?: number; + two_factor_requirement_enabled?: boolean; + type: string; + url: string; + }; + type OrgsCreateInvitationResponseInviter = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsCreateInvitationResponse = { + created_at: string; + email: string; + id: number; + invitation_team_url: string; + inviter: OrgsCreateInvitationResponseInviter; + login: string; + role: string; + team_count: number; + }; + type OrgsCreateHookResponseConfig = { content_type: string; url: string }; + type OrgsCreateHookResponse = { + active: boolean; + config: OrgsCreateHookResponseConfig; + created_at: string; + events: Array; + id: number; + name: string; + ping_url: string; + updated_at: string; + url: string; + }; + type OrgsConvertMemberToOutsideCollaboratorResponse = { + documentation_url: string; + message: string; + }; + type OrgsAddOrUpdateMembershipResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OrgsAddOrUpdateMembershipResponseOrganization = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type OrgsAddOrUpdateMembershipResponse = { + organization: OrgsAddOrUpdateMembershipResponseOrganization; + organization_url: string; + role: string; + state: string; + url: string; + user: OrgsAddOrUpdateMembershipResponseUser; + }; + type OauthAuthorizationsUpdateAuthorizationResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsUpdateAuthorizationResponse = { + app: OauthAuthorizationsUpdateAuthorizationResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + }; + type OauthAuthorizationsResetAuthorizationResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OauthAuthorizationsResetAuthorizationResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsResetAuthorizationResponse = { + app: OauthAuthorizationsResetAuthorizationResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + user: OauthAuthorizationsResetAuthorizationResponseUser; + }; + type OauthAuthorizationsListGrantsResponseItemApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsListGrantsResponseItem = { + app: OauthAuthorizationsListGrantsResponseItemApp; + created_at: string; + id: number; + scopes: Array; + updated_at: string; + url: string; + }; + type OauthAuthorizationsListAuthorizationsResponseItemApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsListAuthorizationsResponseItem = { + app: OauthAuthorizationsListAuthorizationsResponseItemApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + }; + type OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintResponse = { + app: OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + }; + type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponse = { + app: OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + }; + type OauthAuthorizationsGetOrCreateAuthorizationForAppResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsGetOrCreateAuthorizationForAppResponse = { + app: OauthAuthorizationsGetOrCreateAuthorizationForAppResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + }; + type OauthAuthorizationsGetGrantResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsGetGrantResponse = { + app: OauthAuthorizationsGetGrantResponseApp; + created_at: string; + id: number; + scopes: Array; + updated_at: string; + url: string; + }; + type OauthAuthorizationsGetAuthorizationResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsGetAuthorizationResponse = { + app: OauthAuthorizationsGetAuthorizationResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + }; + type OauthAuthorizationsCreateAuthorizationResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsCreateAuthorizationResponse = { + app: OauthAuthorizationsCreateAuthorizationResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + }; + type OauthAuthorizationsCheckAuthorizationResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type OauthAuthorizationsCheckAuthorizationResponseApp = { + client_id: string; + name: string; + url: string; + }; + type OauthAuthorizationsCheckAuthorizationResponse = { + app: OauthAuthorizationsCheckAuthorizationResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + user: OauthAuthorizationsCheckAuthorizationResponseUser; + }; + type MigrationsUpdateImportResponse = { + authors_url: string; + html_url: string; + repository_url: string; + status: string; + url: string; + use_lfs: string; + vcs: string; + vcs_url: string; + authors_count?: number; + commit_count?: number; + has_large_files?: boolean; + large_files_count?: number; + large_files_size?: number; + percent?: number; + status_text?: string; + tfvc_project?: string; + }; + type MigrationsStartImportResponse = { + authors_count: number; + authors_url: string; + commit_count: number; + has_large_files: boolean; + html_url: string; + large_files_count: number; + large_files_size: number; + percent: number; + repository_url: string; + status: string; + status_text: string; + url: string; + use_lfs: string; + vcs: string; + vcs_url: string; + }; + type MigrationsStartForOrgResponseRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type MigrationsStartForOrgResponseRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsStartForOrgResponseRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: MigrationsStartForOrgResponseRepositoriesItemOwner; + permissions: MigrationsStartForOrgResponseRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type MigrationsStartForOrgResponseOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type MigrationsStartForOrgResponse = { + created_at: string; + exclude_attachments: boolean; + guid: string; + id: number; + lock_repositories: boolean; + owner: MigrationsStartForOrgResponseOwner; + repositories: Array; + state: string; + updated_at: string; + url: string; + }; + type MigrationsStartForAuthenticatedUserResponseRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type MigrationsStartForAuthenticatedUserResponseRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsStartForAuthenticatedUserResponseRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: MigrationsStartForAuthenticatedUserResponseRepositoriesItemOwner; + permissions: MigrationsStartForAuthenticatedUserResponseRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type MigrationsStartForAuthenticatedUserResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsStartForAuthenticatedUserResponse = { + created_at: string; + exclude_attachments: boolean; + guid: string; + id: number; + lock_repositories: boolean; + owner: MigrationsStartForAuthenticatedUserResponseOwner; + repositories: Array< + MigrationsStartForAuthenticatedUserResponseRepositoriesItem + >; + state: string; + updated_at: string; + url: string; + }; + type MigrationsSetLfsPreferenceResponse = { + authors_count: number; + authors_url: string; + has_large_files: boolean; + html_url: string; + large_files_count: number; + large_files_size: number; + repository_url: string; + status: string; + status_text: string; + url: string; + use_lfs: string; + vcs: string; + vcs_url: string; + }; + type MigrationsMapCommitAuthorResponse = { + email: string; + id: number; + import_url: string; + name: string; + remote_id: string; + remote_name: string; + url: string; + }; + type MigrationsListForOrgResponseItemRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type MigrationsListForOrgResponseItemRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsListForOrgResponseItemRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: MigrationsListForOrgResponseItemRepositoriesItemOwner; + permissions: MigrationsListForOrgResponseItemRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type MigrationsListForOrgResponseItemOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type MigrationsListForOrgResponseItem = { + created_at: string; + exclude_attachments: boolean; + guid: string; + id: number; + lock_repositories: boolean; + owner: MigrationsListForOrgResponseItemOwner; + repositories: Array; + state: string; + updated_at: string; + url: string; + }; + type MigrationsListForAuthenticatedUserResponseItemRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type MigrationsListForAuthenticatedUserResponseItemRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsListForAuthenticatedUserResponseItemRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: MigrationsListForAuthenticatedUserResponseItemRepositoriesItemOwner; + permissions: MigrationsListForAuthenticatedUserResponseItemRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type MigrationsListForAuthenticatedUserResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsListForAuthenticatedUserResponseItem = { + created_at: string; + exclude_attachments: boolean; + guid: string; + id: number; + lock_repositories: boolean; + owner: MigrationsListForAuthenticatedUserResponseItemOwner; + repositories: Array< + MigrationsListForAuthenticatedUserResponseItemRepositoriesItem + >; + state: string; + updated_at: string; + url: string; + }; + type MigrationsGetStatusForOrgResponseRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type MigrationsGetStatusForOrgResponseRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsGetStatusForOrgResponseRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: MigrationsGetStatusForOrgResponseRepositoriesItemOwner; + permissions: MigrationsGetStatusForOrgResponseRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type MigrationsGetStatusForOrgResponseOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type MigrationsGetStatusForOrgResponse = { + created_at: string; + exclude_attachments: boolean; + guid: string; + id: number; + lock_repositories: boolean; + owner: MigrationsGetStatusForOrgResponseOwner; + repositories: Array; + state: string; + updated_at: string; + url: string; + }; + type MigrationsGetStatusForAuthenticatedUserResponseRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type MigrationsGetStatusForAuthenticatedUserResponseRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsGetStatusForAuthenticatedUserResponseRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: MigrationsGetStatusForAuthenticatedUserResponseRepositoriesItemOwner; + permissions: MigrationsGetStatusForAuthenticatedUserResponseRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type MigrationsGetStatusForAuthenticatedUserResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type MigrationsGetStatusForAuthenticatedUserResponse = { + created_at: string; + exclude_attachments: boolean; + guid: string; + id: number; + lock_repositories: boolean; + owner: MigrationsGetStatusForAuthenticatedUserResponseOwner; + repositories: Array< + MigrationsGetStatusForAuthenticatedUserResponseRepositoriesItem + >; + state: string; + updated_at: string; + url: string; + }; + type MigrationsGetLargeFilesResponseItem = { + oid: string; + path: string; + ref_name: string; + size: number; + }; + type MigrationsGetImportProgressResponse = { + authors_count: number; + authors_url: string; + has_large_files: boolean; + html_url: string; + large_files_count: number; + large_files_size: number; + repository_url: string; + status: string; + status_text: string; + url: string; + use_lfs: string; + vcs: string; + vcs_url: string; + }; + type MigrationsGetCommitAuthorsResponseItem = { + email: string; + id: number; + import_url: string; + name: string; + remote_id: string; + remote_name: string; + url: string; + }; + type MetaGetResponse = { + git: Array; + hooks: Array; + importer: Array; + pages: Array; + verifiable_password_authentication: boolean; + }; + type LicensesListCommonlyUsedResponseItem = { + key: string; + name: string; + node_id?: string; + spdx_id: string; + url: string; + }; + type LicensesListResponseItem = { + key: string; + name: string; + node_id?: string; + spdx_id: string; + url: string; + }; + type LicensesGetForRepoResponseLicense = { + key: string; + name: string; + node_id: string; + spdx_id: string; + url: string; + }; + type LicensesGetForRepoResponseLinks = { + git: string; + html: string; + self: string; + }; + type LicensesGetForRepoResponse = { + _links: LicensesGetForRepoResponseLinks; + content: string; + download_url: string; + encoding: string; + git_url: string; + html_url: string; + license: LicensesGetForRepoResponseLicense; + name: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + }; + type LicensesGetResponse = { + body: string; + conditions: Array; + description: string; + featured: boolean; + html_url: string; + implementation: string; + key: string; + limitations: Array; + name: string; + node_id: string; + permissions: Array; + spdx_id: string; + url: string; + }; + type IssuesUpdateMilestoneResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesUpdateMilestoneResponse = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesUpdateMilestoneResponseCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesUpdateLabelResponse = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesUpdateCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesUpdateCommentResponse = { + body: string; + created_at: string; + html_url: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: IssuesUpdateCommentResponseUser; + }; + type IssuesUpdateResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesUpdateResponsePullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesUpdateResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesUpdateResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesUpdateResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesUpdateResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesUpdateResponseClosedBy = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesUpdateResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesUpdateResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesUpdateResponse = { + active_lock_reason: string; + assignee: IssuesUpdateResponseAssignee; + assignees: Array; + body: string; + closed_at: null; + closed_by: IssuesUpdateResponseClosedBy; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesUpdateResponseMilestone; + node_id: string; + number: number; + pull_request: IssuesUpdateResponsePullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesUpdateResponseUser; + }; + type IssuesReplaceLabelsResponseItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesRemoveLabelResponseItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesRemoveAssigneesResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesRemoveAssigneesResponsePullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesRemoveAssigneesResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesRemoveAssigneesResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesRemoveAssigneesResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesRemoveAssigneesResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesRemoveAssigneesResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesRemoveAssigneesResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesRemoveAssigneesResponse = { + active_lock_reason: string; + assignee: IssuesRemoveAssigneesResponseAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesRemoveAssigneesResponseMilestone; + node_id: string; + number: number; + pull_request: IssuesRemoveAssigneesResponsePullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesRemoveAssigneesResponseUser; + }; + type IssuesListMilestonesForRepoResponseItemCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListMilestonesForRepoResponseItem = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesListMilestonesForRepoResponseItemCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesListLabelsOnIssueResponseItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListLabelsForRepoResponseItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListLabelsForMilestoneResponseItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListForRepoResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForRepoResponseItemPullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesListForRepoResponseItemMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForRepoResponseItemMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesListForRepoResponseItemMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesListForRepoResponseItemLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListForRepoResponseItemAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForRepoResponseItemAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForRepoResponseItem = { + active_lock_reason: string; + assignee: IssuesListForRepoResponseItemAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesListForRepoResponseItemMilestone; + node_id: string; + number: number; + pull_request: IssuesListForRepoResponseItemPullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesListForRepoResponseItemUser; + }; + type IssuesListForOrgResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForOrgResponseItemRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type IssuesListForOrgResponseItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForOrgResponseItemRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: IssuesListForOrgResponseItemRepositoryOwner; + permissions: IssuesListForOrgResponseItemRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type IssuesListForOrgResponseItemPullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesListForOrgResponseItemMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForOrgResponseItemMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesListForOrgResponseItemMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesListForOrgResponseItemLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListForOrgResponseItemAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForOrgResponseItemAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForOrgResponseItem = { + active_lock_reason: string; + assignee: IssuesListForOrgResponseItemAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesListForOrgResponseItemMilestone; + node_id: string; + number: number; + pull_request: IssuesListForOrgResponseItemPullRequest; + repository: IssuesListForOrgResponseItemRepository; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesListForOrgResponseItemUser; + }; + type IssuesListForAuthenticatedUserResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItemRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type IssuesListForAuthenticatedUserResponseItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItemRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: IssuesListForAuthenticatedUserResponseItemRepositoryOwner; + permissions: IssuesListForAuthenticatedUserResponseItemRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type IssuesListForAuthenticatedUserResponseItemPullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItemMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItemMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesListForAuthenticatedUserResponseItemMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItemLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItemAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItemAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListForAuthenticatedUserResponseItem = { + active_lock_reason: string; + assignee: IssuesListForAuthenticatedUserResponseItemAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesListForAuthenticatedUserResponseItemMilestone; + node_id: string; + number: number; + pull_request: IssuesListForAuthenticatedUserResponseItemPullRequest; + repository: IssuesListForAuthenticatedUserResponseItemRepository; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesListForAuthenticatedUserResponseItemUser; + }; + type IssuesListEventsForTimelineResponseItemActor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListEventsForTimelineResponseItem = { + actor: IssuesListEventsForTimelineResponseItemActor; + commit_id: string; + commit_url: string; + created_at: string; + event: string; + id: number; + node_id: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssueUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssuePullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssueMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssueMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesListEventsForRepoResponseItemIssueMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssueLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssueAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssueAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListEventsForRepoResponseItemIssue = { + active_lock_reason: string; + assignee: IssuesListEventsForRepoResponseItemIssueAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesListEventsForRepoResponseItemIssueMilestone; + node_id: string; + number: number; + pull_request: IssuesListEventsForRepoResponseItemIssuePullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesListEventsForRepoResponseItemIssueUser; + }; + type IssuesListEventsForRepoResponseItemActor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListEventsForRepoResponseItem = { + actor: IssuesListEventsForRepoResponseItemActor; + commit_id: string; + commit_url: string; + created_at: string; + event: string; + id: number; + issue: IssuesListEventsForRepoResponseItemIssue; + node_id: string; + url: string; + }; + type IssuesListEventsResponseItemActor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListEventsResponseItem = { + actor: IssuesListEventsResponseItemActor; + commit_id: string; + commit_url: string; + created_at: string; + event: string; + id: number; + node_id: string; + url: string; + }; + type IssuesListCommentsForRepoResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListCommentsForRepoResponseItem = { + body: string; + created_at: string; + html_url: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: IssuesListCommentsForRepoResponseItemUser; + }; + type IssuesListCommentsResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListCommentsResponseItem = { + body: string; + created_at: string; + html_url: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: IssuesListCommentsResponseItemUser; + }; + type IssuesListAssigneesResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListResponseItemRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type IssuesListResponseItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListResponseItemRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: IssuesListResponseItemRepositoryOwner; + permissions: IssuesListResponseItemRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type IssuesListResponseItemPullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesListResponseItemMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListResponseItemMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesListResponseItemMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesListResponseItemLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesListResponseItemAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListResponseItemAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesListResponseItem = { + active_lock_reason: string; + assignee: IssuesListResponseItemAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesListResponseItemMilestone; + node_id: string; + number: number; + pull_request: IssuesListResponseItemPullRequest; + repository: IssuesListResponseItemRepository; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesListResponseItemUser; + }; + type IssuesGetMilestoneResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetMilestoneResponse = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesGetMilestoneResponseCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesGetLabelResponse = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesGetEventResponseIssueUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetEventResponseIssuePullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesGetEventResponseIssueMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetEventResponseIssueMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesGetEventResponseIssueMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesGetEventResponseIssueLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesGetEventResponseIssueAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetEventResponseIssueAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetEventResponseIssue = { + active_lock_reason: string; + assignee: IssuesGetEventResponseIssueAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesGetEventResponseIssueMilestone; + node_id: string; + number: number; + pull_request: IssuesGetEventResponseIssuePullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesGetEventResponseIssueUser; + }; + type IssuesGetEventResponseActor = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetEventResponse = { + actor: IssuesGetEventResponseActor; + commit_id: string; + commit_url: string; + created_at: string; + event: string; + id: number; + issue: IssuesGetEventResponseIssue; + node_id: string; + url: string; + }; + type IssuesGetCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetCommentResponse = { + body: string; + created_at: string; + html_url: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: IssuesGetCommentResponseUser; + }; + type IssuesGetResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetResponsePullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesGetResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesGetResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesGetResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesGetResponseClosedBy = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesGetResponse = { + active_lock_reason: string; + assignee: IssuesGetResponseAssignee; + assignees: Array; + body: string; + closed_at: null; + closed_by: IssuesGetResponseClosedBy; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesGetResponseMilestone; + node_id: string; + number: number; + pull_request: IssuesGetResponsePullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesGetResponseUser; + }; + type IssuesCreateMilestoneResponseCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesCreateMilestoneResponse = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesCreateMilestoneResponseCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesCreateLabelResponse = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesCreateCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesCreateCommentResponse = { + body: string; + created_at: string; + html_url: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: IssuesCreateCommentResponseUser; + }; + type IssuesCreateResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesCreateResponsePullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesCreateResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesCreateResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesCreateResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesCreateResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesCreateResponseClosedBy = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesCreateResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesCreateResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesCreateResponse = { + active_lock_reason: string; + assignee: IssuesCreateResponseAssignee; + assignees: Array; + body: string; + closed_at: null; + closed_by: IssuesCreateResponseClosedBy; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesCreateResponseMilestone; + node_id: string; + number: number; + pull_request: IssuesCreateResponsePullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesCreateResponseUser; + }; + type IssuesAddLabelsResponseItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesAddAssigneesResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesAddAssigneesResponsePullRequest = { + diff_url: string; + html_url: string; + patch_url: string; + url: string; + }; + type IssuesAddAssigneesResponseMilestoneCreator = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesAddAssigneesResponseMilestone = { + closed_at: string; + closed_issues: number; + created_at: string; + creator: IssuesAddAssigneesResponseMilestoneCreator; + description: string; + due_on: string; + html_url: string; + id: number; + labels_url: string; + node_id: string; + number: number; + open_issues: number; + state: string; + title: string; + updated_at: string; + url: string; + }; + type IssuesAddAssigneesResponseLabelsItem = { + color: string; + default: boolean; + description: string; + id: number; + name: string; + node_id: string; + url: string; + }; + type IssuesAddAssigneesResponseAssigneesItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesAddAssigneesResponseAssignee = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type IssuesAddAssigneesResponse = { + active_lock_reason: string; + assignee: IssuesAddAssigneesResponseAssignee; + assignees: Array; + body: string; + closed_at: null; + comments: number; + comments_url: string; + created_at: string; + events_url: string; + html_url: string; + id: number; + labels: Array; + labels_url: string; + locked: boolean; + milestone: IssuesAddAssigneesResponseMilestone; + node_id: string; + number: number; + pull_request: IssuesAddAssigneesResponsePullRequest; + repository_url: string; + state: string; + title: string; + updated_at: string; + url: string; + user: IssuesAddAssigneesResponseUser; + }; + type InteractionsGetRestrictionsForRepoResponse = { + expires_at: string; + limit: string; + origin: string; + }; + type InteractionsGetRestrictionsForOrgResponse = { + expires_at: string; + limit: string; + origin: string; + }; + type InteractionsAddOrUpdateRestrictionsForRepoResponse = { + expires_at: string; + limit: string; + origin: string; + }; + type InteractionsAddOrUpdateRestrictionsForOrgResponse = { + expires_at: string; + limit: string; + origin: string; + }; + type GitignoreGetTemplateResponse = { name: string; source: string }; + type GitUpdateRefResponseObject = { sha: string; type: string; url: string }; + type GitUpdateRefResponse = { + node_id: string; + object: GitUpdateRefResponseObject; + ref: string; + url: string; + }; + type GitListMatchingRefsResponseItemObject = { + sha: string; + type: string; + url: string; + }; + type GitListMatchingRefsResponseItem = { + node_id: string; + object: GitListMatchingRefsResponseItemObject; + ref: string; + url: string; + }; + type GitGetTagResponseVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type GitGetTagResponseTagger = { date: string; email: string; name: string }; + type GitGetTagResponseObject = { sha: string; type: string; url: string }; + type GitGetTagResponse = { + message: string; + node_id: string; + object: GitGetTagResponseObject; + sha: string; + tag: string; + tagger: GitGetTagResponseTagger; + url: string; + verification: GitGetTagResponseVerification; + }; + type GitGetRefResponseObject = { sha: string; type: string; url: string }; + type GitGetRefResponse = { + node_id: string; + object: GitGetRefResponseObject; + ref: string; + url: string; + }; + type GitGetCommitResponseVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type GitGetCommitResponseTree = { sha: string; url: string }; + type GitGetCommitResponseParentsItem = { sha: string; url: string }; + type GitGetCommitResponseCommitter = { + date: string; + email: string; + name: string; + }; + type GitGetCommitResponseAuthor = { + date: string; + email: string; + name: string; + }; + type GitGetCommitResponse = { + author: GitGetCommitResponseAuthor; + committer: GitGetCommitResponseCommitter; + message: string; + parents: Array; + sha: string; + tree: GitGetCommitResponseTree; + url: string; + verification: GitGetCommitResponseVerification; + }; + type GitGetBlobResponse = { + content: string; + encoding: string; + sha: string; + size: number; + url: string; + }; + type GitCreateTreeResponseTreeItem = { + mode: string; + path: string; + sha: string; + size: number; + type: string; + url: string; + }; + type GitCreateTreeResponse = { + sha: string; + tree: Array; + url: string; + }; + type GitCreateTagResponseVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type GitCreateTagResponseTagger = { + date: string; + email: string; + name: string; + }; + type GitCreateTagResponseObject = { sha: string; type: string; url: string }; + type GitCreateTagResponse = { + message: string; + node_id: string; + object: GitCreateTagResponseObject; + sha: string; + tag: string; + tagger: GitCreateTagResponseTagger; + url: string; + verification: GitCreateTagResponseVerification; + }; + type GitCreateRefResponseObject = { sha: string; type: string; url: string }; + type GitCreateRefResponse = { + node_id: string; + object: GitCreateRefResponseObject; + ref: string; + url: string; + }; + type GitCreateCommitResponseVerification = { + payload: null; + reason: string; + signature: null; + verified: boolean; + }; + type GitCreateCommitResponseTree = { sha: string; url: string }; + type GitCreateCommitResponseParentsItem = { sha: string; url: string }; + type GitCreateCommitResponseCommitter = { + date: string; + email: string; + name: string; + }; + type GitCreateCommitResponseAuthor = { + date: string; + email: string; + name: string; + }; + type GitCreateCommitResponse = { + author: GitCreateCommitResponseAuthor; + committer: GitCreateCommitResponseCommitter; + message: string; + node_id: string; + parents: Array; + sha: string; + tree: GitCreateCommitResponseTree; + url: string; + verification: GitCreateCommitResponseVerification; + }; + type GitCreateBlobResponse = { sha: string; url: string }; + type GistsUpdateCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsUpdateCommentResponse = { + body: string; + created_at: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: GistsUpdateCommentResponseUser; + }; + type GistsUpdateResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsUpdateResponseHistoryItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsUpdateResponseHistoryItemChangeStatus = { + additions: number; + deletions: number; + total: number; + }; + type GistsUpdateResponseHistoryItem = { + change_status: GistsUpdateResponseHistoryItemChangeStatus; + committed_at: string; + url: string; + user: GistsUpdateResponseHistoryItemUser; + version: string; + }; + type GistsUpdateResponseForksItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsUpdateResponseForksItem = { + created_at: string; + id: string; + updated_at: string; + url: string; + user: GistsUpdateResponseForksItemUser; + }; + type GistsUpdateResponseFilesNewFileTxt = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsUpdateResponseFilesHelloWorldRb = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsUpdateResponseFilesHelloWorldPy = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsUpdateResponseFilesHelloWorldMd = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsUpdateResponseFiles = { + "hello_world.md": GistsUpdateResponseFilesHelloWorldMd; + "hello_world.py": GistsUpdateResponseFilesHelloWorldPy; + "hello_world.rb": GistsUpdateResponseFilesHelloWorldRb; + "new_file.txt": GistsUpdateResponseFilesNewFileTxt; + }; + type GistsUpdateResponse = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsUpdateResponseFiles; + forks: Array; + forks_url: string; + git_pull_url: string; + git_push_url: string; + history: Array; + html_url: string; + id: string; + node_id: string; + owner: GistsUpdateResponseOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsListStarredResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsListStarredResponseItemFilesHelloWorldRb = { + filename: string; + language: string; + raw_url: string; + size: number; + type: string; + }; + type GistsListStarredResponseItemFiles = { + "hello_world.rb": GistsListStarredResponseItemFilesHelloWorldRb; + }; + type GistsListStarredResponseItem = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsListStarredResponseItemFiles; + forks_url: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + id: string; + node_id: string; + owner: GistsListStarredResponseItemOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsListPublicForUserResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsListPublicForUserResponseItemFilesHelloWorldRb = { + filename: string; + language: string; + raw_url: string; + size: number; + type: string; + }; + type GistsListPublicForUserResponseItemFiles = { + "hello_world.rb": GistsListPublicForUserResponseItemFilesHelloWorldRb; + }; + type GistsListPublicForUserResponseItem = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsListPublicForUserResponseItemFiles; + forks_url: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + id: string; + node_id: string; + owner: GistsListPublicForUserResponseItemOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsListPublicResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsListPublicResponseItemFilesHelloWorldRb = { + filename: string; + language: string; + raw_url: string; + size: number; + type: string; + }; + type GistsListPublicResponseItemFiles = { + "hello_world.rb": GistsListPublicResponseItemFilesHelloWorldRb; + }; + type GistsListPublicResponseItem = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsListPublicResponseItemFiles; + forks_url: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + id: string; + node_id: string; + owner: GistsListPublicResponseItemOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsListForksResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsListForksResponseItem = { + created_at: string; + id: string; + updated_at: string; + url: string; + user: GistsListForksResponseItemUser; + }; + type GistsListCommitsResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsListCommitsResponseItemChangeStatus = { + additions: number; + deletions: number; + total: number; + }; + type GistsListCommitsResponseItem = { + change_status: GistsListCommitsResponseItemChangeStatus; + committed_at: string; + url: string; + user: GistsListCommitsResponseItemUser; + version: string; + }; + type GistsListCommentsResponseItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsListCommentsResponseItem = { + body: string; + created_at: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: GistsListCommentsResponseItemUser; + }; + type GistsListResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsListResponseItemFilesHelloWorldRb = { + filename: string; + language: string; + raw_url: string; + size: number; + type: string; + }; + type GistsListResponseItemFiles = { + "hello_world.rb": GistsListResponseItemFilesHelloWorldRb; + }; + type GistsListResponseItem = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsListResponseItemFiles; + forks_url: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + id: string; + node_id: string; + owner: GistsListResponseItemOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsGetRevisionResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsGetRevisionResponseHistoryItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsGetRevisionResponseHistoryItemChangeStatus = { + additions: number; + deletions: number; + total: number; + }; + type GistsGetRevisionResponseHistoryItem = { + change_status: GistsGetRevisionResponseHistoryItemChangeStatus; + committed_at: string; + url: string; + user: GistsGetRevisionResponseHistoryItemUser; + version: string; + }; + type GistsGetRevisionResponseForksItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsGetRevisionResponseForksItem = { + created_at: string; + id: string; + updated_at: string; + url: string; + user: GistsGetRevisionResponseForksItemUser; + }; + type GistsGetRevisionResponseFilesHelloWorldRubyTxt = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetRevisionResponseFilesHelloWorldPythonTxt = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetRevisionResponseFilesHelloWorldRb = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetRevisionResponseFilesHelloWorldPy = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetRevisionResponseFiles = { + "hello_world.py": GistsGetRevisionResponseFilesHelloWorldPy; + "hello_world.rb": GistsGetRevisionResponseFilesHelloWorldRb; + "hello_world_python.txt": GistsGetRevisionResponseFilesHelloWorldPythonTxt; + "hello_world_ruby.txt": GistsGetRevisionResponseFilesHelloWorldRubyTxt; + }; + type GistsGetRevisionResponse = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsGetRevisionResponseFiles; + forks: Array; + forks_url: string; + git_pull_url: string; + git_push_url: string; + history: Array; + html_url: string; + id: string; + node_id: string; + owner: GistsGetRevisionResponseOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsGetCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsGetCommentResponse = { + body: string; + created_at: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: GistsGetCommentResponseUser; + }; + type GistsGetResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsGetResponseHistoryItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsGetResponseHistoryItemChangeStatus = { + additions: number; + deletions: number; + total: number; + }; + type GistsGetResponseHistoryItem = { + change_status: GistsGetResponseHistoryItemChangeStatus; + committed_at: string; + url: string; + user: GistsGetResponseHistoryItemUser; + version: string; + }; + type GistsGetResponseForksItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsGetResponseForksItem = { + created_at: string; + id: string; + updated_at: string; + url: string; + user: GistsGetResponseForksItemUser; + }; + type GistsGetResponseFilesHelloWorldRubyTxt = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetResponseFilesHelloWorldPythonTxt = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetResponseFilesHelloWorldRb = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetResponseFilesHelloWorldPy = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsGetResponseFiles = { + "hello_world.py": GistsGetResponseFilesHelloWorldPy; + "hello_world.rb": GistsGetResponseFilesHelloWorldRb; + "hello_world_python.txt": GistsGetResponseFilesHelloWorldPythonTxt; + "hello_world_ruby.txt": GistsGetResponseFilesHelloWorldRubyTxt; + }; + type GistsGetResponse = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsGetResponseFiles; + forks: Array; + forks_url: string; + git_pull_url: string; + git_push_url: string; + history: Array; + html_url: string; + id: string; + node_id: string; + owner: GistsGetResponseOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsForkResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsForkResponseFilesHelloWorldRb = { + filename: string; + language: string; + raw_url: string; + size: number; + type: string; + }; + type GistsForkResponseFiles = { + "hello_world.rb": GistsForkResponseFilesHelloWorldRb; + }; + type GistsForkResponse = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsForkResponseFiles; + forks_url: string; + git_pull_url: string; + git_push_url: string; + html_url: string; + id: string; + node_id: string; + owner: GistsForkResponseOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type GistsCreateCommentResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsCreateCommentResponse = { + body: string; + created_at: string; + id: number; + node_id: string; + updated_at: string; + url: string; + user: GistsCreateCommentResponseUser; + }; + type GistsCreateResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsCreateResponseHistoryItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsCreateResponseHistoryItemChangeStatus = { + additions: number; + deletions: number; + total: number; + }; + type GistsCreateResponseHistoryItem = { + change_status: GistsCreateResponseHistoryItemChangeStatus; + committed_at: string; + url: string; + user: GistsCreateResponseHistoryItemUser; + version: string; + }; + type GistsCreateResponseForksItemUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type GistsCreateResponseForksItem = { + created_at: string; + id: string; + updated_at: string; + url: string; + user: GistsCreateResponseForksItemUser; + }; + type GistsCreateResponseFilesHelloWorldRubyTxt = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsCreateResponseFilesHelloWorldPythonTxt = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsCreateResponseFilesHelloWorldRb = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsCreateResponseFilesHelloWorldPy = { + content: string; + filename: string; + language: string; + raw_url: string; + size: number; + truncated: boolean; + type: string; + }; + type GistsCreateResponseFiles = { + "hello_world.py": GistsCreateResponseFilesHelloWorldPy; + "hello_world.rb": GistsCreateResponseFilesHelloWorldRb; + "hello_world_python.txt": GistsCreateResponseFilesHelloWorldPythonTxt; + "hello_world_ruby.txt": GistsCreateResponseFilesHelloWorldRubyTxt; + }; + type GistsCreateResponse = { + comments: number; + comments_url: string; + commits_url: string; + created_at: string; + description: string; + files: GistsCreateResponseFiles; + forks: Array; + forks_url: string; + git_pull_url: string; + git_push_url: string; + history: Array; + html_url: string; + id: string; + node_id: string; + owner: GistsCreateResponseOwner; + public: boolean; + truncated: boolean; + updated_at: string; + url: string; + user: null; + }; + type CodesOfConductListConductCodesResponseItem = { + key: string; + name: string; + url: string; + }; + type CodesOfConductGetForRepoResponse = { + body: string; + key: string; + name: string; + url: string; + }; + type CodesOfConductGetConductCodeResponse = { + body: string; + key: string; + name: string; + url: string; + }; + type ChecksUpdateResponsePullRequestsItemHeadRepo = { + id: number; + name: string; + url: string; + }; + type ChecksUpdateResponsePullRequestsItemHead = { + ref: string; + repo: ChecksUpdateResponsePullRequestsItemHeadRepo; + sha: string; + }; + type ChecksUpdateResponsePullRequestsItemBaseRepo = { + id: number; + name: string; + url: string; + }; + type ChecksUpdateResponsePullRequestsItemBase = { + ref: string; + repo: ChecksUpdateResponsePullRequestsItemBaseRepo; + sha: string; + }; + type ChecksUpdateResponsePullRequestsItem = { + base: ChecksUpdateResponsePullRequestsItemBase; + head: ChecksUpdateResponsePullRequestsItemHead; + id: number; + number: number; + url: string; + }; + type ChecksUpdateResponseOutput = { + annotations_count: number; + annotations_url: string; + summary: string; + text: string; + title: string; + }; + type ChecksUpdateResponseCheckSuite = { id: number }; + type ChecksUpdateResponseAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksUpdateResponseAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksUpdateResponseApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksUpdateResponseAppOwner; + permissions: ChecksUpdateResponseAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksUpdateResponse = { + app: ChecksUpdateResponseApp; + check_suite: ChecksUpdateResponseCheckSuite; + completed_at: string; + conclusion: string; + details_url: string; + external_id: string; + head_sha: string; + html_url: string; + id: number; + name: string; + node_id: string; + output: ChecksUpdateResponseOutput; + pull_requests: Array; + started_at: string; + status: string; + url: string; + }; + type ChecksSetSuitesPreferencesResponseRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ChecksSetSuitesPreferencesResponseRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ChecksSetSuitesPreferencesResponseRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ChecksSetSuitesPreferencesResponseRepositoryOwner; + permissions: ChecksSetSuitesPreferencesResponseRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ChecksSetSuitesPreferencesResponsePreferencesAutoTriggerChecksItem = { + app_id: number; + setting: boolean; + }; + type ChecksSetSuitesPreferencesResponsePreferences = { + auto_trigger_checks: Array< + ChecksSetSuitesPreferencesResponsePreferencesAutoTriggerChecksItem + >; + }; + type ChecksSetSuitesPreferencesResponse = { + preferences: ChecksSetSuitesPreferencesResponsePreferences; + repository: ChecksSetSuitesPreferencesResponseRepository; + }; + type ChecksListSuitesForRefResponseCheckSuitesItemRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ChecksListSuitesForRefResponseCheckSuitesItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ChecksListSuitesForRefResponseCheckSuitesItemRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ChecksListSuitesForRefResponseCheckSuitesItemRepositoryOwner; + permissions: ChecksListSuitesForRefResponseCheckSuitesItemRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ChecksListSuitesForRefResponseCheckSuitesItemAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksListSuitesForRefResponseCheckSuitesItemAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksListSuitesForRefResponseCheckSuitesItemApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksListSuitesForRefResponseCheckSuitesItemAppOwner; + permissions: ChecksListSuitesForRefResponseCheckSuitesItemAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksListSuitesForRefResponseCheckSuitesItem = { + after: string; + app: ChecksListSuitesForRefResponseCheckSuitesItemApp; + before: string; + conclusion: string; + head_branch: string; + head_sha: string; + id: number; + node_id: string; + pull_requests: Array; + repository: ChecksListSuitesForRefResponseCheckSuitesItemRepository; + status: string; + url: string; + }; + type ChecksListSuitesForRefResponse = { + check_suites: Array; + total_count: number; + }; + type ChecksListForSuiteResponseCheckRunsItemPullRequestsItemHeadRepo = { + id: number; + name: string; + url: string; + }; + type ChecksListForSuiteResponseCheckRunsItemPullRequestsItemHead = { + ref: string; + repo: ChecksListForSuiteResponseCheckRunsItemPullRequestsItemHeadRepo; + sha: string; + }; + type ChecksListForSuiteResponseCheckRunsItemPullRequestsItemBaseRepo = { + id: number; + name: string; + url: string; + }; + type ChecksListForSuiteResponseCheckRunsItemPullRequestsItemBase = { + ref: string; + repo: ChecksListForSuiteResponseCheckRunsItemPullRequestsItemBaseRepo; + sha: string; + }; + type ChecksListForSuiteResponseCheckRunsItemPullRequestsItem = { + base: ChecksListForSuiteResponseCheckRunsItemPullRequestsItemBase; + head: ChecksListForSuiteResponseCheckRunsItemPullRequestsItemHead; + id: number; + number: number; + url: string; + }; + type ChecksListForSuiteResponseCheckRunsItemOutput = { + annotations_count: number; + annotations_url: string; + summary: string; + text: string; + title: string; + }; + type ChecksListForSuiteResponseCheckRunsItemCheckSuite = { id: number }; + type ChecksListForSuiteResponseCheckRunsItemAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksListForSuiteResponseCheckRunsItemAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksListForSuiteResponseCheckRunsItemApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksListForSuiteResponseCheckRunsItemAppOwner; + permissions: ChecksListForSuiteResponseCheckRunsItemAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksListForSuiteResponseCheckRunsItem = { + app: ChecksListForSuiteResponseCheckRunsItemApp; + check_suite: ChecksListForSuiteResponseCheckRunsItemCheckSuite; + completed_at: string; + conclusion: string; + details_url: string; + external_id: string; + head_sha: string; + html_url: string; + id: number; + name: string; + node_id: string; + output: ChecksListForSuiteResponseCheckRunsItemOutput; + pull_requests: Array< + ChecksListForSuiteResponseCheckRunsItemPullRequestsItem + >; + started_at: string; + status: string; + url: string; + }; + type ChecksListForSuiteResponse = { + check_runs: Array; + total_count: number; + }; + type ChecksListForRefResponseCheckRunsItemPullRequestsItemHeadRepo = { + id: number; + name: string; + url: string; + }; + type ChecksListForRefResponseCheckRunsItemPullRequestsItemHead = { + ref: string; + repo: ChecksListForRefResponseCheckRunsItemPullRequestsItemHeadRepo; + sha: string; + }; + type ChecksListForRefResponseCheckRunsItemPullRequestsItemBaseRepo = { + id: number; + name: string; + url: string; + }; + type ChecksListForRefResponseCheckRunsItemPullRequestsItemBase = { + ref: string; + repo: ChecksListForRefResponseCheckRunsItemPullRequestsItemBaseRepo; + sha: string; + }; + type ChecksListForRefResponseCheckRunsItemPullRequestsItem = { + base: ChecksListForRefResponseCheckRunsItemPullRequestsItemBase; + head: ChecksListForRefResponseCheckRunsItemPullRequestsItemHead; + id: number; + number: number; + url: string; + }; + type ChecksListForRefResponseCheckRunsItemOutput = { + annotations_count: number; + annotations_url: string; + summary: string; + text: string; + title: string; + }; + type ChecksListForRefResponseCheckRunsItemCheckSuite = { id: number }; + type ChecksListForRefResponseCheckRunsItemAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksListForRefResponseCheckRunsItemAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksListForRefResponseCheckRunsItemApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksListForRefResponseCheckRunsItemAppOwner; + permissions: ChecksListForRefResponseCheckRunsItemAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksListForRefResponseCheckRunsItem = { + app: ChecksListForRefResponseCheckRunsItemApp; + check_suite: ChecksListForRefResponseCheckRunsItemCheckSuite; + completed_at: string; + conclusion: string; + details_url: string; + external_id: string; + head_sha: string; + html_url: string; + id: number; + name: string; + node_id: string; + output: ChecksListForRefResponseCheckRunsItemOutput; + pull_requests: Array; + started_at: string; + status: string; + url: string; + }; + type ChecksListForRefResponse = { + check_runs: Array; + total_count: number; + }; + type ChecksListAnnotationsResponseItem = { + annotation_level: string; + end_column: number; + end_line: number; + message: string; + path: string; + raw_details: string; + start_column: number; + start_line: number; + title: string; + }; + type ChecksGetSuiteResponseRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ChecksGetSuiteResponseRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ChecksGetSuiteResponseRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ChecksGetSuiteResponseRepositoryOwner; + permissions: ChecksGetSuiteResponseRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ChecksGetSuiteResponseAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksGetSuiteResponseAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksGetSuiteResponseApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksGetSuiteResponseAppOwner; + permissions: ChecksGetSuiteResponseAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksGetSuiteResponse = { + after: string; + app: ChecksGetSuiteResponseApp; + before: string; + conclusion: string; + head_branch: string; + head_sha: string; + id: number; + node_id: string; + pull_requests: Array; + repository: ChecksGetSuiteResponseRepository; + status: string; + url: string; + }; + type ChecksGetResponsePullRequestsItemHeadRepo = { + id: number; + name: string; + url: string; + }; + type ChecksGetResponsePullRequestsItemHead = { + ref: string; + repo: ChecksGetResponsePullRequestsItemHeadRepo; + sha: string; + }; + type ChecksGetResponsePullRequestsItemBaseRepo = { + id: number; + name: string; + url: string; + }; + type ChecksGetResponsePullRequestsItemBase = { + ref: string; + repo: ChecksGetResponsePullRequestsItemBaseRepo; + sha: string; + }; + type ChecksGetResponsePullRequestsItem = { + base: ChecksGetResponsePullRequestsItemBase; + head: ChecksGetResponsePullRequestsItemHead; + id: number; + number: number; + url: string; + }; + type ChecksGetResponseOutput = { + annotations_count: number; + annotations_url: string; + summary: string; + text: string; + title: string; + }; + type ChecksGetResponseCheckSuite = { id: number }; + type ChecksGetResponseAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksGetResponseAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksGetResponseApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksGetResponseAppOwner; + permissions: ChecksGetResponseAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksGetResponse = { + app: ChecksGetResponseApp; + check_suite: ChecksGetResponseCheckSuite; + completed_at: string; + conclusion: string; + details_url: string; + external_id: string; + head_sha: string; + html_url: string; + id: number; + name: string; + node_id: string; + output: ChecksGetResponseOutput; + pull_requests: Array; + started_at: string; + status: string; + url: string; + }; + type ChecksCreateSuiteResponseRepositoryPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ChecksCreateSuiteResponseRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ChecksCreateSuiteResponseRepository = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ChecksCreateSuiteResponseRepositoryOwner; + permissions: ChecksCreateSuiteResponseRepositoryPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ChecksCreateSuiteResponseAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksCreateSuiteResponseAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksCreateSuiteResponseApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksCreateSuiteResponseAppOwner; + permissions: ChecksCreateSuiteResponseAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksCreateSuiteResponse = { + after: string; + app: ChecksCreateSuiteResponseApp; + before: string; + conclusion: string; + head_branch: string; + head_sha: string; + id: number; + node_id: string; + pull_requests: Array; + repository: ChecksCreateSuiteResponseRepository; + status: string; + url: string; + }; + type ChecksCreateResponsePullRequestsItemHeadRepo = { + id: number; + name: string; + url: string; + }; + type ChecksCreateResponsePullRequestsItemHead = { + ref: string; + repo: ChecksCreateResponsePullRequestsItemHeadRepo; + sha: string; + }; + type ChecksCreateResponsePullRequestsItemBaseRepo = { + id: number; + name: string; + url: string; + }; + type ChecksCreateResponsePullRequestsItemBase = { + ref: string; + repo: ChecksCreateResponsePullRequestsItemBaseRepo; + sha: string; + }; + type ChecksCreateResponsePullRequestsItem = { + base: ChecksCreateResponsePullRequestsItemBase; + head: ChecksCreateResponsePullRequestsItemHead; + id: number; + number: number; + url: string; + }; + type ChecksCreateResponseOutput = { + summary: string; + text: string; + title: string; + annotations_count?: number; + annotations_url?: string; + }; + type ChecksCreateResponseCheckSuite = { id: number }; + type ChecksCreateResponseAppPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type ChecksCreateResponseAppOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type ChecksCreateResponseApp = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: ChecksCreateResponseAppOwner; + permissions: ChecksCreateResponseAppPermissions; + slug: string; + updated_at: string; + }; + type ChecksCreateResponse = { + app: ChecksCreateResponseApp; + check_suite: ChecksCreateResponseCheckSuite; + completed_at: null | string; + conclusion: null | string; + details_url: string; + external_id: string; + head_sha: string; + html_url: string; + id: number; + name: string; + node_id: string; + output: ChecksCreateResponseOutput; + pull_requests: Array; + started_at: string; + status: string; + url: string; + }; + type AppsResetTokenResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsResetTokenResponseApp = { + client_id: string; + name: string; + url: string; + }; + type AppsResetTokenResponse = { + app: AppsResetTokenResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + user: AppsResetTokenResponseUser; + }; + type AppsResetAuthorizationResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsResetAuthorizationResponseApp = { + client_id: string; + name: string; + url: string; + }; + type AppsResetAuthorizationResponse = { + app: AppsResetAuthorizationResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + user: AppsResetAuthorizationResponseUser; + }; + type AppsListReposResponseRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsListReposResponseRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: AppsListReposResponseRepositoriesItemOwner; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type AppsListReposResponse = { + repositories: Array; + total_count: number; + }; + type AppsListPlansStubbedResponseItem = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListPlansResponseItem = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponseItemPlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponseItemAccount = { + email: null; + id: number; + login: string; + organization_billing_email: string; + type: string; + url: string; + }; + type AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponseItem = { + account: AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponseItemAccount; + billing_cycle: string; + free_trial_ends_on: string; + next_billing_date: string; + on_free_trial: boolean; + plan: AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponseItemPlan; + unit_count: null; + updated_at: string; + }; + type AppsListMarketplacePurchasesForAuthenticatedUserResponseItemPlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListMarketplacePurchasesForAuthenticatedUserResponseItemAccount = { + email: null; + id: number; + login: string; + organization_billing_email: string; + type: string; + url: string; + }; + type AppsListMarketplacePurchasesForAuthenticatedUserResponseItem = { + account: AppsListMarketplacePurchasesForAuthenticatedUserResponseItemAccount; + billing_cycle: string; + free_trial_ends_on: string; + next_billing_date: string; + on_free_trial: boolean; + plan: AppsListMarketplacePurchasesForAuthenticatedUserResponseItemPlan; + unit_count: null; + updated_at: string; + }; + type AppsListInstallationsForAuthenticatedUserResponseInstallationsItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type AppsListInstallationsForAuthenticatedUserResponseInstallationsItemAccount = { + avatar_url: string; + description?: string; + events_url: string; + hooks_url?: string; + id: number; + issues_url?: string; + login: string; + members_url?: string; + node_id: string; + public_members_url?: string; + repos_url: string; + url: string; + followers_url?: string; + following_url?: string; + gists_url?: string; + gravatar_id?: string; + html_url?: string; + organizations_url?: string; + received_events_url?: string; + site_admin?: boolean; + starred_url?: string; + subscriptions_url?: string; + type?: string; + }; + type AppsListInstallationsForAuthenticatedUserResponseInstallationsItem = { + access_tokens_url: string; + account: AppsListInstallationsForAuthenticatedUserResponseInstallationsItemAccount; + app_id: number; + events: Array; + html_url: string; + id: number; + permissions: AppsListInstallationsForAuthenticatedUserResponseInstallationsItemPermissions; + repositories_url: string; + single_file_name: string; + target_id: number; + target_type: string; + }; + type AppsListInstallationsForAuthenticatedUserResponse = { + installations: Array< + AppsListInstallationsForAuthenticatedUserResponseInstallationsItem + >; + total_count: number; + }; + type AppsListInstallationsResponseItemPermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type AppsListInstallationsResponseItemAccount = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type AppsListInstallationsResponseItem = { + access_tokens_url: string; + account: AppsListInstallationsResponseItemAccount; + app_id: number; + events: Array; + html_url: string; + id: number; + permissions: AppsListInstallationsResponseItemPermissions; + repositories_url: string; + repository_selection: string; + single_file_name: string; + target_id: number; + target_type: string; + }; + type AppsListInstallationReposForAuthenticatedUserResponseRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type AppsListInstallationReposForAuthenticatedUserResponseRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsListInstallationReposForAuthenticatedUserResponseRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: AppsListInstallationReposForAuthenticatedUserResponseRepositoriesItemOwner; + permissions: AppsListInstallationReposForAuthenticatedUserResponseRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type AppsListInstallationReposForAuthenticatedUserResponse = { + repositories: Array< + AppsListInstallationReposForAuthenticatedUserResponseRepositoriesItem + >; + total_count: number; + }; + type AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePurchasePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePurchase = { + billing_cycle: string; + free_trial_ends_on: string; + next_billing_date: string; + on_free_trial: boolean; + plan: AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePurchasePlan; + unit_count: null; + updated_at: string; + }; + type AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePendingChangePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePendingChange = { + effective_date: string; + id: number; + plan: AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePendingChangePlan; + unit_count: null; + }; + type AppsListAccountsUserOrOrgOnPlanStubbedResponseItem = { + email: null; + id: number; + login: string; + marketplace_pending_change: AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePendingChange; + marketplace_purchase: AppsListAccountsUserOrOrgOnPlanStubbedResponseItemMarketplacePurchase; + organization_billing_email: string; + type: string; + url: string; + }; + type AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePurchasePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePurchase = { + billing_cycle: string; + free_trial_ends_on: string; + next_billing_date: string; + on_free_trial: boolean; + plan: AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePurchasePlan; + unit_count: null; + updated_at: string; + }; + type AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePendingChangePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePendingChange = { + effective_date: string; + id: number; + plan: AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePendingChangePlan; + unit_count: null; + }; + type AppsListAccountsUserOrOrgOnPlanResponseItem = { + email: null; + id: number; + login: string; + marketplace_pending_change: AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePendingChange; + marketplace_purchase: AppsListAccountsUserOrOrgOnPlanResponseItemMarketplacePurchase; + organization_billing_email: string; + type: string; + url: string; + }; + type AppsGetUserInstallationResponsePermissions = { + checks: string; + contents: string; + metadata: string; + }; + type AppsGetUserInstallationResponseAccount = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsGetUserInstallationResponse = { + access_tokens_url: string; + account: AppsGetUserInstallationResponseAccount; + app_id: number; + created_at: string; + events: Array; + html_url: string; + id: number; + permissions: AppsGetUserInstallationResponsePermissions; + repositories_url: string; + repository_selection: string; + single_file_name: null; + target_id: number; + target_type: string; + updated_at: string; + }; + type AppsGetRepoInstallationResponsePermissions = { + checks: string; + contents: string; + metadata: string; + }; + type AppsGetRepoInstallationResponseAccount = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsGetRepoInstallationResponse = { + access_tokens_url: string; + account: AppsGetRepoInstallationResponseAccount; + app_id: number; + created_at: string; + events: Array; + html_url: string; + id: number; + permissions: AppsGetRepoInstallationResponsePermissions; + repositories_url: string; + repository_selection: string; + single_file_name: null; + target_id: number; + target_type: string; + updated_at: string; + }; + type AppsGetOrgInstallationResponsePermissions = { + checks: string; + contents: string; + metadata: string; + }; + type AppsGetOrgInstallationResponseAccount = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsGetOrgInstallationResponse = { + access_tokens_url: string; + account: AppsGetOrgInstallationResponseAccount; + app_id: number; + created_at: string; + events: Array; + html_url: string; + id: number; + permissions: AppsGetOrgInstallationResponsePermissions; + repositories_url: string; + repository_selection: string; + single_file_name: null; + target_id: number; + target_type: string; + updated_at: string; + }; + type AppsGetInstallationResponsePermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type AppsGetInstallationResponseAccount = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type AppsGetInstallationResponse = { + access_tokens_url: string; + account: AppsGetInstallationResponseAccount; + app_id: number; + events: Array; + html_url: string; + id: number; + permissions: AppsGetInstallationResponsePermissions; + repositories_url: string; + repository_selection: string; + single_file_name: string; + target_id: number; + target_type: string; + }; + type AppsGetBySlugResponsePermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type AppsGetBySlugResponseOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type AppsGetBySlugResponse = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: AppsGetBySlugResponseOwner; + permissions: AppsGetBySlugResponsePermissions; + slug: string; + updated_at: string; + }; + type AppsGetAuthenticatedResponsePermissions = { + contents: string; + issues: string; + metadata: string; + single_file: string; + }; + type AppsGetAuthenticatedResponseOwner = { + avatar_url: string; + description: string; + events_url: string; + hooks_url: string; + id: number; + issues_url: string; + login: string; + members_url: string; + node_id: string; + public_members_url: string; + repos_url: string; + url: string; + }; + type AppsGetAuthenticatedResponse = { + created_at: string; + description: string; + events: Array; + external_url: string; + html_url: string; + id: number; + installations_count: number; + name: string; + node_id: string; + owner: AppsGetAuthenticatedResponseOwner; + permissions: AppsGetAuthenticatedResponsePermissions; + slug: string; + updated_at: string; + }; + type AppsFindUserInstallationResponsePermissions = { + checks: string; + contents: string; + metadata: string; + }; + type AppsFindUserInstallationResponseAccount = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsFindUserInstallationResponse = { + access_tokens_url: string; + account: AppsFindUserInstallationResponseAccount; + app_id: number; + created_at: string; + events: Array; + html_url: string; + id: number; + permissions: AppsFindUserInstallationResponsePermissions; + repositories_url: string; + repository_selection: string; + single_file_name: null; + target_id: number; + target_type: string; + updated_at: string; + }; + type AppsFindRepoInstallationResponsePermissions = { + checks: string; + contents: string; + metadata: string; + }; + type AppsFindRepoInstallationResponseAccount = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsFindRepoInstallationResponse = { + access_tokens_url: string; + account: AppsFindRepoInstallationResponseAccount; + app_id: number; + created_at: string; + events: Array; + html_url: string; + id: number; + permissions: AppsFindRepoInstallationResponsePermissions; + repositories_url: string; + repository_selection: string; + single_file_name: null; + target_id: number; + target_type: string; + updated_at: string; + }; + type AppsFindOrgInstallationResponsePermissions = { + checks: string; + contents: string; + metadata: string; + }; + type AppsFindOrgInstallationResponseAccount = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsFindOrgInstallationResponse = { + access_tokens_url: string; + account: AppsFindOrgInstallationResponseAccount; + app_id: number; + created_at: string; + events: Array; + html_url: string; + id: number; + permissions: AppsFindOrgInstallationResponsePermissions; + repositories_url: string; + repository_selection: string; + single_file_name: null; + target_id: number; + target_type: string; + updated_at: string; + }; + type AppsCreateInstallationTokenResponseRepositoriesItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type AppsCreateInstallationTokenResponseRepositoriesItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsCreateInstallationTokenResponseRepositoriesItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: AppsCreateInstallationTokenResponseRepositoriesItemOwner; + permissions: AppsCreateInstallationTokenResponseRepositoriesItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type AppsCreateInstallationTokenResponsePermissions = { + contents: string; + issues: string; + }; + type AppsCreateInstallationTokenResponse = { + expires_at: string; + permissions: AppsCreateInstallationTokenResponsePermissions; + repositories: Array; + token: string; + }; + type AppsCreateFromManifestResponseOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsCreateFromManifestResponse = { + client_id: string; + client_secret: string; + created_at: string; + description: null; + external_url: string; + html_url: string; + id: number; + name: string; + node_id: string; + owner: AppsCreateFromManifestResponseOwner; + pem: string; + updated_at: string; + webhook_secret: string; + }; + type AppsCreateContentAttachmentResponse = { + body: string; + id: number; + title: string; + }; + type AppsCheckTokenResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsCheckTokenResponseApp = { + client_id: string; + name: string; + url: string; + }; + type AppsCheckTokenResponse = { + app: AppsCheckTokenResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + user: AppsCheckTokenResponseUser; + }; + type AppsCheckAuthorizationResponseUser = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type AppsCheckAuthorizationResponseApp = { + client_id: string; + name: string; + url: string; + }; + type AppsCheckAuthorizationResponse = { + app: AppsCheckAuthorizationResponseApp; + created_at: string; + fingerprint: string; + hashed_token: string; + id: number; + note: string; + note_url: string; + scopes: Array; + token: string; + token_last_eight: string; + updated_at: string; + url: string; + user: AppsCheckAuthorizationResponseUser; + }; + type AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePurchasePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePurchase = { + billing_cycle: string; + free_trial_ends_on: string; + next_billing_date: string; + on_free_trial: boolean; + plan: AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePurchasePlan; + unit_count: null; + updated_at: string; + }; + type AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePendingChangePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePendingChange = { + effective_date: string; + id: number; + plan: AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePendingChangePlan; + unit_count: null; + }; + type AppsCheckAccountIsAssociatedWithAnyStubbedResponse = { + email: null; + id: number; + login: string; + marketplace_pending_change: AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePendingChange; + marketplace_purchase: AppsCheckAccountIsAssociatedWithAnyStubbedResponseMarketplacePurchase; + organization_billing_email: string; + type: string; + url: string; + }; + type AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePurchasePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePurchase = { + billing_cycle: string; + free_trial_ends_on: string; + next_billing_date: string; + on_free_trial: boolean; + plan: AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePurchasePlan; + unit_count: null; + updated_at: string; + }; + type AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePendingChangePlan = { + accounts_url: string; + bullets: Array; + description: string; + has_free_trial: boolean; + id: number; + monthly_price_in_cents: number; + name: string; + number: number; + price_model: string; + state: string; + unit_name: null; + url: string; + yearly_price_in_cents: number; + }; + type AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePendingChange = { + effective_date: string; + id: number; + plan: AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePendingChangePlan; + unit_count: null; + }; + type AppsCheckAccountIsAssociatedWithAnyResponse = { + email: null; + id: number; + login: string; + marketplace_pending_change: AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePendingChange; + marketplace_purchase: AppsCheckAccountIsAssociatedWithAnyResponseMarketplacePurchase; + organization_billing_email: string; + type: string; + url: string; + }; + type ActivitySetThreadSubscriptionResponse = { + created_at: string; + ignored: boolean; + reason: null; + subscribed: boolean; + thread_url: string; + url: string; + }; + type ActivitySetRepoSubscriptionResponse = { + created_at: string; + ignored: boolean; + reason: null; + repository_url: string; + subscribed: boolean; + url: string; + }; + type ActivityListWatchersForRepoResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListWatchedReposForAuthenticatedUserResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ActivityListWatchedReposForAuthenticatedUserResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListWatchedReposForAuthenticatedUserResponseItemLicense = { + key: string; + name: string; + node_id: string; + spdx_id: string; + url: string; + }; + type ActivityListWatchedReposForAuthenticatedUserResponseItem = { + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + license: ActivityListWatchedReposForAuthenticatedUserResponseItemLicense; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ActivityListWatchedReposForAuthenticatedUserResponseItemOwner; + permissions: ActivityListWatchedReposForAuthenticatedUserResponseItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ActivityListStargazersForRepoResponseItem = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListReposWatchedByUserResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ActivityListReposWatchedByUserResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListReposWatchedByUserResponseItemLicense = { + key: string; + name: string; + node_id: string; + spdx_id: string; + url: string; + }; + type ActivityListReposWatchedByUserResponseItem = { + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + license: ActivityListReposWatchedByUserResponseItemLicense; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ActivityListReposWatchedByUserResponseItemOwner; + permissions: ActivityListReposWatchedByUserResponseItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ActivityListReposStarredByUserResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ActivityListReposStarredByUserResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListReposStarredByUserResponseItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ActivityListReposStarredByUserResponseItemOwner; + permissions: ActivityListReposStarredByUserResponseItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ActivityListReposStarredByAuthenticatedUserResponseItemPermissions = { + admin: boolean; + pull: boolean; + push: boolean; + }; + type ActivityListReposStarredByAuthenticatedUserResponseItemOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListReposStarredByAuthenticatedUserResponseItem = { + allow_merge_commit: boolean; + allow_rebase_merge: boolean; + allow_squash_merge: boolean; + archive_url: string; + archived: boolean; + assignees_url: string; + blobs_url: string; + branches_url: string; + clone_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + created_at: string; + default_branch: string; + deployments_url: string; + description: string; + disabled: boolean; + downloads_url: string; + events_url: string; + fork: boolean; + forks_count: number; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + has_downloads: boolean; + has_issues: boolean; + has_pages: boolean; + has_projects: boolean; + has_wiki: boolean; + homepage: string; + hooks_url: string; + html_url: string; + id: number; + is_template: boolean; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + language: null; + languages_url: string; + merges_url: string; + milestones_url: string; + mirror_url: string; + name: string; + network_count: number; + node_id: string; + notifications_url: string; + open_issues_count: number; + owner: ActivityListReposStarredByAuthenticatedUserResponseItemOwner; + permissions: ActivityListReposStarredByAuthenticatedUserResponseItemPermissions; + private: boolean; + pulls_url: string; + pushed_at: string; + releases_url: string; + size: number; + ssh_url: string; + stargazers_count: number; + stargazers_url: string; + statuses_url: string; + subscribers_count: number; + subscribers_url: string; + subscription_url: string; + svn_url: string; + tags_url: string; + teams_url: string; + template_repository: null; + topics: Array; + trees_url: string; + updated_at: string; + url: string; + watchers_count: number; + }; + type ActivityListNotificationsForRepoResponseItemSubject = { + latest_comment_url: string; + title: string; + type: string; + url: string; + }; + type ActivityListNotificationsForRepoResponseItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListNotificationsForRepoResponseItemRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ActivityListNotificationsForRepoResponseItemRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ActivityListNotificationsForRepoResponseItem = { + id: string; + last_read_at: string; + reason: string; + repository: ActivityListNotificationsForRepoResponseItemRepository; + subject: ActivityListNotificationsForRepoResponseItemSubject; + unread: boolean; + updated_at: string; + url: string; + }; + type ActivityListNotificationsResponseItemSubject = { + latest_comment_url: string; + title: string; + type: string; + url: string; + }; + type ActivityListNotificationsResponseItemRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityListNotificationsResponseItemRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ActivityListNotificationsResponseItemRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ActivityListNotificationsResponseItem = { + id: string; + last_read_at: string; + reason: string; + repository: ActivityListNotificationsResponseItemRepository; + subject: ActivityListNotificationsResponseItemSubject; + unread: boolean; + updated_at: string; + url: string; + }; + type ActivityListFeedsResponseLinksUser = { href: string; type: string }; + type ActivityListFeedsResponseLinksTimeline = { href: string; type: string }; + type ActivityListFeedsResponseLinksSecurityAdvisories = { + href: string; + type: string; + }; + type ActivityListFeedsResponseLinksCurrentUserPublic = { + href: string; + type: string; + }; + type ActivityListFeedsResponseLinksCurrentUserOrganizationsItem = { + href: string; + type: string; + }; + type ActivityListFeedsResponseLinksCurrentUserOrganization = { + href: string; + type: string; + }; + type ActivityListFeedsResponseLinksCurrentUserActor = { + href: string; + type: string; + }; + type ActivityListFeedsResponseLinksCurrentUser = { + href: string; + type: string; + }; + type ActivityListFeedsResponseLinks = { + current_user: ActivityListFeedsResponseLinksCurrentUser; + current_user_actor: ActivityListFeedsResponseLinksCurrentUserActor; + current_user_organization: ActivityListFeedsResponseLinksCurrentUserOrganization; + current_user_organizations: Array< + ActivityListFeedsResponseLinksCurrentUserOrganizationsItem + >; + current_user_public: ActivityListFeedsResponseLinksCurrentUserPublic; + security_advisories: ActivityListFeedsResponseLinksSecurityAdvisories; + timeline: ActivityListFeedsResponseLinksTimeline; + user: ActivityListFeedsResponseLinksUser; + }; + type ActivityListFeedsResponse = { + _links: ActivityListFeedsResponseLinks; + current_user_actor_url: string; + current_user_organization_url: string; + current_user_organization_urls: Array; + current_user_public_url: string; + current_user_url: string; + security_advisories_url: string; + timeline_url: string; + user_url: string; + }; + type ActivityGetThreadSubscriptionResponse = { + created_at: string; + ignored: boolean; + reason: null; + subscribed: boolean; + thread_url: string; + url: string; + }; + type ActivityGetThreadResponseSubject = { + latest_comment_url: string; + title: string; + type: string; + url: string; + }; + type ActivityGetThreadResponseRepositoryOwner = { + avatar_url: string; + events_url: string; + followers_url: string; + following_url: string; + gists_url: string; + gravatar_id: string; + html_url: string; + id: number; + login: string; + node_id: string; + organizations_url: string; + received_events_url: string; + repos_url: string; + site_admin: boolean; + starred_url: string; + subscriptions_url: string; + type: string; + url: string; + }; + type ActivityGetThreadResponseRepository = { + archive_url: string; + assignees_url: string; + blobs_url: string; + branches_url: string; + collaborators_url: string; + comments_url: string; + commits_url: string; + compare_url: string; + contents_url: string; + contributors_url: string; + deployments_url: string; + description: string; + downloads_url: string; + events_url: string; + fork: boolean; + forks_url: string; + full_name: string; + git_commits_url: string; + git_refs_url: string; + git_tags_url: string; + git_url: string; + html_url: string; + id: number; + issue_comment_url: string; + issue_events_url: string; + issues_url: string; + keys_url: string; + labels_url: string; + languages_url: string; + merges_url: string; + milestones_url: string; + name: string; + node_id: string; + notifications_url: string; + owner: ActivityGetThreadResponseRepositoryOwner; + private: boolean; + pulls_url: string; + releases_url: string; + ssh_url: string; + stargazers_url: string; + statuses_url: string; + subscribers_url: string; + subscription_url: string; + tags_url: string; + teams_url: string; + trees_url: string; + url: string; + }; + type ActivityGetThreadResponse = { + id: string; + last_read_at: string; + reason: string; + repository: ActivityGetThreadResponseRepository; + subject: ActivityGetThreadResponseSubject; + unread: boolean; + updated_at: string; + url: string; + }; + type ActivityGetRepoSubscriptionResponse = { + created_at: string; + ignored: boolean; + reason: null; + repository_url: string; + subscribed: boolean; + url: string; + }; + type ActivityListNotificationsResponse = Array< + ActivityListNotificationsResponseItem + >; + type ActivityListNotificationsForRepoResponse = Array< + ActivityListNotificationsForRepoResponseItem + >; + type ActivityListReposStarredByAuthenticatedUserResponse = Array< + ActivityListReposStarredByAuthenticatedUserResponseItem + >; + type ActivityListReposStarredByUserResponse = Array< + ActivityListReposStarredByUserResponseItem + >; + type ActivityListReposWatchedByUserResponse = Array< + ActivityListReposWatchedByUserResponseItem + >; + type ActivityListStargazersForRepoResponse = Array< + ActivityListStargazersForRepoResponseItem + >; + type ActivityListWatchedReposForAuthenticatedUserResponse = Array< + ActivityListWatchedReposForAuthenticatedUserResponseItem + >; + type ActivityListWatchersForRepoResponse = Array< + ActivityListWatchersForRepoResponseItem + >; + type AppsListAccountsUserOrOrgOnPlanResponse = Array< + AppsListAccountsUserOrOrgOnPlanResponseItem + >; + type AppsListAccountsUserOrOrgOnPlanStubbedResponse = Array< + AppsListAccountsUserOrOrgOnPlanStubbedResponseItem + >; + type AppsListInstallationsResponse = Array; + type AppsListMarketplacePurchasesForAuthenticatedUserResponse = Array< + AppsListMarketplacePurchasesForAuthenticatedUserResponseItem + >; + type AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponse = Array< + AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponseItem + >; + type AppsListPlansResponse = Array; + type AppsListPlansStubbedResponse = Array; + type ChecksListAnnotationsResponse = Array; + type CodesOfConductListConductCodesResponse = Array< + CodesOfConductListConductCodesResponseItem + >; + type GistsListResponse = Array; + type GistsListCommentsResponse = Array; + type GistsListCommitsResponse = Array; + type GistsListForksResponse = Array; + type GistsListPublicResponse = Array; + type GistsListPublicForUserResponse = Array< + GistsListPublicForUserResponseItem + >; + type GistsListStarredResponse = Array; + type GitListMatchingRefsResponse = Array; + type GitignoreListTemplatesResponse = Array; + type IssuesAddLabelsResponse = Array; + type IssuesListResponse = Array; + type IssuesListAssigneesResponse = Array; + type IssuesListCommentsResponse = Array; + type IssuesListCommentsForRepoResponse = Array< + IssuesListCommentsForRepoResponseItem + >; + type IssuesListEventsResponse = Array; + type IssuesListEventsForRepoResponse = Array< + IssuesListEventsForRepoResponseItem + >; + type IssuesListEventsForTimelineResponse = Array< + IssuesListEventsForTimelineResponseItem + >; + type IssuesListForAuthenticatedUserResponse = Array< + IssuesListForAuthenticatedUserResponseItem + >; + type IssuesListForOrgResponse = Array; + type IssuesListForRepoResponse = Array; + type IssuesListLabelsForMilestoneResponse = Array< + IssuesListLabelsForMilestoneResponseItem + >; + type IssuesListLabelsForRepoResponse = Array< + IssuesListLabelsForRepoResponseItem + >; + type IssuesListLabelsOnIssueResponse = Array< + IssuesListLabelsOnIssueResponseItem + >; + type IssuesListMilestonesForRepoResponse = Array< + IssuesListMilestonesForRepoResponseItem + >; + type IssuesRemoveLabelResponse = Array; + type IssuesReplaceLabelsResponse = Array; + type LicensesListResponse = Array; + type LicensesListCommonlyUsedResponse = Array< + LicensesListCommonlyUsedResponseItem + >; + type MigrationsGetCommitAuthorsResponse = Array< + MigrationsGetCommitAuthorsResponseItem + >; + type MigrationsGetLargeFilesResponse = Array< + MigrationsGetLargeFilesResponseItem + >; + type MigrationsListForAuthenticatedUserResponse = Array< + MigrationsListForAuthenticatedUserResponseItem + >; + type MigrationsListForOrgResponse = Array; + type OauthAuthorizationsListAuthorizationsResponse = Array< + OauthAuthorizationsListAuthorizationsResponseItem + >; + type OauthAuthorizationsListGrantsResponse = Array< + OauthAuthorizationsListGrantsResponseItem + >; + type OrgsListResponse = Array; + type OrgsListBlockedUsersResponse = Array; + type OrgsListForAuthenticatedUserResponse = Array< + OrgsListForAuthenticatedUserResponseItem + >; + type OrgsListForUserResponse = Array; + type OrgsListHooksResponse = Array; + type OrgsListInvitationTeamsResponse = Array< + OrgsListInvitationTeamsResponseItem + >; + type OrgsListMembersResponse = Array; + type OrgsListMembershipsResponse = Array; + type OrgsListOutsideCollaboratorsResponse = Array< + OrgsListOutsideCollaboratorsResponseItem + >; + type OrgsListPendingInvitationsResponse = Array< + OrgsListPendingInvitationsResponseItem + >; + type OrgsListPublicMembersResponse = Array; + type ProjectsListCardsResponse = Array; + type ProjectsListCollaboratorsResponse = Array< + ProjectsListCollaboratorsResponseItem + >; + type ProjectsListColumnsResponse = Array; + type ProjectsListForOrgResponse = Array; + type ProjectsListForRepoResponse = Array; + type ProjectsListForUserResponse = Array; + type PullsGetCommentsForReviewResponse = Array< + PullsGetCommentsForReviewResponseItem + >; + type PullsListResponse = Array; + type PullsListCommentsResponse = Array; + type PullsListCommentsForRepoResponse = Array< + PullsListCommentsForRepoResponseItem + >; + type PullsListCommitsResponse = Array; + type PullsListFilesResponse = Array; + type PullsListReviewsResponse = Array; + type ReactionsListForCommitCommentResponse = Array< + ReactionsListForCommitCommentResponseItem + >; + type ReactionsListForIssueResponse = Array; + type ReactionsListForIssueCommentResponse = Array< + ReactionsListForIssueCommentResponseItem + >; + type ReactionsListForPullRequestReviewCommentResponse = Array< + ReactionsListForPullRequestReviewCommentResponseItem + >; + type ReactionsListForTeamDiscussionResponse = Array< + ReactionsListForTeamDiscussionResponseItem + >; + type ReactionsListForTeamDiscussionCommentResponse = Array< + ReactionsListForTeamDiscussionCommentResponseItem + >; + type ReposAddProtectedBranchAppRestrictionsResponse = Array< + ReposAddProtectedBranchAppRestrictionsResponseItem + >; + type ReposAddProtectedBranchRequiredStatusChecksContextsResponse = Array< + string + >; + type ReposAddProtectedBranchTeamRestrictionsResponse = Array< + ReposAddProtectedBranchTeamRestrictionsResponseItem + >; + type ReposAddProtectedBranchUserRestrictionsResponse = Array< + ReposAddProtectedBranchUserRestrictionsResponseItem + >; + type ReposGetAppsWithAccessToProtectedBranchResponse = Array< + ReposGetAppsWithAccessToProtectedBranchResponseItem + >; + type ReposGetCodeFrequencyStatsResponse = Array>; + type ReposGetCommitActivityStatsResponse = Array< + ReposGetCommitActivityStatsResponseItem + >; + type ReposGetContributorsStatsResponse = Array< + ReposGetContributorsStatsResponseItem + >; + type ReposGetPunchCardStatsResponse = Array>; + type ReposGetTeamsWithAccessToProtectedBranchResponse = Array< + ReposGetTeamsWithAccessToProtectedBranchResponseItem + >; + type ReposGetTopPathsResponse = Array; + type ReposGetTopReferrersResponse = Array; + type ReposGetUsersWithAccessToProtectedBranchResponse = Array< + ReposGetUsersWithAccessToProtectedBranchResponseItem + >; + type ReposListAppsWithAccessToProtectedBranchResponse = Array< + ReposListAppsWithAccessToProtectedBranchResponseItem + >; + type ReposListAssetsForReleaseResponse = Array< + ReposListAssetsForReleaseResponseItem + >; + type ReposListBranchesResponse = Array; + type ReposListBranchesForHeadCommitResponse = Array< + ReposListBranchesForHeadCommitResponseItem + >; + type ReposListCollaboratorsResponse = Array< + ReposListCollaboratorsResponseItem + >; + type ReposListCommentsForCommitResponse = Array< + ReposListCommentsForCommitResponseItem + >; + type ReposListCommitCommentsResponse = Array< + ReposListCommitCommentsResponseItem + >; + type ReposListCommitsResponse = Array; + type ReposListContributorsResponse = Array; + type ReposListDeployKeysResponse = Array; + type ReposListDeploymentStatusesResponse = Array< + ReposListDeploymentStatusesResponseItem + >; + type ReposListDeploymentsResponse = Array; + type ReposListDownloadsResponse = Array; + type ReposListForOrgResponse = Array; + type ReposListForksResponse = Array; + type ReposListHooksResponse = Array; + type ReposListInvitationsResponse = Array; + type ReposListInvitationsForAuthenticatedUserResponse = Array< + ReposListInvitationsForAuthenticatedUserResponseItem + >; + type ReposListPagesBuildsResponse = Array; + type ReposListProtectedBranchRequiredStatusChecksContextsResponse = Array< + string + >; + type ReposListProtectedBranchTeamRestrictionsResponse = Array< + ReposListProtectedBranchTeamRestrictionsResponseItem + >; + type ReposListProtectedBranchUserRestrictionsResponse = Array< + ReposListProtectedBranchUserRestrictionsResponseItem + >; + type ReposListPublicResponse = Array; + type ReposListPullRequestsAssociatedWithCommitResponse = Array< + ReposListPullRequestsAssociatedWithCommitResponseItem + >; + type ReposListReleasesResponse = Array; + type ReposListStatusesForRefResponse = Array< + ReposListStatusesForRefResponseItem + >; + type ReposListTagsResponse = Array; + type ReposListTeamsResponse = Array; + type ReposListTeamsWithAccessToProtectedBranchResponse = Array< + ReposListTeamsWithAccessToProtectedBranchResponseItem + >; + type ReposListUsersWithAccessToProtectedBranchResponse = Array< + ReposListUsersWithAccessToProtectedBranchResponseItem + >; + type ReposRemoveProtectedBranchAppRestrictionsResponse = Array< + ReposRemoveProtectedBranchAppRestrictionsResponseItem + >; + type ReposRemoveProtectedBranchRequiredStatusChecksContextsResponse = Array< + string + >; + type ReposRemoveProtectedBranchTeamRestrictionsResponse = Array< + ReposRemoveProtectedBranchTeamRestrictionsResponseItem + >; + type ReposRemoveProtectedBranchUserRestrictionsResponse = Array< + ReposRemoveProtectedBranchUserRestrictionsResponseItem + >; + type ReposReplaceProtectedBranchAppRestrictionsResponse = Array< + ReposReplaceProtectedBranchAppRestrictionsResponseItem + >; + type ReposReplaceProtectedBranchRequiredStatusChecksContextsResponse = Array< + string + >; + type ReposReplaceProtectedBranchTeamRestrictionsResponse = Array< + ReposReplaceProtectedBranchTeamRestrictionsResponseItem + >; + type ReposReplaceProtectedBranchUserRestrictionsResponse = Array< + ReposReplaceProtectedBranchUserRestrictionsResponseItem + >; + type TeamsListResponse = Array; + type TeamsListChildResponse = Array; + type TeamsListDiscussionCommentsResponse = Array< + TeamsListDiscussionCommentsResponseItem + >; + type TeamsListDiscussionsResponse = Array; + type TeamsListForAuthenticatedUserResponse = Array< + TeamsListForAuthenticatedUserResponseItem + >; + type TeamsListMembersResponse = Array; + type TeamsListPendingInvitationsResponse = Array< + TeamsListPendingInvitationsResponseItem + >; + type TeamsListProjectsResponse = Array; + type TeamsListReposResponse = Array; + type UsersAddEmailsResponse = Array; + type UsersListResponse = Array; + type UsersListBlockedResponse = Array; + type UsersListEmailsResponse = Array; + type UsersListFollowersForAuthenticatedUserResponse = Array< + UsersListFollowersForAuthenticatedUserResponseItem + >; + type UsersListFollowersForUserResponse = Array< + UsersListFollowersForUserResponseItem + >; + type UsersListFollowingForAuthenticatedUserResponse = Array< + UsersListFollowingForAuthenticatedUserResponseItem + >; + type UsersListFollowingForUserResponse = Array< + UsersListFollowingForUserResponseItem + >; + type UsersListGpgKeysResponse = Array; + type UsersListGpgKeysForUserResponse = Array< + UsersListGpgKeysForUserResponseItem + >; + type UsersListPublicEmailsResponse = Array; + type UsersListPublicKeysResponse = Array; + type UsersListPublicKeysForUserResponse = Array< + UsersListPublicKeysForUserResponseItem + >; + type UsersTogglePrimaryEmailVisibilityResponse = Array< + UsersTogglePrimaryEmailVisibilityResponseItem + >; + + // param types + export type ActivityCheckStarringRepoParams = { + owner: string; + + repo: string; + }; + export type ActivityDeleteRepoSubscriptionParams = { + owner: string; + + repo: string; + }; + export type ActivityDeleteThreadSubscriptionParams = { + thread_id: number; + }; + export type ActivityGetRepoSubscriptionParams = { + owner: string; + + repo: string; + }; + export type ActivityGetThreadParams = { + thread_id: number; + }; + export type ActivityGetThreadSubscriptionParams = { + thread_id: number; + }; + export type ActivityListEventsForOrgParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type ActivityListEventsForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type ActivityListNotificationsParams = { + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + }; + export type ActivityListNotificationsForRepoParams = { + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + }; + export type ActivityListPublicEventsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type ActivityListPublicEventsForOrgParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type ActivityListPublicEventsForRepoNetworkParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ActivityListPublicEventsForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type ActivityListReceivedEventsForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type ActivityListReceivedPublicEventsForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type ActivityListRepoEventsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ActivityListReposStarredByAuthenticatedUserParams = { + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + }; + export type ActivityListReposStarredByUserParams = { + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + + username: string; + }; + export type ActivityListReposWatchedByUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type ActivityListStargazersForRepoParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ActivityListWatchedReposForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type ActivityListWatchersForRepoParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ActivityMarkAsReadParams = { + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + }; + export type ActivityMarkNotificationsAsReadForRepoParams = { + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; + + owner: string; + + repo: string; + }; + export type ActivityMarkThreadAsReadParams = { + thread_id: number; + }; + export type ActivitySetRepoSubscriptionParams = { + /** + * Determines if all notifications should be blocked from this repository. + */ + ignored?: boolean; + + owner: string; + + repo: string; + /** + * Determines if notifications should be received from this repository. + */ + subscribed?: boolean; + }; + export type ActivitySetThreadSubscriptionParams = { + /** + * Unsubscribes and subscribes you to a conversation. Set `ignored` to `true` to block all notifications from this thread. + */ + ignored?: boolean; + + thread_id: number; + }; + export type ActivityStarRepoParams = { + owner: string; + + repo: string; + }; + export type ActivityUnstarRepoParams = { + owner: string; + + repo: string; + }; + export type AppsAddRepoToInstallationParams = { + installation_id: number; + + repository_id: number; + }; + export type AppsCheckAccountIsAssociatedWithAnyParams = { + account_id: number; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsCheckAccountIsAssociatedWithAnyStubbedParams = { + account_id: number; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsCheckAuthorizationParams = { + access_token: string; + + client_id: string; + }; + export type AppsCheckTokenParams = { + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; + + client_id: string; + }; + export type AppsCreateContentAttachmentParams = { + /** + * The body text of the content attachment displayed in the body or comment of an issue or pull request. This parameter supports markdown. + */ + body: string; + + content_reference_id: number; + /** + * The title of the content attachment displayed in the body or comment of an issue or pull request. + */ + title: string; + }; + export type AppsCreateFromManifestParams = { + code: string; + }; + export type AppsCreateInstallationTokenParams = { + installation_id: number; + /** + * The permissions granted to the access token. The permissions object includes the permission names and their access type. For a complete list of permissions and allowable values, see "[GitHub App permissions](https://developer.github.com/apps/building-github-apps/creating-github-apps-using-url-parameters/#github-app-permissions)." + */ + permissions?: AppsCreateInstallationTokenParamsPermissions; + /** + * The `id`s of the repositories that the installation token can access. Providing repository `id`s restricts the access of an installation token to specific repositories. You can use the "[List repositories](https://developer.github.com/v3/apps/installations/#list-repositories)" endpoint to get the `id` of all repositories that an installation can access. For example, you can select specific repositories when creating an installation token to restrict the number of repositories that can be cloned using the token. + */ + repository_ids?: number[]; + }; + export type AppsDeleteAuthorizationParams = { + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; + + client_id: string; + }; + export type AppsDeleteInstallationParams = { + installation_id: number; + }; + export type AppsDeleteTokenParams = { + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; + + client_id: string; + }; + export type AppsFindOrgInstallationParams = { + org: string; + }; + export type AppsFindRepoInstallationParams = { + owner: string; + + repo: string; + }; + export type AppsFindUserInstallationParams = { + username: string; + }; + export type AppsGetBySlugParams = { + app_slug: string; + }; + export type AppsGetInstallationParams = { + installation_id: number; + }; + export type AppsGetOrgInstallationParams = { + org: string; + }; + export type AppsGetRepoInstallationParams = { + owner: string; + + repo: string; + }; + export type AppsGetUserInstallationParams = { + username: string; + }; + export type AppsListAccountsUserOrOrgOnPlanParams = { + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + }; + export type AppsListAccountsUserOrOrgOnPlanStubbedParams = { + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + }; + export type AppsListInstallationReposForAuthenticatedUserParams = { + installation_id: number; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsListInstallationsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsListInstallationsForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsListMarketplacePurchasesForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsListMarketplacePurchasesForAuthenticatedUserStubbedParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsListPlansParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsListPlansStubbedParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsListReposParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type AppsRemoveRepoFromInstallationParams = { + installation_id: number; + + repository_id: number; + }; + export type AppsResetAuthorizationParams = { + access_token: string; + + client_id: string; + }; + export type AppsResetTokenParams = { + /** + * The OAuth access token used to authenticate to the GitHub API. + */ + access_token?: string; + + client_id: string; + }; + export type AppsRevokeAuthorizationForApplicationParams = { + access_token: string; + + client_id: string; + }; + export type AppsRevokeGrantForApplicationParams = { + access_token: string; + + client_id: string; + }; + export type ChecksCreateParams = { + /** + * Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://developer.github.com/v3/activity/events/types/#checkrunevent) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksCreateParamsActions[]; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `timed_out`, or `action_required`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required"; + /** + * The URL of the integrator's site that has the full details of the check. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * The SHA of the commit. + */ + head_sha: string; + /** + * The name of the check. For example, "code-coverage". + */ + name: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object) description. + */ + output?: ChecksCreateParamsOutput; + + owner: string; + + repo: string; + /** + * The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + }; + export type ChecksCreateSuiteParams = { + /** + * The sha of the head commit. + */ + head_sha: string; + + owner: string; + + repo: string; + }; + export type ChecksGetParams = { + check_run_id: number; + + owner: string; + + repo: string; + }; + export type ChecksGetSuiteParams = { + check_suite_id: number; + + owner: string; + + repo: string; + }; + export type ChecksListAnnotationsParams = { + check_run_id: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ChecksListForRefParams = { + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + ref: string; + + repo: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + }; + export type ChecksListForSuiteParams = { + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + + check_suite_id: number; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + }; + export type ChecksListSuitesForRefParams = { + /** + * Filters check suites by GitHub App `id`. + */ + app_id?: number; + /** + * Filters checks suites by the name of the [check run](https://developer.github.com/v3/checks/runs/). + */ + check_name?: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + ref: string; + + repo: string; + }; + export type ChecksRerequestSuiteParams = { + check_suite_id: number; + + owner: string; + + repo: string; + }; + export type ChecksSetSuitesPreferencesParams = { + /** + * Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://developer.github.com/v3/checks/suites/#auto_trigger_checks-object) description for details. + */ + auto_trigger_checks?: ChecksSetSuitesPreferencesParamsAutoTriggerChecks[]; + + owner: string; + + repo: string; + }; + export type ChecksUpdateParams = { + /** + * Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksUpdateParamsActions[]; + + check_run_id: number; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `timed_out`, or `action_required`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required"; + /** + * The URL of the integrator's site that has the full details of the check. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * The name of the check. For example, "code-coverage". + */ + name?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object-1) description. + */ + output?: ChecksUpdateParamsOutput; + + owner: string; + + repo: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + }; + export type CodesOfConductGetConductCodeParams = { + key: string; + }; + export type CodesOfConductGetForRepoParams = { + owner: string; + + repo: string; + }; + export type GistsCheckIsStarredParams = { + gist_id: string; + }; + export type GistsCreateParams = { + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * The filenames and content of each file in the gist. The keys in the `files` object represent the filename and have the type `string`. + */ + files: GistsCreateParamsFiles; + /** + * When `true`, the gist will be public and available for anyone to see. + */ + public?: boolean; + }; + export type GistsCreateCommentParams = { + /** + * The comment text. + */ + body: string; + + gist_id: string; + }; + export type GistsDeleteParams = { + gist_id: string; + }; + export type GistsDeleteCommentParams = { + comment_id: number; + + gist_id: string; + }; + export type GistsForkParams = { + gist_id: string; + }; + export type GistsGetParams = { + gist_id: string; + }; + export type GistsGetCommentParams = { + comment_id: number; + + gist_id: string; + }; + export type GistsGetRevisionParams = { + gist_id: string; + + sha: string; + }; + export type GistsListParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + }; + export type GistsListCommentsParams = { + gist_id: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type GistsListCommitsParams = { + gist_id: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type GistsListForksParams = { + gist_id: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type GistsListPublicParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + }; + export type GistsListPublicForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + + username: string; + }; + export type GistsListStarredParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + }; + export type GistsStarParams = { + gist_id: string; + }; + export type GistsUnstarParams = { + gist_id: string; + }; + export type GistsUpdateParams = { + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * The filenames and content that make up this gist. + */ + files?: GistsUpdateParamsFiles; + + gist_id: string; + }; + export type GistsUpdateCommentParams = { + /** + * The comment text. + */ + body: string; + + comment_id: number; + + gist_id: string; + }; + export type GitCreateBlobParams = { + /** + * The new blob's content. + */ + content: string; + /** + * The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + */ + encoding?: string; + + owner: string; + + repo: string; + }; + export type GitCreateCommitParams = { + /** + * Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. + */ + author?: GitCreateCommitParamsAuthor; + /** + * Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. + */ + committer?: GitCreateCommitParamsCommitter; + /** + * The commit message + */ + message: string; + + owner: string; + /** + * The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. + */ + parents: string[]; + + repo: string; + /** + * The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. + */ + signature?: string; + /** + * The SHA of the tree object this commit points to + */ + tree: string; + }; + export type GitCreateRefParams = { + owner: string; + /** + * The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. + */ + ref: string; + + repo: string; + /** + * The SHA1 value for this reference. + */ + sha: string; + }; + export type GitCreateTagParams = { + /** + * The tag message. + */ + message: string; + /** + * The SHA of the git object this is tagging. + */ + object: string; + + owner: string; + + repo: string; + /** + * The tag's name. This is typically a version (e.g., "v0.0.1"). + */ + tag: string; + /** + * An object with information about the individual creating the tag. + */ + tagger?: GitCreateTagParamsTagger; + /** + * The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + */ + type: "commit" | "tree" | "blob"; + }; + export type GitCreateTreeParams = { + /** + * The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted. + */ + base_tree?: string; + + owner: string; + + repo: string; + /** + * Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. + */ + tree: GitCreateTreeParamsTree[]; + }; + export type GitDeleteRefParams = { + owner: string; + + ref: string; + + repo: string; + }; + export type GitGetBlobParams = { + file_sha: string; + + owner: string; + + repo: string; + }; + export type GitGetCommitParams = { + commit_sha: string; + + owner: string; + + repo: string; + }; + export type GitGetRefParams = { + owner: string; + + ref: string; + + repo: string; + }; + export type GitGetTagParams = { + owner: string; + + repo: string; + + tag_sha: string; + }; + export type GitGetTreeParams = { + owner: string; + + recursive?: "1"; + + repo: string; + + tree_sha: string; + }; + export type GitListMatchingRefsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + ref: string; + + repo: string; + }; + export type GitListRefsParams = { + /** + * Filter by sub-namespace (reference prefix). Most commen examples would be `'heads/'` and `'tags/'` to retrieve branches or tags + */ + namespace?: string; + + owner: string; + + page?: number; + + per_page?: number; + + repo: string; + }; + export type GitUpdateRefParams = { + /** + * Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + */ + force?: boolean; + + owner: string; + + ref: string; + + repo: string; + /** + * The SHA1 value to set this reference to + */ + sha: string; + }; + export type GitignoreGetTemplateParams = { + name: string; + }; + export type InteractionsAddOrUpdateRestrictionsForOrgParams = { + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests in public repositories for the given organization. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; + + org: string; + }; + export type InteractionsAddOrUpdateRestrictionsForRepoParams = { + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests for the given repository. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; + + owner: string; + + repo: string; + }; + export type InteractionsGetRestrictionsForOrgParams = { + org: string; + }; + export type InteractionsGetRestrictionsForRepoParams = { + owner: string; + + repo: string; + }; + export type InteractionsRemoveRestrictionsForOrgParams = { + org: string; + }; + export type InteractionsRemoveRestrictionsForRepoParams = { + owner: string; + + repo: string; + }; + export type IssuesAddAssigneesParamsDeprecatedNumber = { + /** + * Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesAddAssigneesParams = { + /** + * Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; + + issue_number: number; + + owner: string; + + repo: string; + }; + export type IssuesAddLabelsParamsDeprecatedNumber = { + /** + * The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels: string[]; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesAddLabelsParams = { + issue_number: number; + /** + * The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels: string[]; + + owner: string; + + repo: string; + }; + export type IssuesCheckAssigneeParams = { + assignee: string; + + owner: string; + + repo: string; + }; + export type IssuesCreateParamsDeprecatedAssignee = { + /** + * Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ + * @deprecated "assignee" parameter has been deprecated and will be removed in future + */ + assignee?: string; + /** + * Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; + /** + * The contents of the issue. + */ + body?: string; + /** + * Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._ + */ + milestone?: number; + + owner: string; + + repo: string; + /** + * The title of the issue. + */ + title: string; + }; + export type IssuesCreateParams = { + /** + * Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; + /** + * The contents of the issue. + */ + body?: string; + /** + * Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._ + */ + milestone?: number; + + owner: string; + + repo: string; + /** + * The title of the issue. + */ + title: string; + }; + export type IssuesCreateCommentParamsDeprecatedNumber = { + /** + * The contents of the comment. + */ + body: string; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesCreateCommentParams = { + /** + * The contents of the comment. + */ + body: string; + + issue_number: number; + + owner: string; + + repo: string; + }; + export type IssuesCreateLabelParams = { + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color: string; + /** + * A short description of the label. + */ + description?: string; + /** + * The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + name: string; + + owner: string; + + repo: string; + }; + export type IssuesCreateMilestoneParams = { + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + + owner: string; + + repo: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the milestone. + */ + title: string; + }; + export type IssuesDeleteCommentParams = { + comment_id: number; + + owner: string; + + repo: string; + }; + export type IssuesDeleteLabelParams = { + name: string; + + owner: string; + + repo: string; + }; + export type IssuesDeleteMilestoneParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "milestone_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesDeleteMilestoneParams = { + milestone_number: number; + + owner: string; + + repo: string; + }; + export type IssuesGetParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesGetParams = { + issue_number: number; + + owner: string; + + repo: string; + }; + export type IssuesGetCommentParams = { + comment_id: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesGetEventParams = { + event_id: number; + + owner: string; + + repo: string; + }; + export type IssuesGetLabelParams = { + name: string; + + owner: string; + + repo: string; + }; + export type IssuesGetMilestoneParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "milestone_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesGetMilestoneParams = { + milestone_number: number; + + owner: string; + + repo: string; + }; + export type IssuesListParams = { + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + }; + export type IssuesListAssigneesParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListCommentsParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + }; + export type IssuesListCommentsParams = { + issue_number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + }; + export type IssuesListCommentsForRepoParams = { + /** + * Either `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + + owner: string; + + repo: string; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Either `created` or `updated`. + */ + sort?: "created" | "updated"; + }; + export type IssuesListEventsParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListEventsParams = { + issue_number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListEventsForRepoParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListEventsForTimelineParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListEventsForTimelineParams = { + issue_number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListForAuthenticatedUserParams = { + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + }; + export type IssuesListForOrgParams = { + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + }; + export type IssuesListForRepoParams = { + /** + * Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. + */ + assignee?: string; + /** + * The user that created the issue. + */ + creator?: string; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * A user that's mentioned in the issue. + */ + mentioned?: string; + /** + * If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. + */ + milestone?: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + }; + export type IssuesListLabelsForMilestoneParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "milestone_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListLabelsForMilestoneParams = { + milestone_number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListLabelsForRepoParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListLabelsOnIssueParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListLabelsOnIssueParams = { + issue_number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type IssuesListMilestonesForRepoParams = { + /** + * The direction of the sort. Either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * What to sort results by. Either `due_on` or `completeness`. + */ + sort?: "due_on" | "completeness"; + /** + * The state of the milestone. Either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + }; + export type IssuesLockParamsDeprecatedNumber = { + /** + * The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * \* `off-topic` + * \* `too heated` + * \* `resolved` + * \* `spam` + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesLockParams = { + issue_number: number; + /** + * The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * \* `off-topic` + * \* `too heated` + * \* `resolved` + * \* `spam` + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; + + owner: string; + + repo: string; + }; + export type IssuesRemoveAssigneesParamsDeprecatedNumber = { + /** + * Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesRemoveAssigneesParams = { + /** + * Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; + + issue_number: number; + + owner: string; + + repo: string; + }; + export type IssuesRemoveLabelParamsDeprecatedNumber = { + name: string; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesRemoveLabelParams = { + issue_number: number; + + name: string; + + owner: string; + + repo: string; + }; + export type IssuesRemoveLabelsParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesRemoveLabelsParams = { + issue_number: number; + + owner: string; + + repo: string; + }; + export type IssuesReplaceLabelsParamsDeprecatedNumber = { + /** + * The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels?: string[]; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesReplaceLabelsParams = { + issue_number: number; + /** + * The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels?: string[]; + + owner: string; + + repo: string; + }; + export type IssuesUnlockParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type IssuesUnlockParams = { + issue_number: number; + + owner: string; + + repo: string; + }; + export type IssuesUpdateParamsDeprecatedNumber = { + /** + * Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; + /** + * The contents of the issue. + */ + body?: string; + /** + * Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + /** + * State of the issue. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the issue. + */ + title?: string; + }; + export type IssuesUpdateParamsDeprecatedAssignee = { + /** + * Login for the user that this issue should be assigned to. **This field is deprecated.** + * @deprecated "assignee" parameter has been deprecated and will be removed in future + */ + assignee?: string; + /** + * Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; + /** + * The contents of the issue. + */ + body?: string; + + issue_number: number; + /** + * Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + + owner: string; + + repo: string; + /** + * State of the issue. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the issue. + */ + title?: string; + }; + export type IssuesUpdateParams = { + /** + * Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; + /** + * The contents of the issue. + */ + body?: string; + + issue_number: number; + /** + * Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + + owner: string; + + repo: string; + /** + * State of the issue. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the issue. + */ + title?: string; + }; + export type IssuesUpdateCommentParams = { + /** + * The contents of the comment. + */ + body: string; + + comment_id: number; + + owner: string; + + repo: string; + }; + export type IssuesUpdateLabelParams = { + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color?: string; + + current_name: string; + /** + * A short description of the label. + */ + description?: string; + /** + * The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + name?: string; + + owner: string; + + repo: string; + }; + export type IssuesUpdateMilestoneParamsDeprecatedNumber = { + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + /** + * @deprecated "number" parameter renamed to "milestone_number" + */ + number: number; + + owner: string; + + repo: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the milestone. + */ + title?: string; + }; + export type IssuesUpdateMilestoneParams = { + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; + + milestone_number: number; + + owner: string; + + repo: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the milestone. + */ + title?: string; + }; + export type LicensesGetParams = { + license: string; + }; + export type LicensesGetForRepoParams = { + owner: string; + + repo: string; + }; + export type MarkdownRenderParams = { + /** + * The repository context to use when creating references in `gfm` mode. Omit this parameter when using `markdown` mode. + */ + context?: string; + /** + * The rendering mode. Can be either: + * \* `markdown` to render a document in plain Markdown, just like README.md files are rendered. + * \* `gfm` to render a document in [GitHub Flavored Markdown](https://github.github.com/gfm/), which creates links for user mentions as well as references to SHA-1 hashes, issues, and pull requests. + */ + mode?: "markdown" | "gfm"; + /** + * The Markdown text to render in HTML. Markdown content must be 400 KB or less. + */ + text: string; + }; + export type MarkdownRenderRawParams = { + data: string; + }; + export type MigrationsCancelImportParams = { + owner: string; + + repo: string; + }; + export type MigrationsDeleteArchiveForAuthenticatedUserParams = { + migration_id: number; + }; + export type MigrationsDeleteArchiveForOrgParams = { + migration_id: number; + + org: string; + }; + export type MigrationsGetArchiveForAuthenticatedUserParams = { + migration_id: number; + }; + export type MigrationsGetArchiveForOrgParams = { + migration_id: number; + + org: string; + }; + export type MigrationsGetCommitAuthorsParams = { + owner: string; + + repo: string; + /** + * Only authors found after this id are returned. Provide the highest author ID you've seen so far. New authors may be added to the list at any point while the importer is performing the `raw` step. + */ + since?: string; + }; + export type MigrationsGetImportProgressParams = { + owner: string; + + repo: string; + }; + export type MigrationsGetLargeFilesParams = { + owner: string; + + repo: string; + }; + export type MigrationsGetStatusForAuthenticatedUserParams = { + migration_id: number; + }; + export type MigrationsGetStatusForOrgParams = { + migration_id: number; + + org: string; + }; + export type MigrationsListForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type MigrationsListForOrgParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type MigrationsMapCommitAuthorParams = { + author_id: number; + /** + * The new Git author email. + */ + email?: string; + /** + * The new Git author name. + */ + name?: string; + + owner: string; + + repo: string; + }; + export type MigrationsSetLfsPreferenceParams = { + owner: string; + + repo: string; + /** + * Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import). + */ + use_lfs: "opt_in" | "opt_out"; + }; + export type MigrationsStartForAuthenticatedUserParams = { + /** + * Does not include attachments uploaded to GitHub.com in the migration data when set to `true`. Excluding attachments will reduce the migration archive file size. + */ + exclude_attachments?: boolean; + /** + * Locks the `repositories` to prevent changes during the migration when set to `true`. + */ + lock_repositories?: boolean; + /** + * An array of repositories to include in the migration. + */ + repositories: string[]; + }; + export type MigrationsStartForOrgParams = { + /** + * Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + */ + exclude_attachments?: boolean; + /** + * Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + */ + lock_repositories?: boolean; + + org: string; + /** + * A list of arrays indicating which repositories should be migrated. + */ + repositories: string[]; + }; + export type MigrationsStartImportParams = { + owner: string; + + repo: string; + /** + * For a tfvc import, the name of the project that is being imported. + */ + tfvc_project?: string; + /** + * The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** + * If authentication is required, the password to provide to `vcs_url`. + */ + vcs_password?: string; + /** + * The URL of the originating repository. + */ + vcs_url: string; + /** + * If authentication is required, the username to provide to `vcs_url`. + */ + vcs_username?: string; + }; + export type MigrationsUnlockRepoForAuthenticatedUserParams = { + migration_id: number; + + repo_name: string; + }; + export type MigrationsUnlockRepoForOrgParams = { + migration_id: number; + + org: string; + + repo_name: string; + }; + export type MigrationsUpdateImportParams = { + owner: string; + + repo: string; + /** + * The password to provide to the originating repository. + */ + vcs_password?: string; + /** + * The username to provide to the originating repository. + */ + vcs_username?: string; + }; + export type OauthAuthorizationsCheckAuthorizationParams = { + access_token: string; + + client_id: string; + }; + export type OauthAuthorizationsCreateAuthorizationParams = { + /** + * The 20 character OAuth app client key for which to create the token. + */ + client_id?: string; + /** + * The 40 character OAuth app client secret for which to create the token. + */ + client_secret?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + }; + export type OauthAuthorizationsDeleteAuthorizationParams = { + authorization_id: number; + }; + export type OauthAuthorizationsDeleteGrantParams = { + grant_id: number; + }; + export type OauthAuthorizationsGetAuthorizationParams = { + authorization_id: number; + }; + export type OauthAuthorizationsGetGrantParams = { + grant_id: number; + }; + export type OauthAuthorizationsGetOrCreateAuthorizationForAppParams = { + client_id: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A unique string to distinguish an authorization from others created for the same client and user. If provided, this API is functionally equivalent to [Get-or-create an authorization for a specific app and fingerprint](https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint). + */ + fingerprint?: string; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + }; + export type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintParams = { + client_id: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + + fingerprint: string; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + }; + export type OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintParams = { + client_id: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + + fingerprint: string; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + }; + export type OauthAuthorizationsListAuthorizationsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OauthAuthorizationsListGrantsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OauthAuthorizationsResetAuthorizationParams = { + access_token: string; + + client_id: string; + }; + export type OauthAuthorizationsRevokeAuthorizationForApplicationParams = { + access_token: string; + + client_id: string; + }; + export type OauthAuthorizationsRevokeGrantForApplicationParams = { + access_token: string; + + client_id: string; + }; + export type OauthAuthorizationsUpdateAuthorizationParams = { + /** + * A list of scopes to add to this authorization. + */ + add_scopes?: string[]; + + authorization_id: number; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A list of scopes to remove from this authorization. + */ + remove_scopes?: string[]; + /** + * Replaces the authorization scopes with these. + */ + scopes?: string[]; + }; + export type OrgsAddOrUpdateMembershipParams = { + org: string; + /** + * The role to give the user in the organization. Can be one of: + * \* `admin` - The user will become an owner of the organization. + * \* `member` - The user will become a non-owner member of the organization. + */ + role?: "admin" | "member"; + + username: string; + }; + export type OrgsBlockUserParams = { + org: string; + + username: string; + }; + export type OrgsCheckBlockedUserParams = { + org: string; + + username: string; + }; + export type OrgsCheckMembershipParams = { + org: string; + + username: string; + }; + export type OrgsCheckPublicMembershipParams = { + org: string; + + username: string; + }; + export type OrgsConcealMembershipParams = { + org: string; + + username: string; + }; + export type OrgsConvertMemberToOutsideCollaboratorParams = { + org: string; + + username: string; + }; + export type OrgsCreateHookParams = { + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#create-hook-config-params). + */ + config: OrgsCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. + */ + events?: string[]; + /** + * Must be passed as "web". + */ + name: string; + + org: string; + }; + export type OrgsCreateInvitationParams = { + /** + * **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. + */ + email?: string; + /** + * **Required unless you provide `email`**. GitHub user ID for the person you are inviting. + */ + invitee_id?: number; + + org: string; + /** + * Specify role for new member. Can be one of: + * \* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * \* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * \* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + */ + role?: "admin" | "direct_member" | "billing_manager"; + /** + * Specify IDs for the teams you want to invite new members to. + */ + team_ids?: number[]; + }; + export type OrgsDeleteHookParams = { + hook_id: number; + + org: string; + }; + export type OrgsGetParams = { + org: string; + }; + export type OrgsGetHookParams = { + hook_id: number; + + org: string; + }; + export type OrgsGetMembershipParams = { + org: string; + + username: string; + }; + export type OrgsGetMembershipForAuthenticatedUserParams = { + org: string; + }; + export type OrgsListParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The integer ID of the last Organization that you've seen. + */ + since?: string; + }; + export type OrgsListBlockedUsersParams = { + org: string; + }; + export type OrgsListForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OrgsListForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type OrgsListHooksParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OrgsListInstallationsParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OrgsListInvitationTeamsParams = { + invitation_id: number; + + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OrgsListMembersParams = { + /** + * Filter members returned in the list. Can be one of: + * \* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. + * \* `all` - All members the authenticated user can see. + */ + filter?: "2fa_disabled" | "all"; + + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Filter members returned by their role. Can be one of: + * \* `all` - All members of the organization, regardless of role. + * \* `admin` - Organization owners. + * \* `member` - Non-owner organization members. + */ + role?: "all" | "admin" | "member"; + }; + export type OrgsListMembershipsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships. + */ + state?: "active" | "pending"; + }; + export type OrgsListOutsideCollaboratorsParams = { + /** + * Filter the list of outside collaborators. Can be one of: + * \* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. + * \* `all`: All outside collaborators. + */ + filter?: "2fa_disabled" | "all"; + + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OrgsListPendingInvitationsParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OrgsListPublicMembersParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type OrgsPingHookParams = { + hook_id: number; + + org: string; + }; + export type OrgsPublicizeMembershipParams = { + org: string; + + username: string; + }; + export type OrgsRemoveMemberParams = { + org: string; + + username: string; + }; + export type OrgsRemoveMembershipParams = { + org: string; + + username: string; + }; + export type OrgsRemoveOutsideCollaboratorParams = { + org: string; + + username: string; + }; + export type OrgsUnblockUserParams = { + org: string; + + username: string; + }; + export type OrgsUpdateParams = { + /** + * Billing email address. This address is not publicized. + */ + billing_email?: string; + /** + * The company name. + */ + company?: string; + /** + * Default permission level members have for organization repositories: + * \* `read` - can pull, but not push to or administer this repository. + * \* `write` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push, and administer this repository. + * \* `none` - no permissions granted by default. + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * The description of the company. + */ + description?: string; + /** + * The publicly visible email address. + */ + email?: string; + /** + * Toggles whether organization projects are enabled for the organization. + */ + has_organization_projects?: boolean; + /** + * Toggles whether repository projects are enabled for repositories that belong to the organization. + */ + has_repository_projects?: boolean; + /** + * The location. + */ + location?: string; + /** + * Specifies which types of repositories non-admin organization members can create. Can be one of: + * \* `all` - all organization members can create public and private repositories. + * \* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on [GitHub Business Cloud](https://github.com/pricing/business-cloud). + * \* `none` - only admin members can create repositories. + * **Note:** Using this parameter will override values set in `members_can_create_repositories`. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; + /** + * Toggles the ability of non-admin organization members to create repositories. Can be one of: + * \* `true` - all organization members can create repositories. + * \* `false` - only admin members can create repositories. + * Default: `true` + * **Note:** Another parameter can override the this parameter. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. **Note:** Another parameter can override the this parameter. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. + */ + members_can_create_repositories?: boolean; + /** + * The shorthand name of the company. + */ + name?: string; + + org: string; + }; + export type OrgsUpdateHookParams = { + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#update-hook-config-params). + */ + config?: OrgsUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. + */ + events?: string[]; + + hook_id: number; + + org: string; + }; + export type OrgsUpdateMembershipParams = { + org: string; + /** + * The state that the membership should be in. Only `"active"` will be accepted. + */ + state: "active"; + }; + export type ProjectsAddCollaboratorParams = { + /** + * The permission to grant the collaborator. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." Can be one of: + * \* `read` - can read, but not write to or administer this project. + * \* `write` - can read and write, but not administer this project. + * \* `admin` - can read, write and administer this project. + */ + permission?: "read" | "write" | "admin"; + + project_id: number; + + username: string; + }; + export type ProjectsCreateCardParams = { + column_id: number; + /** + * The issue or pull request id you want to associate with this card. You can use the [List issues for a repository](https://developer.github.com/v3/issues/#list-issues-for-a-repository) and [List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests) endpoints to find this id. + * **Note:** Depending on whether you use the issue id or pull request id, you will need to specify `Issue` or `PullRequest` as the `content_type`. + */ + content_id?: number; + /** + * **Required if you provide `content_id`**. The type of content you want to associate with this card. Use `Issue` when `content_id` is an issue id and use `PullRequest` when `content_id` is a pull request id. + */ + content_type?: string; + /** + * The card's note content. Only valid for cards without another type of content, so you must omit when specifying `content_id` and `content_type`. + */ + note?: string; + }; + export type ProjectsCreateColumnParams = { + /** + * The name of the column. + */ + name: string; + + project_id: number; + }; + export type ProjectsCreateForAuthenticatedUserParams = { + /** + * The description of the project. + */ + body?: string; + /** + * The name of the project. + */ + name: string; + }; + export type ProjectsCreateForOrgParams = { + /** + * The description of the project. + */ + body?: string; + /** + * The name of the project. + */ + name: string; + + org: string; + }; + export type ProjectsCreateForRepoParams = { + /** + * The description of the project. + */ + body?: string; + /** + * The name of the project. + */ + name: string; + + owner: string; + + repo: string; + }; + export type ProjectsDeleteParams = { + project_id: number; + }; + export type ProjectsDeleteCardParams = { + card_id: number; + }; + export type ProjectsDeleteColumnParams = { + column_id: number; + }; + export type ProjectsGetParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + project_id: number; + }; + export type ProjectsGetCardParams = { + card_id: number; + }; + export type ProjectsGetColumnParams = { + column_id: number; + }; + export type ProjectsListCardsParams = { + /** + * Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`. + */ + archived_state?: "all" | "archived" | "not_archived"; + + column_id: number; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type ProjectsListCollaboratorsParams = { + /** + * Filters the collaborators by their affiliation. Can be one of: + * \* `outside`: Outside collaborators of a project that are not a member of the project's organization. + * \* `direct`: Collaborators with permissions to a project, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + project_id: number; + }; + export type ProjectsListColumnsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + project_id: number; + }; + export type ProjectsListForOrgParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + }; + export type ProjectsListForRepoParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + }; + export type ProjectsListForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + + username: string; + }; + export type ProjectsMoveCardParams = { + card_id: number; + /** + * The `id` value of a column in the same project. + */ + column_id?: number; + /** + * Can be one of `top`, `bottom`, or `after:`, where `` is the `id` value of a card in the same column, or in the new column specified by `column_id`. + */ + position: string; + }; + export type ProjectsMoveColumnParams = { + column_id: number; + /** + * Can be one of `first`, `last`, or `after:`, where `` is the `id` value of a column in the same project. + */ + position: string; + }; + export type ProjectsRemoveCollaboratorParams = { + project_id: number; + + username: string; + }; + export type ProjectsReviewUserPermissionLevelParams = { + project_id: number; + + username: string; + }; + export type ProjectsUpdateParams = { + /** + * The description of the project. + */ + body?: string; + /** + * The name of the project. + */ + name?: string; + /** + * The permission level that determines whether all members of the project's organization can see and/or make changes to the project. Setting `organization_permission` is only available for organization projects. If an organization member belongs to a team with a higher level of access or is a collaborator with a higher level of access, their permission level is not lowered by `organization_permission`. For information on changing access for a team or collaborator, see [Add or update team project](https://developer.github.com/v3/teams/#add-or-update-team-project) or [Add user as a collaborator](https://developer.github.com/v3/projects/collaborators/#add-user-as-a-collaborator). + * + * **Note:** Updating a project's `organization_permission` requires `admin` access to the project. + * + * Can be one of: + * \* `read` - Organization members can read, but not write to or administer this project. + * \* `write` - Organization members can read and write, but not administer this project. + * \* `admin` - Organization members can read, write and administer this project. + * \* `none` - Organization members can only see this project if it is public. + */ + organization_permission?: string; + /** + * Sets the visibility of a project board. Setting `private` is only available for organization and user projects. **Note:** Updating a project's visibility requires `admin` access to the project. + * + * Can be one of: + * \* `false` - Anyone can see the project. + * \* `true` - Only the user can view a project board created on a user account. Organization members with the appropriate `organization_permission` can see project boards in an organization account. + */ + private?: boolean; + + project_id: number; + /** + * State of the project. Either `open` or `closed`. + */ + state?: "open" | "closed"; + }; + export type ProjectsUpdateCardParams = { + /** + * Use `true` to archive a project card. Specify `false` if you need to restore a previously archived project card. + */ + archived?: boolean; + + card_id: number; + /** + * The card's note content. Only valid for cards without another type of content, so this cannot be specified if the card already has a `content_id` and `content_type`. + */ + note?: string; + }; + export type ProjectsUpdateColumnParams = { + column_id: number; + /** + * The new name of the column. + */ + name: string; + }; + export type PullsCheckIfMergedParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type PullsCheckIfMergedParams = { + owner: string; + + pull_number: number; + + repo: string; + }; + export type PullsCreateParams = { + /** + * The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + */ + base: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. + */ + draft?: boolean; + /** + * The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. + */ + head: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + + owner: string; + + repo: string; + /** + * The title of the new pull request. + */ + title: string; + }; + export type PullsCreateCommentParamsDeprecatedNumber = { + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + + repo: string; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; + }; + export type PullsCreateCommentParamsDeprecatedInReplyTo = { + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported. + * @deprecated "in_reply_to" parameter has been deprecated and will be removed in future + */ + in_reply_to?: number; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + + owner: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + + pull_number: number; + + repo: string; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; + }; + export type PullsCreateCommentParams = { + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + + owner: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + + pull_number: number; + + repo: string; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; + }; + export type PullsCreateCommentReplyParamsDeprecatedNumber = { + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + + repo: string; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; + }; + export type PullsCreateCommentReplyParamsDeprecatedInReplyTo = { + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported. + * @deprecated "in_reply_to" parameter has been deprecated and will be removed in future + */ + in_reply_to?: number; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + + owner: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + + pull_number: number; + + repo: string; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; + }; + export type PullsCreateCommentReplyParams = { + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + + owner: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + + pull_number: number; + + repo: string; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; + }; + export type PullsCreateFromIssueParams = { + base: string; + + draft?: boolean; + + head: string; + + issue: number; + + maintainer_can_modify?: boolean; + + owner: string; + + repo: string; + }; + export type PullsCreateReviewParamsDeprecatedNumber = { + /** + * **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. + */ + body?: string; + /** + * Use the following table to specify the location, destination, and contents of the draft review comment. + */ + comments?: PullsCreateReviewParamsComments[]; + /** + * The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. + */ + commit_id?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review) when you are ready. + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type PullsCreateReviewParams = { + /** + * **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. + */ + body?: string; + /** + * Use the following table to specify the location, destination, and contents of the draft review comment. + */ + comments?: PullsCreateReviewParamsComments[]; + /** + * The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. + */ + commit_id?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review) when you are ready. + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + + owner: string; + + pull_number: number; + + repo: string; + }; + export type PullsCreateReviewCommentReplyParams = { + /** + * The text of the review comment. + */ + body: string; + + comment_id: number; + + owner: string; + + pull_number: number; + + repo: string; + }; + export type PullsCreateReviewRequestParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + /** + * An array of user `login`s that will be requested. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be requested. + */ + team_reviewers?: string[]; + }; + export type PullsCreateReviewRequestParams = { + owner: string; + + pull_number: number; + + repo: string; + /** + * An array of user `login`s that will be requested. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be requested. + */ + team_reviewers?: string[]; + }; + export type PullsDeleteCommentParams = { + comment_id: number; + + owner: string; + + repo: string; + }; + export type PullsDeletePendingReviewParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + + review_id: number; + }; + export type PullsDeletePendingReviewParams = { + owner: string; + + pull_number: number; + + repo: string; + + review_id: number; + }; + export type PullsDeleteReviewRequestParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + /** + * An array of user `login`s that will be removed. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be removed. + */ + team_reviewers?: string[]; + }; + export type PullsDeleteReviewRequestParams = { + owner: string; + + pull_number: number; + + repo: string; + /** + * An array of user `login`s that will be removed. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be removed. + */ + team_reviewers?: string[]; + }; + export type PullsDismissReviewParamsDeprecatedNumber = { + /** + * The message for the pull request review dismissal + */ + message: string; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + + review_id: number; + }; + export type PullsDismissReviewParams = { + /** + * The message for the pull request review dismissal + */ + message: string; + + owner: string; + + pull_number: number; + + repo: string; + + review_id: number; + }; + export type PullsGetParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type PullsGetParams = { + owner: string; + + pull_number: number; + + repo: string; + }; + export type PullsGetCommentParams = { + comment_id: number; + + owner: string; + + repo: string; + }; + export type PullsGetCommentsForReviewParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + + review_id: number; + }; + export type PullsGetCommentsForReviewParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + pull_number: number; + + repo: string; + + review_id: number; + }; + export type PullsGetReviewParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + + review_id: number; + }; + export type PullsGetReviewParams = { + owner: string; + + pull_number: number; + + repo: string; + + review_id: number; + }; + export type PullsListParams = { + /** + * Filter pulls by base branch name. Example: `gh-pages`. + */ + base?: string; + /** + * The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. + */ + direction?: "asc" | "desc"; + /** + * Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. + */ + head?: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month). + */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** + * Either `open`, `closed`, or `all` to filter by state. + */ + state?: "open" | "closed" | "all"; + }; + export type PullsListCommentsParamsDeprecatedNumber = { + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + }; + export type PullsListCommentsParams = { + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + pull_number: number; + + repo: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + }; + export type PullsListCommentsForRepoParams = { + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + }; + export type PullsListCommitsParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type PullsListCommitsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + pull_number: number; + + repo: string; + }; + export type PullsListFilesParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type PullsListFilesParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + pull_number: number; + + repo: string; + }; + export type PullsListReviewRequestsParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type PullsListReviewRequestsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + pull_number: number; + + repo: string; + }; + export type PullsListReviewsParamsDeprecatedNumber = { + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type PullsListReviewsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + pull_number: number; + + repo: string; + }; + export type PullsMergeParamsDeprecatedNumber = { + /** + * Extra detail to append to automatic commit message. + */ + commit_message?: string; + /** + * Title for the automatic commit message. + */ + commit_title?: string; + /** + * Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`. + */ + merge_method?: "merge" | "squash" | "rebase"; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + /** + * SHA that pull request head must match to allow merge. + */ + sha?: string; + }; + export type PullsMergeParams = { + /** + * Extra detail to append to automatic commit message. + */ + commit_message?: string; + /** + * Title for the automatic commit message. + */ + commit_title?: string; + /** + * Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`. + */ + merge_method?: "merge" | "squash" | "rebase"; + + owner: string; + + pull_number: number; + + repo: string; + /** + * SHA that pull request head must match to allow merge. + */ + sha?: string; + }; + export type PullsSubmitReviewParamsDeprecatedNumber = { + /** + * The body text of the pull request review + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + + review_id: number; + }; + export type PullsSubmitReviewParams = { + /** + * The body text of the pull request review + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + + owner: string; + + pull_number: number; + + repo: string; + + review_id: number; + }; + export type PullsUpdateParamsDeprecatedNumber = { + /** + * The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. + */ + base?: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + /** + * State of this Pull Request. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the pull request. + */ + title?: string; + }; + export type PullsUpdateParams = { + /** + * The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. + */ + base?: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + + owner: string; + + pull_number: number; + + repo: string; + /** + * State of this Pull Request. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The title of the pull request. + */ + title?: string; + }; + export type PullsUpdateBranchParams = { + /** + * The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits on a repository](https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. + */ + expected_head_sha?: string; + + owner: string; + + pull_number: number; + + repo: string; + }; + export type PullsUpdateCommentParams = { + /** + * The text of the reply to the review comment. + */ + body: string; + + comment_id: number; + + owner: string; + + repo: string; + }; + export type PullsUpdateReviewParamsDeprecatedNumber = { + /** + * The body text of the pull request review. + */ + body: string; + /** + * @deprecated "number" parameter renamed to "pull_number" + */ + number: number; + + owner: string; + + repo: string; + + review_id: number; + }; + export type PullsUpdateReviewParams = { + /** + * The body text of the pull request review. + */ + body: string; + + owner: string; + + pull_number: number; + + repo: string; + + review_id: number; + }; + export type ReactionsCreateForCommitCommentParams = { + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the commit comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + owner: string; + + repo: string; + }; + export type ReactionsCreateForIssueParamsDeprecatedNumber = { + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + + repo: string; + }; + export type ReactionsCreateForIssueParams = { + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + issue_number: number; + + owner: string; + + repo: string; + }; + export type ReactionsCreateForIssueCommentParams = { + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + owner: string; + + repo: string; + }; + export type ReactionsCreateForPullRequestReviewCommentParams = { + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the pull request review comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + owner: string; + + repo: string; + }; + export type ReactionsCreateForTeamDiscussionParams = { + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + discussion_number: number; + + team_id: number; + }; + export type ReactionsCreateForTeamDiscussionCommentParams = { + comment_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + discussion_number: number; + + team_id: number; + }; + export type ReactionsDeleteParams = { + reaction_id: number; + }; + export type ReactionsListForCommitCommentParams = { + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a commit comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReactionsListForIssueParamsDeprecatedNumber = { + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * @deprecated "number" parameter renamed to "issue_number" + */ + number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReactionsListForIssueParams = { + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + issue_number: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReactionsListForIssueCommentParams = { + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReactionsListForPullRequestReviewCommentParams = { + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a pull request review comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReactionsListForTeamDiscussionParams = { + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + discussion_number: number; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type ReactionsListForTeamDiscussionCommentParams = { + comment_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + + discussion_number: number; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type ReposAcceptInvitationParams = { + invitation_id: number; + }; + export type ReposAddCollaboratorParams = { + owner: string; + /** + * The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: + * \* `pull` - can pull, but not push to or administer this repository. + * \* `push` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push and administer this repository. + */ + permission?: "pull" | "push" | "admin"; + + repo: string; + + username: string; + }; + export type ReposAddDeployKeyParams = { + /** + * The contents of the key. + */ + key: string; + + owner: string; + /** + * If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; + + repo: string; + /** + * A name for the key. + */ + title?: string; + }; + export type ReposAddProtectedBranchAdminEnforcementParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposAddProtectedBranchAppRestrictionsParams = { + apps: string[]; + + branch: string; + + owner: string; + + repo: string; + }; + export type ReposAddProtectedBranchRequiredSignaturesParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposAddProtectedBranchRequiredStatusChecksContextsParams = { + branch: string; + + contexts: string[]; + + owner: string; + + repo: string; + }; + export type ReposAddProtectedBranchTeamRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + + teams: string[]; + }; + export type ReposAddProtectedBranchUserRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + + users: string[]; + }; + export type ReposCheckCollaboratorParams = { + owner: string; + + repo: string; + + username: string; + }; + export type ReposCheckVulnerabilityAlertsParams = { + owner: string; + + repo: string; + }; + export type ReposCompareCommitsParams = { + base: string; + + head: string; + + owner: string; + + repo: string; + }; + export type ReposCreateCommitCommentParamsDeprecatedSha = { + /** + * The contents of the comment. + */ + body: string; + + owner: string; + /** + * Relative path of the file to comment on. + */ + path?: string; + /** + * Line index in the diff to comment on. + */ + position?: number; + + repo: string; + /** + * @deprecated "sha" parameter renamed to "commit_sha" + */ + sha: string; + }; + export type ReposCreateCommitCommentParamsDeprecatedLine = { + /** + * The contents of the comment. + */ + body: string; + + commit_sha: string; + /** + * **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. + * @deprecated "line" parameter has been deprecated and will be removed in future + */ + line?: number; + + owner: string; + /** + * Relative path of the file to comment on. + */ + path?: string; + /** + * Line index in the diff to comment on. + */ + position?: number; + + repo: string; + }; + export type ReposCreateCommitCommentParams = { + /** + * The contents of the comment. + */ + body: string; + + commit_sha: string; + + owner: string; + /** + * Relative path of the file to comment on. + */ + path?: string; + /** + * Line index in the diff to comment on. + */ + position?: number; + + repo: string; + }; + export type ReposCreateDeploymentParams = { + /** + * Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + */ + auto_merge?: boolean; + /** + * Short description of the deployment. + */ + description?: string; + /** + * Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + */ + environment?: string; + + owner: string; + /** + * JSON payload with extra information about the deployment. + */ + payload?: string; + /** + * Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + production_environment?: boolean; + /** + * The ref to deploy. This can be a branch, tag, or SHA. + */ + ref: string; + + repo: string; + /** + * The [status](https://developer.github.com/v3/repos/statuses/) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. + */ + required_contexts?: string[]; + /** + * Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + transient_environment?: boolean; + }; + export type ReposCreateDeploymentStatusParams = { + /** + * Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` + * **Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + auto_inactive?: boolean; + + deployment_id: number; + /** + * A short description of the status. The maximum description length is 140 characters. + */ + description?: string; + /** + * Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + environment?: "production" | "staging" | "qa"; + /** + * Sets the URL for accessing your environment. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + environment_url?: string; + /** + * The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + log_url?: string; + + owner: string; + + repo: string; + /** + * The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + state: + | "error" + | "failure" + | "inactive" + | "in_progress" + | "queued" + | "pending" + | "success"; + /** + * The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + */ + target_url?: string; + }; + export type ReposCreateDispatchEventParams = { + /** + * JSON payload with extra information about the webhook event that your action or worklow may use. + */ + client_payload?: ReposCreateDispatchEventParamsClientPayload; + /** + * **Required:** A custom webhook event name. + */ + event_type?: string; + + owner: string; + + repo: string; + }; + export type ReposCreateFileParams = { + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposCreateFileParamsAuthor; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposCreateFileParamsCommitter; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * The commit message. + */ + message: string; + + owner: string; + + path: string; + + repo: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + }; + export type ReposCreateForAuthenticatedUserParams = { + /** + * Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + */ + allow_merge_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_merge?: boolean; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * A short description of the repository. + */ + description?: string; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * The name of the repository. + */ + name: string; + /** + * Either `true` to create a private repository or `false` to create a public one. Creating private repositories requires a paid GitHub account. + */ + private?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + }; + export type ReposCreateForkParams = { + /** + * Optional parameter to specify the organization name if forking into an organization. + */ + organization?: string; + + owner: string; + + repo: string; + }; + export type ReposCreateHookParams = { + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config: ReposCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. + */ + events?: string[]; + /** + * Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. + */ + name?: string; + + owner: string; + + repo: string; + }; + export type ReposCreateInOrgParams = { + /** + * Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + */ + allow_merge_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_merge?: boolean; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * A short description of the repository. + */ + description?: string; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * The name of the repository. + */ + name: string; + + org: string; + /** + * Either `true` to create a private repository or `false` to create a public one. Creating private repositories requires a paid GitHub account. + */ + private?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + }; + export type ReposCreateOrUpdateFileParams = { + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposCreateOrUpdateFileParamsAuthor; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposCreateOrUpdateFileParamsCommitter; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * The commit message. + */ + message: string; + + owner: string; + + path: string; + + repo: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + }; + export type ReposCreateReleaseParams = { + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` to create a draft (unpublished) release, `false` to create a published one. + */ + draft?: boolean; + /** + * The name of the release. + */ + name?: string; + + owner: string; + /** + * `true` to identify the release as a prerelease. `false` to identify the release as a full release. + */ + prerelease?: boolean; + + repo: string; + /** + * The name of the tag. + */ + tag_name: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + }; + export type ReposCreateStatusParams = { + /** + * A string label to differentiate this status from the status of other systems. + */ + context?: string; + /** + * A short description of the status. + */ + description?: string; + + owner: string; + + repo: string; + + sha: string; + /** + * The state of the status. Can be one of `error`, `failure`, `pending`, or `success`. + */ + state: "error" | "failure" | "pending" | "success"; + /** + * The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string; + }; + export type ReposCreateUsingTemplateParams = { + /** + * A short description of the new repository. + */ + description?: string; + /** + * The name of the new repository. + */ + name: string; + /** + * The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. + */ + owner?: string; + /** + * Either `true` to create a new private repository or `false` to create a new public one. + */ + private?: boolean; + + template_owner: string; + + template_repo: string; + }; + export type ReposDeclineInvitationParams = { + invitation_id: number; + }; + export type ReposDeleteParams = { + owner: string; + + repo: string; + }; + export type ReposDeleteCommitCommentParams = { + comment_id: number; + + owner: string; + + repo: string; + }; + export type ReposDeleteDownloadParams = { + download_id: number; + + owner: string; + + repo: string; + }; + export type ReposDeleteFileParams = { + /** + * object containing information about the author. + */ + author?: ReposDeleteFileParamsAuthor; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * object containing information about the committer. + */ + committer?: ReposDeleteFileParamsCommitter; + /** + * The commit message. + */ + message: string; + + owner: string; + + path: string; + + repo: string; + /** + * The blob SHA of the file being replaced. + */ + sha: string; + }; + export type ReposDeleteHookParams = { + hook_id: number; + + owner: string; + + repo: string; + }; + export type ReposDeleteInvitationParams = { + invitation_id: number; + + owner: string; + + repo: string; + }; + export type ReposDeleteReleaseParams = { + owner: string; + + release_id: number; + + repo: string; + }; + export type ReposDeleteReleaseAssetParams = { + asset_id: number; + + owner: string; + + repo: string; + }; + export type ReposDisableAutomatedSecurityFixesParams = { + owner: string; + + repo: string; + }; + export type ReposDisablePagesSiteParams = { + owner: string; + + repo: string; + }; + export type ReposDisableVulnerabilityAlertsParams = { + owner: string; + + repo: string; + }; + export type ReposEnableAutomatedSecurityFixesParams = { + owner: string; + + repo: string; + }; + export type ReposEnablePagesSiteParams = { + owner: string; + + repo: string; + + source?: ReposEnablePagesSiteParamsSource; + }; + export type ReposEnableVulnerabilityAlertsParams = { + owner: string; + + repo: string; + }; + export type ReposGetParams = { + owner: string; + + repo: string; + }; + export type ReposGetAppsWithAccessToProtectedBranchParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetArchiveLinkParams = { + archive_format: string; + + owner: string; + + ref: string; + + repo: string; + }; + export type ReposGetBranchParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetBranchProtectionParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetClonesParams = { + owner: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; + + repo: string; + }; + export type ReposGetCodeFrequencyStatsParams = { + owner: string; + + repo: string; + }; + export type ReposGetCollaboratorPermissionLevelParams = { + owner: string; + + repo: string; + + username: string; + }; + export type ReposGetCombinedStatusForRefParams = { + owner: string; + + ref: string; + + repo: string; + }; + export type ReposGetCommitParamsDeprecatedSha = { + owner: string; + + repo: string; + /** + * @deprecated "sha" parameter renamed to "ref" + */ + sha: string; + }; + export type ReposGetCommitParamsDeprecatedCommitSha = { + /** + * @deprecated "commit_sha" parameter renamed to "ref" + */ + commit_sha: string; + + owner: string; + + repo: string; + }; + export type ReposGetCommitParams = { + owner: string; + + ref: string; + + repo: string; + }; + export type ReposGetCommitActivityStatsParams = { + owner: string; + + repo: string; + }; + export type ReposGetCommitCommentParams = { + comment_id: number; + + owner: string; + + repo: string; + }; + export type ReposGetCommitRefShaParams = { + owner: string; + + ref: string; + + repo: string; + }; + export type ReposGetContentsParams = { + owner: string; + + path: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; + + repo: string; + }; + export type ReposGetContributorsStatsParams = { + owner: string; + + repo: string; + }; + export type ReposGetDeployKeyParams = { + key_id: number; + + owner: string; + + repo: string; + }; + export type ReposGetDeploymentParams = { + deployment_id: number; + + owner: string; + + repo: string; + }; + export type ReposGetDeploymentStatusParams = { + deployment_id: number; + + owner: string; + + repo: string; + + status_id: number; + }; + export type ReposGetDownloadParams = { + download_id: number; + + owner: string; + + repo: string; + }; + export type ReposGetHookParams = { + hook_id: number; + + owner: string; + + repo: string; + }; + export type ReposGetLatestPagesBuildParams = { + owner: string; + + repo: string; + }; + export type ReposGetLatestReleaseParams = { + owner: string; + + repo: string; + }; + export type ReposGetPagesParams = { + owner: string; + + repo: string; + }; + export type ReposGetPagesBuildParams = { + build_id: number; + + owner: string; + + repo: string; + }; + export type ReposGetParticipationStatsParams = { + owner: string; + + repo: string; + }; + export type ReposGetProtectedBranchAdminEnforcementParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetProtectedBranchPullRequestReviewEnforcementParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetProtectedBranchRequiredSignaturesParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetProtectedBranchRequiredStatusChecksParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetProtectedBranchRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetPunchCardStatsParams = { + owner: string; + + repo: string; + }; + export type ReposGetReadmeParams = { + owner: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; + + repo: string; + }; + export type ReposGetReleaseParams = { + owner: string; + + release_id: number; + + repo: string; + }; + export type ReposGetReleaseAssetParams = { + asset_id: number; + + owner: string; + + repo: string; + }; + export type ReposGetReleaseByTagParams = { + owner: string; + + repo: string; + + tag: string; + }; + export type ReposGetTeamsWithAccessToProtectedBranchParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetTopPathsParams = { + owner: string; + + repo: string; + }; + export type ReposGetTopReferrersParams = { + owner: string; + + repo: string; + }; + export type ReposGetUsersWithAccessToProtectedBranchParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposGetViewsParams = { + owner: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; + + repo: string; + }; + export type ReposListParams = { + /** + * Comma-separated list of values. Can include: + * \* `owner`: Repositories that are owned by the authenticated user. + * \* `collaborator`: Repositories that the user has been added to as a collaborator. + * \* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `all`, `owner`, `public`, `private`, `member`. Default: `all` + * + * Will cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. + */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** + * Can be one of `all`, `public`, or `private`. + */ + visibility?: "all" | "public" | "private"; + }; + export type ReposListAppsWithAccessToProtectedBranchParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposListAssetsForReleaseParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + release_id: number; + + repo: string; + }; + export type ReposListBranchesParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. + */ + protected?: boolean; + + repo: string; + }; + export type ReposListBranchesForHeadCommitParams = { + commit_sha: string; + + owner: string; + + repo: string; + }; + export type ReposListCollaboratorsParams = { + /** + * Filter collaborators returned by their affiliation. Can be one of: + * \* `outside`: All outside collaborators of an organization-owned repository. + * \* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListCommentsForCommitParamsDeprecatedRef = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * @deprecated "ref" parameter renamed to "commit_sha" + */ + ref: string; + + repo: string; + }; + export type ReposListCommentsForCommitParams = { + commit_sha: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListCommitCommentsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListCommitsParams = { + /** + * GitHub login or email address by which to filter by commit author. + */ + author?: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Only commits containing this file path will be returned. + */ + path?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`). + */ + sha?: string; + /** + * Only commits after this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + until?: string; + }; + export type ReposListContributorsParams = { + /** + * Set to `1` or `true` to include anonymous contributors in results. + */ + anon?: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListDeployKeysParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListDeploymentStatusesParams = { + deployment_id: number; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListDeploymentsParams = { + /** + * The name of the environment that was deployed to (e.g., `staging` or `production`). + */ + environment?: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The name of the ref. This can be a branch, tag, or SHA. + */ + ref?: string; + + repo: string; + /** + * The SHA recorded at creation time. + */ + sha?: string; + /** + * The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + }; + export type ReposListDownloadsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListForOrgParams = { + /** + * Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc` + */ + direction?: "asc" | "desc"; + + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`. + */ + type?: "all" | "public" | "private" | "forks" | "sources" | "member"; + }; + export type ReposListForUserParams = { + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `all`, `owner`, `member`. + */ + type?: "all" | "owner" | "member"; + + username: string; + }; + export type ReposListForksParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + /** + * The sort order. Can be either `newest`, `oldest`, or `stargazers`. + */ + sort?: "newest" | "oldest" | "stargazers"; + }; + export type ReposListHooksParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListInvitationsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListInvitationsForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type ReposListLanguagesParams = { + owner: string; + + repo: string; + }; + export type ReposListPagesBuildsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListProtectedBranchRequiredStatusChecksContextsParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposListProtectedBranchTeamRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposListProtectedBranchUserRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposListPublicParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The integer ID of the last Repository that you've seen. + */ + since?: string; + }; + export type ReposListPullRequestsAssociatedWithCommitParams = { + commit_sha: string; + + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListReleasesParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListStatusesForRefParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + ref: string; + + repo: string; + }; + export type ReposListTagsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListTeamsParams = { + owner: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + repo: string; + }; + export type ReposListTeamsWithAccessToProtectedBranchParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposListTopicsParams = { + owner: string; + + repo: string; + }; + export type ReposListUsersWithAccessToProtectedBranchParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposMergeParams = { + /** + * The name of the base branch that the head will be merged into. + */ + base: string; + /** + * Commit message to use for the merge commit. If omitted, a default message will be used. + */ + commit_message?: string; + /** + * The head to merge. This can be a branch name or a commit SHA1. + */ + head: string; + + owner: string; + + repo: string; + }; + export type ReposPingHookParams = { + hook_id: number; + + owner: string; + + repo: string; + }; + export type ReposRemoveBranchProtectionParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposRemoveCollaboratorParams = { + owner: string; + + repo: string; + + username: string; + }; + export type ReposRemoveDeployKeyParams = { + key_id: number; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchAdminEnforcementParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchAppRestrictionsParams = { + apps: string[]; + + branch: string; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchPullRequestReviewEnforcementParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchRequiredSignaturesParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchRequiredStatusChecksParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchRequiredStatusChecksContextsParams = { + branch: string; + + contexts: string[]; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + }; + export type ReposRemoveProtectedBranchTeamRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + + teams: string[]; + }; + export type ReposRemoveProtectedBranchUserRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + + users: string[]; + }; + export type ReposReplaceProtectedBranchAppRestrictionsParams = { + apps: string[]; + + branch: string; + + owner: string; + + repo: string; + }; + export type ReposReplaceProtectedBranchRequiredStatusChecksContextsParams = { + branch: string; + + contexts: string[]; + + owner: string; + + repo: string; + }; + export type ReposReplaceProtectedBranchTeamRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + + teams: string[]; + }; + export type ReposReplaceProtectedBranchUserRestrictionsParams = { + branch: string; + + owner: string; + + repo: string; + + users: string[]; + }; + export type ReposReplaceTopicsParams = { + /** + * An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. + */ + names: string[]; + + owner: string; + + repo: string; + }; + export type ReposRequestPageBuildParams = { + owner: string; + + repo: string; + }; + export type ReposRetrieveCommunityProfileMetricsParams = { + owner: string; + + repo: string; + }; + export type ReposTestPushHookParams = { + hook_id: number; + + owner: string; + + repo: string; + }; + export type ReposTransferParams = { + /** + * **Required:** The username or organization name the repository will be transferred to. + */ + new_owner?: string; + + owner: string; + + repo: string; + /** + * ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories. + */ + team_ids?: number[]; + }; + export type ReposUpdateParams = { + /** + * Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. + */ + allow_merge_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_merge?: boolean; + /** + * `true` to archive this repository. **Note**: You cannot unarchive repositories through the API. + */ + archived?: boolean; + /** + * Updates the default branch for this repository. + */ + default_branch?: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The name of the repository. + */ + name?: string; + + owner: string; + /** + * Either `true` to make the repository private or `false` to make it public. Creating private repositories requires a paid GitHub account. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + */ + private?: boolean; + + repo: string; + }; + export type ReposUpdateBranchProtectionParams = { + branch: string; + /** + * Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. + */ + enforce_admins: boolean | null; + + owner: string; + + repo: string; + /** + * Require at least one approving review on a pull request, before merging. Set to `null` to disable. + */ + required_pull_request_reviews: ReposUpdateBranchProtectionParamsRequiredPullRequestReviews | null; + /** + * Require status checks to pass before merging. Set to `null` to disable. + */ + required_status_checks: ReposUpdateBranchProtectionParamsRequiredStatusChecks | null; + /** + * Restrict who can push to this branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. + */ + restrictions: ReposUpdateBranchProtectionParamsRestrictions | null; + }; + export type ReposUpdateCommitCommentParams = { + /** + * The contents of the comment + */ + body: string; + + comment_id: number; + + owner: string; + + repo: string; + }; + export type ReposUpdateFileParams = { + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposUpdateFileParamsAuthor; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposUpdateFileParamsCommitter; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * The commit message. + */ + message: string; + + owner: string; + + path: string; + + repo: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + }; + export type ReposUpdateHookParams = { + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; + /** + * Determines a list of events to be added to the list of events that the Hook triggers for. + */ + add_events?: string[]; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config?: ReposUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. This replaces the entire array of events. + */ + events?: string[]; + + hook_id: number; + + owner: string; + /** + * Determines a list of events to be removed from the list of events that the Hook triggers for. + */ + remove_events?: string[]; + + repo: string; + }; + export type ReposUpdateInformationAboutPagesSiteParams = { + /** + * Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/)." + */ + cname?: string; + + owner: string; + + repo: string; + /** + * Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `"gh-pages"`, `"master"`, and `"master /docs"`. + */ + source?: '"gh-pages"' | '"master"' | '"master /docs"'; + }; + export type ReposUpdateInvitationParams = { + invitation_id: number; + + owner: string; + /** + * The permissions that the associated user will have on the repository. Valid values are `read`, `write`, and `admin`. + */ + permissions?: "read" | "write" | "admin"; + + repo: string; + }; + export type ReposUpdateProtectedBranchPullRequestReviewEnforcementParams = { + branch: string; + /** + * Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. + */ + dismiss_stale_reviews?: boolean; + /** + * Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. + */ + dismissal_restrictions?: ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions; + + owner: string; + + repo: string; + /** + * Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed. + */ + require_code_owner_reviews?: boolean; + /** + * Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6. + */ + required_approving_review_count?: number; + }; + export type ReposUpdateProtectedBranchRequiredStatusChecksParams = { + branch: string; + /** + * The list of status checks to require in order to merge into this branch + */ + contexts?: string[]; + + owner: string; + + repo: string; + /** + * Require branches to be up to date before merging. + */ + strict?: boolean; + }; + export type ReposUpdateReleaseParams = { + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` makes the release a draft, and `false` publishes the release. + */ + draft?: boolean; + /** + * The name of the release. + */ + name?: string; + + owner: string; + /** + * `true` to identify the release as a prerelease, `false` to identify the release as a full release. + */ + prerelease?: boolean; + + release_id: number; + + repo: string; + /** + * The name of the tag. + */ + tag_name?: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + }; + export type ReposUpdateReleaseAssetParams = { + asset_id: number; + /** + * An alternate short description of the asset. Used in place of the filename. + */ + label?: string; + /** + * The file name of the asset. + */ + name?: string; + + owner: string; + + repo: string; + }; + export type ReposUploadReleaseAssetParams = { + file: string | object; + + headers: ReposUploadReleaseAssetParamsHeaders; + /** + * An alternate short description of the asset. Used in place of the filename. This should be set in a URI query parameter. + */ + label?: string; + /** + * The file name of the asset. This should be set in a URI query parameter. + */ + name: string; + /** + * The `upload_url` key returned from creating or getting a release + */ + url: string; + }; + export type SearchCodeParams = { + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching code](https://help.github.com/articles/searching-code/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "indexed"; + }; + export type SearchCommitsParams = { + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching commits](https://help.github.com/articles/searching-commits/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "author-date" | "committer-date"; + }; + export type SearchIssuesParams = { + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + }; + export type SearchIssuesAndPullRequestsParams = { + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + }; + export type SearchLabelsParams = { + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; + /** + * The id of the repository. + */ + repository_id: number; + /** + * Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "created" | "updated"; + }; + export type SearchReposParams = { + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + }; + export type SearchTopicsParams = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; + }; + export type SearchUsersParams = { + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching users](https://help.github.com/articles/searching-users/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "followers" | "repositories" | "joined"; + }; + export type TeamsAddMemberParams = { + team_id: number; + + username: string; + }; + export type TeamsAddOrUpdateMembershipParams = { + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; + + team_id: number; + + username: string; + }; + export type TeamsAddOrUpdateProjectParams = { + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + * **Note**: If you pass the `hellcat-preview` media type, you can promote—but not demote—a `permission` attribute inherited from a parent team. + */ + permission?: "read" | "write" | "admin"; + + project_id: number; + + team_id: number; + }; + export type TeamsAddOrUpdateRepoParams = { + owner: string; + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * **Note**: If you pass the `hellcat-preview` media type, you can promote—but not demote—a `permission` attribute inherited through a parent team. + */ + permission?: "pull" | "push" | "admin"; + + repo: string; + + team_id: number; + }; + export type TeamsCheckManagesRepoParams = { + owner: string; + + repo: string; + + team_id: number; + }; + export type TeamsCreateParamsDeprecatedPermission = { + /** + * The description of the team. + */ + description?: string; + /** + * The logins of organization members to add as maintainers of the team. + */ + maintainers?: string[]; + /** + * The name of the team. + */ + name: string; + + org: string; + /** + * The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter. + */ + parent_team_id?: number; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + * @deprecated "permission" parameter has been deprecated and will be removed in future + */ + permission?: string; + /** + * The level of privacy this team should have. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * Default for child team: `closed` + * **Note**: You must pass the `hellcat-preview` media type to set privacy default to `closed` for child teams. + */ + privacy?: "secret" | "closed"; + /** + * The full name (e.g., "organization-name/repository-name") of repositories to add the team to. + */ + repo_names?: string[]; + }; + export type TeamsCreateParams = { + /** + * The description of the team. + */ + description?: string; + /** + * The logins of organization members to add as maintainers of the team. + */ + maintainers?: string[]; + /** + * The name of the team. + */ + name: string; + + org: string; + /** + * The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter. + */ + parent_team_id?: number; + /** + * The level of privacy this team should have. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * Default for child team: `closed` + * **Note**: You must pass the `hellcat-preview` media type to set privacy default to `closed` for child teams. + */ + privacy?: "secret" | "closed"; + /** + * The full name (e.g., "organization-name/repository-name") of repositories to add the team to. + */ + repo_names?: string[]; + }; + export type TeamsCreateDiscussionParams = { + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; + + team_id: number; + /** + * The discussion post's title. + */ + title: string; + }; + export type TeamsCreateDiscussionCommentParams = { + /** + * The discussion comment's body text. + */ + body: string; + + discussion_number: number; + + team_id: number; + }; + export type TeamsDeleteParams = { + team_id: number; + }; + export type TeamsDeleteDiscussionParams = { + discussion_number: number; + + team_id: number; + }; + export type TeamsDeleteDiscussionCommentParams = { + comment_number: number; + + discussion_number: number; + + team_id: number; + }; + export type TeamsGetParams = { + team_id: number; + }; + export type TeamsGetByNameParams = { + org: string; + + team_slug: string; + }; + export type TeamsGetDiscussionParams = { + discussion_number: number; + + team_id: number; + }; + export type TeamsGetDiscussionCommentParams = { + comment_number: number; + + discussion_number: number; + + team_id: number; + }; + export type TeamsGetMemberParams = { + team_id: number; + + username: string; + }; + export type TeamsGetMembershipParams = { + team_id: number; + + username: string; + }; + export type TeamsListParams = { + org: string; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type TeamsListChildParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type TeamsListDiscussionCommentsParams = { + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + + discussion_number: number; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type TeamsListDiscussionsParams = { + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type TeamsListForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type TeamsListMembersParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + + team_id: number; + }; + export type TeamsListPendingInvitationsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type TeamsListProjectsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type TeamsListReposParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + team_id: number; + }; + export type TeamsRemoveMemberParams = { + team_id: number; + + username: string; + }; + export type TeamsRemoveMembershipParams = { + team_id: number; + + username: string; + }; + export type TeamsRemoveProjectParams = { + project_id: number; + + team_id: number; + }; + export type TeamsRemoveRepoParams = { + owner: string; + + repo: string; + + team_id: number; + }; + export type TeamsReviewProjectParams = { + project_id: number; + + team_id: number; + }; + export type TeamsUpdateParamsDeprecatedPermission = { + /** + * The description of the team. + */ + description?: string; + /** + * The name of the team. + */ + name: string; + /** + * The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter. + */ + parent_team_id?: number; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + * @deprecated "permission" parameter has been deprecated and will be removed in future + */ + permission?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + + team_id: number; + }; + export type TeamsUpdateParams = { + /** + * The description of the team. + */ + description?: string; + /** + * The name of the team. + */ + name: string; + /** + * The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter. + */ + parent_team_id?: number; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + + team_id: number; + }; + export type TeamsUpdateDiscussionParams = { + /** + * The discussion post's body text. + */ + body?: string; + + discussion_number: number; + + team_id: number; + /** + * The discussion post's title. + */ + title?: string; + }; + export type TeamsUpdateDiscussionCommentParams = { + /** + * The discussion comment's body text. + */ + body: string; + + comment_number: number; + + discussion_number: number; + + team_id: number; + }; + export type UsersAddEmailsParams = { + /** + * Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; + }; + export type UsersBlockParams = { + username: string; + }; + export type UsersCheckBlockedParams = { + username: string; + }; + export type UsersCheckFollowingParams = { + username: string; + }; + export type UsersCheckFollowingForUserParams = { + target_user: string; + + username: string; + }; + export type UsersCreateGpgKeyParams = { + /** + * Your GPG key, generated in ASCII-armored format. See "[Generating a new GPG key](https://help.github.com/articles/generating-a-new-gpg-key/)" for help creating a GPG key. + */ + armored_public_key?: string; + }; + export type UsersCreatePublicKeyParams = { + /** + * The public SSH key to add to your GitHub account. See "[Generating a new SSH key](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/)" for guidance on how to create a public SSH key. + */ + key?: string; + /** + * A descriptive name for the new key. Use a name that will help you recognize this key in your GitHub account. For example, if you're using a personal Mac, you might call this key "Personal MacBook Air". + */ + title?: string; + }; + export type UsersDeleteEmailsParams = { + /** + * Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; + }; + export type UsersDeleteGpgKeyParams = { + gpg_key_id: number; + }; + export type UsersDeletePublicKeyParams = { + key_id: number; + }; + export type UsersFollowParams = { + username: string; + }; + export type UsersGetByUsernameParams = { + username: string; + }; + export type UsersGetContextForUserParams = { + /** + * Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. + */ + subject_id?: string; + /** + * Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. + */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + + username: string; + }; + export type UsersGetGpgKeyParams = { + gpg_key_id: number; + }; + export type UsersGetPublicKeyParams = { + key_id: number; + }; + export type UsersListParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * The integer ID of the last User that you've seen. + */ + since?: string; + }; + export type UsersListEmailsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type UsersListFollowersForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type UsersListFollowersForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type UsersListFollowingForAuthenticatedUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type UsersListFollowingForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type UsersListGpgKeysParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type UsersListGpgKeysForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type UsersListPublicEmailsParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type UsersListPublicKeysParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + }; + export type UsersListPublicKeysForUserParams = { + /** + * Page number of the results to fetch. + */ + page?: number; + /** + * Results per page (max 100) + */ + per_page?: number; + + username: string; + }; + export type UsersTogglePrimaryEmailVisibilityParams = { + /** + * Specify the _primary_ email address that needs a visibility change. + */ + email: string; + /** + * Use `public` to enable an authenticated user to view the specified email address, or use `private` so this primary email address cannot be seen publicly. + */ + visibility: string; + }; + export type UsersUnblockParams = { + username: string; + }; + export type UsersUnfollowParams = { + username: string; + }; + export type UsersUpdateAuthenticatedParams = { + /** + * The new short biography of the user. + */ + bio?: string; + /** + * The new blog URL of the user. + */ + blog?: string; + /** + * The new company of the user. + */ + company?: string; + /** + * The publicly visible email address of the user. + */ + email?: string; + /** + * The new hiring availability of the user. + */ + hireable?: boolean; + /** + * The new location of the user. + */ + location?: string; + /** + * The new name of the user. + */ + name?: string; + }; + + // child param types + export type AppsCreateInstallationTokenParamsPermissions = {}; + export type ChecksCreateParamsActions = { + description: string; + identifier: string; + label: string; + }; + export type ChecksCreateParamsOutput = { + annotations?: ChecksCreateParamsOutputAnnotations[]; + images?: ChecksCreateParamsOutputImages[]; + summary: string; + text?: string; + title: string; + }; + export type ChecksCreateParamsOutputAnnotations = { + annotation_level: "notice" | "warning" | "failure"; + end_column?: number; + end_line: number; + message: string; + path: string; + raw_details?: string; + start_column?: number; + start_line: number; + title?: string; + }; + export type ChecksCreateParamsOutputImages = { + alt: string; + caption?: string; + image_url: string; + }; + export type ChecksSetSuitesPreferencesParamsAutoTriggerChecks = { + app_id: number; + setting: boolean; + }; + export type ChecksUpdateParamsActions = { + description: string; + identifier: string; + label: string; + }; + export type ChecksUpdateParamsOutput = { + annotations?: ChecksUpdateParamsOutputAnnotations[]; + images?: ChecksUpdateParamsOutputImages[]; + summary: string; + text?: string; + title?: string; + }; + export type ChecksUpdateParamsOutputAnnotations = { + annotation_level: "notice" | "warning" | "failure"; + end_column?: number; + end_line: number; + message: string; + path: string; + raw_details?: string; + start_column?: number; + start_line: number; + title?: string; + }; + export type ChecksUpdateParamsOutputImages = { + alt: string; + caption?: string; + image_url: string; + }; + export type GistsCreateParamsFiles = { + content?: string; + }; + export type GistsUpdateParamsFiles = { + content?: string; + filename?: string; + }; + export type GitCreateCommitParamsAuthor = { + date?: string; + email?: string; + name?: string; + }; + export type GitCreateCommitParamsCommitter = { + date?: string; + email?: string; + name?: string; + }; + export type GitCreateTagParamsTagger = { + date?: string; + email?: string; + name?: string; + }; + export type GitCreateTreeParamsTree = { + content?: string; + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + path?: string; + sha?: string; + type?: "blob" | "tree" | "commit"; + }; + export type OrgsCreateHookParamsConfig = { + content_type?: string; + insecure_ssl?: string; + secret?: string; + url: string; + }; + export type OrgsUpdateHookParamsConfig = { + content_type?: string; + insecure_ssl?: string; + secret?: string; + url: string; + }; + export type PullsCreateReviewParamsComments = { + body: string; + path: string; + position: number; + }; + export type ReposCreateDispatchEventParamsClientPayload = {}; + export type ReposCreateFileParamsAuthor = { + email: string; + name: string; + }; + export type ReposCreateFileParamsCommitter = { + email: string; + name: string; + }; + export type ReposCreateHookParamsConfig = { + content_type?: string; + insecure_ssl?: string; + secret?: string; + url: string; + }; + export type ReposCreateOrUpdateFileParamsAuthor = { + email: string; + name: string; + }; + export type ReposCreateOrUpdateFileParamsCommitter = { + email: string; + name: string; + }; + export type ReposDeleteFileParamsAuthor = { + email?: string; + name?: string; + }; + export type ReposDeleteFileParamsCommitter = { + email?: string; + name?: string; + }; + export type ReposEnablePagesSiteParamsSource = { + branch?: "master" | "gh-pages"; + path?: string; + }; + export type ReposUpdateBranchProtectionParamsRequiredPullRequestReviews = { + dismiss_stale_reviews?: boolean; + dismissal_restrictions?: ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; + }; + export type ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions = { + teams?: string[]; + users?: string[]; + }; + export type ReposUpdateBranchProtectionParamsRequiredStatusChecks = { + contexts: string[]; + strict: boolean; + }; + export type ReposUpdateBranchProtectionParamsRestrictions = { + apps?: string[]; + teams: string[]; + users: string[]; + }; + export type ReposUpdateFileParamsAuthor = { + email: string; + name: string; + }; + export type ReposUpdateFileParamsCommitter = { + email: string; + name: string; + }; + export type ReposUpdateHookParamsConfig = { + content_type?: string; + insecure_ssl?: string; + secret?: string; + url: string; + }; + export type ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions = { + teams?: string[]; + users?: string[]; + }; + export type ReposUploadReleaseAssetParamsHeaders = { + "content-length": number; + "content-type": string; + }; +} + +declare class Octokit { + constructor(options?: Octokit.Options); + authenticate(auth: Octokit.AuthBasic): void; + authenticate(auth: Octokit.AuthOAuthToken): void; + authenticate(auth: Octokit.AuthOAuthSecret): void; + authenticate(auth: Octokit.AuthUserToken): void; + authenticate(auth: Octokit.AuthJWT): void; + + hook: { + before( + name: string, + callback: (options: Octokit.HookOptions) => void + ): void; + after( + name: string, + callback: ( + response: Octokit.Response, + options: Octokit.HookOptions + ) => void + ): void; + error( + name: string, + callback: (error: Octokit.HookError, options: Octokit.HookOptions) => void + ): void; + wrap( + name: string, + callback: ( + request: ( + options: Octokit.HookOptions + ) => Promise>, + options: Octokit.HookOptions + ) => void + ): void; + }; + + static plugin(plugin: Octokit.Plugin | Octokit.Plugin[]): Octokit.Static; + + registerEndpoints(endpoints: { + [scope: string]: Octokit.EndpointOptions; + }): void; + + request: Octokit.Request; + + paginate: Octokit.Paginate; + + log: Octokit.Log; + + activity: { + /** + * Requires for the user to be authenticated. + */ + checkStarringRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityCheckStarringRepoParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint should only be used to stop watching a repository. To control whether or not you wish to receive notifications from a repository, [set the repository's subscription manually](https://developer.github.com/v3/activity/watching/#set-a-repository-subscription). + */ + deleteRepoSubscription: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityDeleteRepoSubscriptionParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Mutes all future notifications for a conversation until you comment on the thread or get **@mention**ed. + */ + deleteThreadSubscription: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityDeleteThreadSubscriptionParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + getRepoSubscription: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityGetRepoSubscriptionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getThread: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityGetThreadParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This checks to see if the current user is subscribed to a thread. You can also [get a repository subscription](https://developer.github.com/v3/activity/watching/#get-a-repository-subscription). + * + * Note that subscriptions are only generated if a user is participating in a conversation--for example, they've replied to the thread, were **@mentioned**, or manually subscribe to a thread. + */ + getThreadSubscription: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityGetThreadSubscriptionParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This is the user's organization dashboard. You must be authenticated as the user to view this. + */ + listEventsForOrg: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityListEventsForOrgParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events. + */ + listEventsForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListEventsForUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * GitHub provides several timeline resources in [Atom](http://en.wikipedia.org/wiki/Atom_(standard)) format. The Feeds API lists all the feeds available to the authenticated user: + * + * * **Timeline**: The GitHub global public timeline + * * **User**: The public timeline for any user, using [URI template](https://developer.github.com/v3/#hypermedia) + * * **Current user public**: The public timeline for the authenticated user + * * **Current user**: The private timeline for the authenticated user + * * **Current user actor**: The private timeline for activity created by the authenticated user + * * **Current user organizations**: The private timeline for the organizations the authenticated user is a member of. + * * **Security advisories**: A collection of public announcements that provide information about security-related vulnerabilities in software on GitHub. + * + * **Note**: Private feeds are only returned when [authenticating via Basic Auth](https://developer.github.com/v3/#basic-authentication) since current feed URIs use the older, non revocable auth tokens. + */ + listFeeds: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List all notifications for the current user, sorted by most recently updated. + * + * The following example uses the `since` parameter to list notifications that have been updated after the specified time. + */ + listNotifications: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListNotificationsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List all notifications for the current user. + */ + listNotificationsForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListNotificationsForRepoParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * We delay the public events feed by five minutes, which means the most recent event returned by the public events API actually occurred at least five minutes ago. + */ + listPublicEvents: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityListPublicEventsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + listPublicEventsForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListPublicEventsForOrgParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + listPublicEventsForRepoNetwork: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListPublicEventsForRepoNetworkParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + listPublicEventsForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListPublicEventsForUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * These are events that you've received by watching repos and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public events. + */ + listReceivedEventsForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListReceivedEventsForUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + listReceivedPublicEventsForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListReceivedPublicEventsForUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + listRepoEvents: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityListRepoEventsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * You can also find out _when_ stars were created by passing the following custom [media type](https://developer.github.com/v3/media/) via the `Accept` header: + */ + listReposStarredByAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListReposStarredByAuthenticatedUserParams + ): Promise< + Octokit.Response< + Octokit.ActivityListReposStarredByAuthenticatedUserResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * You can also find out _when_ stars were created by passing the following custom [media type](https://developer.github.com/v3/media/) via the `Accept` header: + */ + listReposStarredByUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListReposStarredByUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listReposWatchedByUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListReposWatchedByUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * You can also find out _when_ stars were created by passing the following custom [media type](https://developer.github.com/v3/media/) via the `Accept` header: + */ + listStargazersForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListStargazersForRepoParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listWatchedReposForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListWatchedReposForAuthenticatedUserParams + ): Promise< + Octokit.Response< + Octokit.ActivityListWatchedReposForAuthenticatedUserResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + + listWatchersForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityListWatchersForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Marks a notification as "read" removes it from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List your notifications](https://developer.github.com/v3/activity/notifications/#list-your-notifications) endpoint and pass the query parameter `all=false`. + */ + markAsRead: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityMarkAsReadParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Marks all notifications in a repository as "read" removes them from the [default view on GitHub](https://github.com/notifications). If the number of notifications is too large to complete in one request, you will receive a `202 Accepted` status and GitHub will run an asynchronous process to mark notifications as "read." To check whether any "unread" notifications remain, you can use the [List your notifications in a repository](https://developer.github.com/v3/activity/notifications/#list-your-notifications-in-a-repository) endpoint and pass the query parameter `all=false`. + */ + markNotificationsAsReadForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivityMarkNotificationsAsReadForRepoParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + markThreadAsRead: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityMarkThreadAsReadParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * If you would like to watch a repository, set `subscribed` to `true`. If you would like to ignore notifications made within a repository, set `ignored` to `true`. If you would like to stop watching a repository, [delete the repository's subscription](https://developer.github.com/v3/activity/watching/#delete-a-repository-subscription) completely. + */ + setRepoSubscription: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivitySetRepoSubscriptionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This lets you subscribe or unsubscribe from a conversation. + */ + setThreadSubscription: { + ( + params?: Octokit.RequestOptions & + Octokit.ActivitySetThreadSubscriptionParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Requires for the user to be authenticated. + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + starRepo: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityStarRepoParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Requires for the user to be authenticated. + */ + unstarRepo: { + ( + params?: Octokit.RequestOptions & Octokit.ActivityUnstarRepoParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + }; + apps: { + /** + * Add a single repository to an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization)) or [Basic Authentication](https://developer.github.com/v3/auth/#basic-authentication) to access this endpoint. + */ + addRepoToInstallation: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsAddRepoToInstallationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://developer.github.com/v3/auth/#basic-authentication) with their client ID and client secret to access this endpoint. + */ + checkAccountIsAssociatedWithAny: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsCheckAccountIsAssociatedWithAnyParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Shows whether the user or organization account actively subscribes to a plan listed by the authenticated GitHub App. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://developer.github.com/v3/auth/#basic-authentication) with their client ID and client secret to access this endpoint. + */ + checkAccountIsAssociatedWithAnyStubbed: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsCheckAccountIsAssociatedWithAnyStubbedParams + ): Promise< + Octokit.Response< + Octokit.AppsCheckAccountIsAssociatedWithAnyStubbedResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + * @deprecated octokit.apps.checkAuthorization() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#check-an-authorization + */ + checkAuthorization: { + ( + params?: Octokit.RequestOptions & Octokit.AppsCheckAuthorizationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) to use this endpoint, where the username is the OAuth application `client_id` and the password is its `client_secret`. Invalid tokens will return `404 NOT FOUND`. + */ + checkToken: { + (params?: Octokit.RequestOptions & Octokit.AppsCheckTokenParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates an attachment under a content reference URL in the body or comment of an issue or pull request. Use the `id` of the content reference from the [`content_reference` event](https://developer.github.com/v3/activity/events/types/#contentreferenceevent) to create an attachment. + * + * The app must create a content attachment within six hours of the content reference URL being posted. See "[Using content attachments](https://developer.github.com/apps/using-content-attachments/)" for details about content attachments. + * + * You must use an [installation access token](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + * + * This example creates a content attachment for the domain `https://errors.ai/`. + */ + createContentAttachment: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsCreateContentAttachmentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Use this endpoint to complete the handshake necessary when implementing the [GitHub App Manifest flow](https://developer.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/). When you create a GitHub App with the manifest flow, you receive a temporary `code` used to retrieve the GitHub App's `id`, `pem` (private key), and `webhook_secret`. + */ + createFromManifest: { + ( + params?: Octokit.RequestOptions & Octokit.AppsCreateFromManifestParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates an installation access token that enables a GitHub App to make authenticated API requests for the app's installation on an organization or individual account. Installation tokens expire one hour from the time you create them. Using an expired token produces a status code of `401 - Unauthorized`, and requires creating a new installation token. + * + * By default the installation token has access to all repositories that the installation can access. To restrict the access to specific repositories, you can provide the `repository_ids` when creating the token. When you omit `repository_ids`, the response does not contain the `repositories` key. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * This example grants the token "Read and write" permission to `issues` and "Read" permission to `contents`, and restricts the token's access to the repository with an `id` of 1296269. + */ + createInstallationToken: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsCreateInstallationTokenParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid OAuth `access_token` as an input parameter and the grant for the token's owner will be deleted. + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + */ + deleteAuthorization: { + ( + params?: Octokit.RequestOptions & Octokit.AppsDeleteAuthorizationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Uninstalls a GitHub App on a user, organization, or business account. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + deleteInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsDeleteInstallationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + */ + deleteToken: { + ( + params?: Octokit.RequestOptions & Octokit.AppsDeleteTokenParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * @deprecated octokit.apps.findOrgInstallation() has been renamed to octokit.apps.getOrgInstallation() (2019-04-10) + */ + findOrgInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsFindOrgInstallationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * @deprecated octokit.apps.findRepoInstallation() has been renamed to octokit.apps.getRepoInstallation() (2019-04-10) + */ + findRepoInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsFindRepoInstallationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * @deprecated octokit.apps.findUserInstallation() has been renamed to octokit.apps.getUserInstallation() (2019-04-10) + */ + findUserInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsFindUserInstallationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns the GitHub App associated with the authentication credentials used. To see how many app installations are associated with this GitHub App, see the `installations_count` in the response. For more details about your app's installations, see the "[List installations](https://developer.github.com/v3/apps/#list-installations)" endpoint. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getAuthenticated: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: The `:app_slug` is just the URL-friendly name of your GitHub App. You can find this on the settings page for your GitHub App (e.g., `https://github.com/settings/apps/:app_slug`). + * + * If the GitHub App you specify is public, you can access this endpoint without authenticating. If the GitHub App you specify is private, you must authenticate with a [personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or an [installation access token](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + getBySlug: { + (params?: Octokit.RequestOptions & Octokit.AppsGetBySlugParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsGetInstallationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables an authenticated GitHub App to find the organization's installation information. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getOrgInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsGetOrgInstallationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables an authenticated GitHub App to find the repository's installation information. The installation's account type will be either an organization or a user account, depending which account the repository belongs to. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getRepoInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsGetRepoInstallationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables an authenticated GitHub App to find the user’s installation information. + * + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + */ + getUserInstallation: { + ( + params?: Octokit.RequestOptions & Octokit.AppsGetUserInstallationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns any accounts associated with a plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://developer.github.com/v3/auth/#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsUserOrOrgOnPlan: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsListAccountsUserOrOrgOnPlanParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns any accounts associated with a plan, including free plans. For per-seat pricing, you see the list of accounts that have purchased the plan, including the number of seats purchased. When someone submits a plan change that won't be processed until the end of their billing cycle, you will also see the upcoming pending change. + * + * GitHub Apps must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://developer.github.com/v3/auth/#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listAccountsUserOrOrgOnPlanStubbed: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsListAccountsUserOrOrgOnPlanStubbedParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You must use a [user-to-server OAuth access token](https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The access the user has to each repository is included in the hash under the `permissions` key. + */ + listInstallationReposForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsListInstallationReposForAuthenticatedUserParams + ): Promise< + Octokit.Response< + Octokit.AppsListInstallationReposForAuthenticatedUserResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * You must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. + * + * The permissions the installation has are included under the `permissions` key. + */ + listInstallations: { + ( + params?: Octokit.RequestOptions & Octokit.AppsListInstallationsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists installations of your GitHub App that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * You must use a [user-to-server OAuth access token](https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + * + * You can find the permissions for the installation under the `permissions` key. + */ + listInstallationsForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsListInstallationsForAuthenticatedUserParams + ): Promise< + Octokit.Response< + Octokit.AppsListInstallationsForAuthenticatedUserResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns only active subscriptions. You must use a [user-to-server OAuth access token](https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + listMarketplacePurchasesForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsListMarketplacePurchasesForAuthenticatedUserParams + ): Promise< + Octokit.Response< + Octokit.AppsListMarketplacePurchasesForAuthenticatedUserResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns only active subscriptions. You must use a [user-to-server OAuth access token](https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-users-on-your-site), created for a user who has authorized your GitHub App, to access this endpoint. . OAuth Apps must authenticate using an [OAuth token](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/). + */ + listMarketplacePurchasesForAuthenticatedUserStubbed: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsListMarketplacePurchasesForAuthenticatedUserStubbedParams + ): Promise< + Octokit.Response< + Octokit.AppsListMarketplacePurchasesForAuthenticatedUserStubbedResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * GitHub Apps must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://developer.github.com/v3/auth/#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlans: { + (params?: Octokit.RequestOptions & Octokit.AppsListPlansParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * GitHub Apps must use a [JWT](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-a-github-app) to access this endpoint. OAuth Apps must use [basic authentication](https://developer.github.com/v3/auth/#basic-authentication) with their client ID and client secret to access this endpoint. + */ + listPlansStubbed: { + ( + params?: Octokit.RequestOptions & Octokit.AppsListPlansStubbedParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List repositories that an installation can access. + * + * You must use an [installation access token](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/#authenticating-as-an-installation) to access this endpoint. + */ + listRepos: { + (params?: Octokit.RequestOptions & Octokit.AppsListReposParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Remove a single repository from an installation. The authenticated user must have admin access to the repository. + * + * You must use a personal access token (which you can create via the [command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) or the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization)) or [Basic Authentication](https://developer.github.com/v3/auth/#basic-authentication) to access this endpoint. + */ + removeRepoFromInstallation: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsRemoveRepoFromInstallationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + * @deprecated octokit.apps.resetAuthorization() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#reset-an-authorization + */ + resetAuthorization: { + ( + params?: Octokit.RequestOptions & Octokit.AppsResetAuthorizationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + */ + resetToken: { + (params?: Octokit.RequestOptions & Octokit.AppsResetTokenParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + * @deprecated octokit.apps.revokeAuthorizationForApplication() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#revoke-an-authorization-for-an-application + */ + revokeAuthorizationForApplication: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsRevokeAuthorizationForApplicationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid token as `:access_token` and the grant for the token's owner will be deleted. + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the Applications settings page under "Authorized OAuth Apps" on GitHub](https://github.com/settings/applications#authorized). + * @deprecated octokit.apps.revokeGrantForApplication() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#revoke-a-grant-for-an-application + */ + revokeGrantForApplication: { + ( + params?: Octokit.RequestOptions & + Octokit.AppsRevokeGrantForApplicationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + }; + checks: { + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Creates a new check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to create check runs. + */ + create: { + (params?: Octokit.RequestOptions & Octokit.ChecksCreateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * By default, check suites are automatically created when you create a [check run](https://developer.github.com/v3/checks/runs/). You only need to use this endpoint for manually creating check suites when you've disabled automatic creation using "[Set preferences for check suites on a repository](https://developer.github.com/v3/checks/suites/#set-preferences-for-check-suites-on-a-repository)". Your GitHub App must have the `checks:write` permission to create check suites. + */ + createSuite: { + ( + params?: Octokit.RequestOptions & Octokit.ChecksCreateSuiteParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Gets a single check run using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + get: { + (params?: Octokit.RequestOptions & Octokit.ChecksGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Gets a single check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + getSuite: { + (params?: Octokit.RequestOptions & Octokit.ChecksGetSuiteParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists annotations for a check run using the annotation `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get annotations for a check run. OAuth Apps and authenticated users must have the `repo` scope to get annotations for a check run in a private repository. + */ + listAnnotations: { + ( + params?: Octokit.RequestOptions & Octokit.ChecksListAnnotationsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a commit ref. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + listForRef: { + ( + params?: Octokit.RequestOptions & Octokit.ChecksListForRefParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Lists check runs for a check suite using its `id`. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to get check runs. OAuth Apps and authenticated users must have the `repo` scope to get check runs in a private repository. + */ + listForSuite: { + ( + params?: Octokit.RequestOptions & Octokit.ChecksListForSuiteParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array and a `null` value for `head_branch`. + * + * Lists check suites for a commit `ref`. The `ref` can be a SHA, branch name, or a tag name. GitHub Apps must have the `checks:read` permission on a private repository or pull access to a public repository to list check suites. OAuth Apps and authenticated users must have the `repo` scope to get check suites in a private repository. + */ + listSuitesForRef: { + ( + params?: Octokit.RequestOptions & Octokit.ChecksListSuitesForRefParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Triggers GitHub to rerequest an existing check suite, without pushing new code to a repository. This endpoint will trigger the [`check_suite` webhook](https://developer.github.com/v3/activity/events/types/#checksuiteevent) event with the action `rerequested`. When a check suite is `rerequested`, its `status` is reset to `queued` and the `conclusion` is cleared. + * + * To rerequest a check suite, your GitHub App must have the `checks:read` permission on a private repository or pull access to a public repository. + */ + rerequestSuite: { + ( + params?: Octokit.RequestOptions & Octokit.ChecksRerequestSuiteParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Changes the default automatic flow when creating check suites. By default, the CheckSuiteEvent is automatically created each time code is pushed to a repository. When you disable the automatic creation of check suites, you can manually [Create a check suite](https://developer.github.com/v3/checks/suites/#create-a-check-suite). You must have admin permissions in the repository to set preferences for check suites. + */ + setSuitesPreferences: { + ( + params?: Octokit.RequestOptions & + Octokit.ChecksSetSuitesPreferencesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty `pull_requests` array. + * + * Updates a check run for a specific commit in a repository. Your GitHub App must have the `checks:write` permission to edit check runs. + */ + update: { + (params?: Octokit.RequestOptions & Octokit.ChecksUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + codesOfConduct: { + getConductCode: { + ( + params?: Octokit.RequestOptions & + Octokit.CodesOfConductGetConductCodeParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This method returns the contents of the repository's code of conduct file, if one is detected. + */ + getForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.CodesOfConductGetForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listConductCodes: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + emojis: { + /** + * Lists all the emojis available to use on GitHub. + */ + get: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + }; + gists: { + checkIsStarred: { + ( + params?: Octokit.RequestOptions & Octokit.GistsCheckIsStarredParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Allows you to add a new gist with one or more files. + * + * **Note:** Don't name your files "gistfile" with a numerical suffix. This is the format of the automatic naming scheme that Gist uses internally. + */ + create: { + (params?: Octokit.RequestOptions & Octokit.GistsCreateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + createComment: { + ( + params?: Octokit.RequestOptions & Octokit.GistsCreateCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + delete: { + (params?: Octokit.RequestOptions & Octokit.GistsDeleteParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + + deleteComment: { + ( + params?: Octokit.RequestOptions & Octokit.GistsDeleteCommentParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: This was previously `/gists/:gist_id/fork`. + */ + fork: { + (params?: Octokit.RequestOptions & Octokit.GistsForkParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + get: { + (params?: Octokit.RequestOptions & Octokit.GistsGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getComment: { + ( + params?: Octokit.RequestOptions & Octokit.GistsGetCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getRevision: { + ( + params?: Octokit.RequestOptions & Octokit.GistsGetRevisionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + list: { + (params?: Octokit.RequestOptions & Octokit.GistsListParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listComments: { + ( + params?: Octokit.RequestOptions & Octokit.GistsListCommentsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listCommits: { + ( + params?: Octokit.RequestOptions & Octokit.GistsListCommitsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listForks: { + (params?: Octokit.RequestOptions & Octokit.GistsListForksParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List all public gists sorted by most recently updated to least recently updated. + * + * Note: With [pagination](https://developer.github.com/v3/#pagination), you can fetch up to 3000 gists. For example, you can fetch 100 pages with 30 gists per page or 30 pages with 100 gists per page. + */ + listPublic: { + ( + params?: Octokit.RequestOptions & Octokit.GistsListPublicParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listPublicForUser: { + ( + params?: Octokit.RequestOptions & Octokit.GistsListPublicForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List the authenticated user's starred gists: + */ + listStarred: { + ( + params?: Octokit.RequestOptions & Octokit.GistsListStarredParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + star: { + (params?: Octokit.RequestOptions & Octokit.GistsStarParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + + unstar: { + (params?: Octokit.RequestOptions & Octokit.GistsUnstarParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Allows you to update or delete a gist file and rename gist files. Files from the previous version of the gist that aren't explicitly changed during an edit are unchanged. + */ + update: { + (params?: Octokit.RequestOptions & Octokit.GistsUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + updateComment: { + ( + params?: Octokit.RequestOptions & Octokit.GistsUpdateCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; + git: { + createBlob: { + (params?: Octokit.RequestOptions & Octokit.GitCreateBlobParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * In this example, the payload of the signature would be: + * + * + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createCommit: { + ( + params?: Octokit.RequestOptions & Octokit.GitCreateCommitParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a reference for your repository. You are unable to create new references for empty repositories, even if the commit SHA-1 hash used exists. Empty repositories are repositories without branches. + */ + createRef: { + (params?: Octokit.RequestOptions & Octokit.GitCreateRefParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Note that creating a tag object does not create the reference that makes a tag in Git. If you want to create an annotated tag in Git, you have to do this call to create the tag object, and then [create](https://developer.github.com/v3/git/refs/#create-a-reference) the `refs/tags/[tag]` reference. If you want to create a lightweight tag, you only have to [create](https://developer.github.com/v3/git/refs/#create-a-reference) the tag reference - this call would be unnecessary. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + createTag: { + (params?: Octokit.RequestOptions & Octokit.GitCreateTagParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure. + * + * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://developer.github.com/v3/git/commits/#create-a-commit)" and "[Update a reference](https://developer.github.com/v3/git/refs/#update-a-reference)." + */ + createTree: { + (params?: Octokit.RequestOptions & Octokit.GitCreateTreeParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * ``` + * DELETE /repos/octocat/Hello-World/git/refs/heads/feature-a + * ``` + * + * ``` + * DELETE /repos/octocat/Hello-World/git/refs/tags/v1.0 + * ``` + */ + deleteRef: { + (params?: Octokit.RequestOptions & Octokit.GitDeleteRefParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * The `content` in the response will always be Base64 encoded. + * + * _Note_: This API supports blobs up to 100 megabytes in size. + */ + getBlob: { + (params?: Octokit.RequestOptions & Octokit.GitGetBlobParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Gets a Git [commit object](https://git-scm.com/book/en/v1/Git-Internals-Git-Objects#Commit-Objects). + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + (params?: Octokit.RequestOptions & Octokit.GitGetCommitParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns a single reference from your Git database. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't match an existing ref, a `404` is returned. + * + * **Note:** You need to explicitly [request a pull request](https://developer.github.com/v3/pulls/#get-a-single-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://developer.github.com/v3/git/#checking-mergeability-of-pull-requests)". + * + * To get the reference for a branch named `skunkworkz/featureA`, the endpoint route is: + */ + getRef: { + (params?: Octokit.RequestOptions & Octokit.GitGetRefParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getTag: { + (params?: Octokit.RequestOptions & Octokit.GitGetTagParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * If `truncated` is `true`, the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, you can clone the repository and iterate over the Git data locally. + */ + getTree: { + (params?: Octokit.RequestOptions & Octokit.GitGetTreeParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns an array of references from your Git database that match the supplied name. The `:ref` in the URL must be formatted as `heads/` for branches and `tags/` for tags. If the `:ref` doesn't exist in the repository, but existing refs start with `:ref`, they will be returned as an array. + * + * When you use this endpoint without providing a `:ref`, it will return an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. + * + * **Note:** You need to explicitly [request a pull request](https://developer.github.com/v3/pulls/#get-a-single-pull-request) to trigger a test merge commit, which checks the mergeability of pull requests. For more information, see "[Checking mergeability of pull requests](https://developer.github.com/v3/git/#checking-mergeability-of-pull-requests)". + * + * If you request matching references for a branch named `feature` but the branch `feature` doesn't exist, the response can still include other matching head refs that start with the word `feature`, such as `featureA` and `featureB`. + */ + listMatchingRefs: { + ( + params?: Octokit.RequestOptions & Octokit.GitListMatchingRefsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns an array of all the references from your Git database, including notes and stashes if they exist on the server. Anything in the namespace is returned, not just `heads` and `tags`. If there are no references to list, a `404` is returned. + */ + listRefs: { + (params?: Octokit.RequestOptions & Octokit.GitListRefsParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + + updateRef: { + (params?: Octokit.RequestOptions & Octokit.GitUpdateRefParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + gitignore: { + /** + * The API also allows fetching the source of a single template. + * + * Use the raw [media type](https://developer.github.com/v3/media/) to get the raw contents. + */ + getTemplate: { + ( + params?: Octokit.RequestOptions & Octokit.GitignoreGetTemplateParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List all templates available to pass as an option when [creating a repository](https://developer.github.com/v3/repos/#create). + */ + listTemplates: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + interactions: { + /** + * Temporarily restricts interactions to certain GitHub users in any public repository in the given organization. You must be an organization owner to set these restrictions. + */ + addOrUpdateRestrictionsForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.InteractionsAddOrUpdateRestrictionsForOrgParams + ): Promise< + Octokit.Response< + Octokit.InteractionsAddOrUpdateRestrictionsForOrgResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Temporarily restricts interactions to certain GitHub users within the given repository. You must have owner or admin access to set restrictions. + */ + addOrUpdateRestrictionsForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.InteractionsAddOrUpdateRestrictionsForRepoParams + ): Promise< + Octokit.Response< + Octokit.InteractionsAddOrUpdateRestrictionsForRepoResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Shows which group of GitHub users can interact with this organization and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + getRestrictionsForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.InteractionsGetRestrictionsForOrgParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Shows which group of GitHub users can interact with this repository and when the restriction expires. If there are no restrictions, you will see an empty response. + */ + getRestrictionsForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.InteractionsGetRestrictionsForRepoParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions. + */ + removeRestrictionsForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.InteractionsRemoveRestrictionsForOrgParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes all interaction restrictions from the given repository. You must have owner or admin access to remove restrictions. + */ + removeRestrictionsForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.InteractionsRemoveRestrictionsForRepoParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + }; + issues: { + /** + * Adds up to 10 assignees to an issue. Users already assigned to an issue are not replaced. + * + * This example adds two assignees to the existing `octocat` assignee. + */ + addAssignees: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesAddAssigneesParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesAddAssigneesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + addLabels: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesAddLabelsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesAddLabelsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Checks if a user has permission to be assigned to an issue in this repository. + * + * If the `assignee` can be assigned to issues in the repository, a `204` header with no content is returned. + * + * Otherwise a `404` status code is returned. + */ + checkAssignee: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesCheckAssigneeParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://help.github.com/articles/disabling-issues/), the API returns a `410 Gone` status. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + create: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesCreateParamsDeprecatedAssignee + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.IssuesCreateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createComment: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesCreateCommentParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesCreateCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + createLabel: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesCreateLabelParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + createMilestone: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesCreateMilestoneParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + deleteComment: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesDeleteCommentParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + deleteLabel: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesDeleteLabelParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + deleteMilestone: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesDeleteMilestoneParamsDeprecatedNumber + ): Promise; + ( + params?: Octokit.RequestOptions & Octokit.IssuesDeleteMilestoneParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * The API returns a [`301 Moved Permanently` status](https://developer.github.com/v3/#http-redirects) if the issue was [transferred](https://help.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe to the [`issues`](https://developer.github.com/v3/activity/events/types/#issuesevent) webhook. + * + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests)" endpoint. + */ + get: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesGetParamsDeprecatedNumber + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.IssuesGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getComment: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesGetCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getEvent: { + (params?: Octokit.RequestOptions & Octokit.IssuesGetEventParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getLabel: { + (params?: Octokit.RequestOptions & Octokit.IssuesGetLabelParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getMilestone: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesGetMilestoneParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesGetMilestoneParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests)" endpoint. + */ + list: { + (params?: Octokit.RequestOptions & Octokit.IssuesListParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the [available assignees](https://help.github.com/articles/assigning-issues-and-pull-requests-to-other-github-users/) for issues in a repository. + */ + listAssignees: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesListAssigneesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Issue Comments are ordered by ascending ID. + */ + listComments: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListCommentsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesListCommentsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * By default, Issue Comments are ordered by ascending ID. + */ + listCommentsForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListCommentsForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listEvents: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListEventsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesListEventsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listEventsForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesListEventsForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listEventsForTimeline: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListEventsForTimelineParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListEventsForTimelineParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests)" endpoint. + */ + listForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests)" endpoint. + */ + listForOrg: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesListForOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests)" endpoint. + */ + listForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesListForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listLabelsForMilestone: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListLabelsForMilestoneParamsDeprecatedNumber + ): Promise< + Octokit.Response + >; + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListLabelsForMilestoneParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listLabelsForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesListLabelsForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listLabelsOnIssue: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListLabelsOnIssueParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesListLabelsOnIssueParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listMilestonesForRepo: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesListMilestonesForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with push access can lock an issue or pull request's conversation. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + lock: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesLockParamsDeprecatedNumber + ): Promise; + (params?: Octokit.RequestOptions & Octokit.IssuesLockParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes one or more assignees from an issue. + * + * This example removes two of three assignees, leaving the `octocat` assignee. + */ + removeAssignees: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesRemoveAssigneesParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesRemoveAssigneesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist. + */ + removeLabel: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesRemoveLabelParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesRemoveLabelParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + removeLabels: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesRemoveLabelsParamsDeprecatedNumber + ): Promise; + ( + params?: Octokit.RequestOptions & Octokit.IssuesRemoveLabelsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + replaceLabels: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesReplaceLabelsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesReplaceLabelsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with push access can unlock an issue's conversation. + */ + unlock: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesUnlockParamsDeprecatedNumber + ): Promise; + (params?: Octokit.RequestOptions & Octokit.IssuesUnlockParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Issue owners and users with push access can edit an issue. + */ + update: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesUpdateParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.IssuesUpdateParamsDeprecatedAssignee + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.IssuesUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + updateComment: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesUpdateCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + updateLabel: { + ( + params?: Octokit.RequestOptions & Octokit.IssuesUpdateLabelParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + updateMilestone: { + ( + params?: Octokit.RequestOptions & + Octokit.IssuesUpdateMilestoneParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.IssuesUpdateMilestoneParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; + licenses: { + get: { + (params?: Octokit.RequestOptions & Octokit.LicensesGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This method returns the contents of the repository's license file, if one is detected. + * + * Similar to [the repository contents API](https://developer.github.com/v3/repos/contents/#get-contents), this method also supports [custom media types](https://developer.github.com/v3/repos/contents/#custom-media-types) for retrieving the raw license content or rendered license HTML. + */ + getForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.LicensesGetForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * @deprecated octokit.licenses.list() has been renamed to octokit.licenses.listCommonlyUsed() (2019-03-05) + */ + list: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listCommonlyUsed: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + markdown: { + render: { + (params?: Octokit.RequestOptions & Octokit.MarkdownRenderParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * You must send Markdown as plain text (using a `Content-Type` header of `text/plain` or `text/x-markdown`) to this endpoint, rather than using JSON format. In raw mode, [GitHub Flavored Markdown](https://github.github.com/gfm/) is not supported and Markdown will be rendered in plain format like a README.md file. Markdown content must be 400 KB or less. + */ + renderRaw: { + ( + params?: Octokit.RequestOptions & Octokit.MarkdownRenderRawParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + }; + meta: { + /** + * This endpoint provides a list of GitHub's IP addresses. For more information, see "[About GitHub's IP addresses](https://help.github.com/articles/about-github-s-ip-addresses/)." + */ + get: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + migrations: { + /** + * Stop an import for a repository. + */ + cancelImport: { + ( + params?: Octokit.RequestOptions & Octokit.MigrationsCancelImportParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Deletes a previous migration archive. Downloadable migration archives are automatically deleted after seven days. Migration metadata, which is returned in the [Get a list of user migrations](https://developer.github.com/v3/migrations/users/#get-a-list-of-user-migrations) and [Get the status of a user migration](https://developer.github.com/v3/migrations/users/#get-the-status-of-a-user-migration) endpoints, will continue to be available even after an archive is deleted. + */ + deleteArchiveForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsDeleteArchiveForAuthenticatedUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Deletes a previous migration archive. Migration archives are automatically deleted after seven days. + */ + deleteArchiveForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsDeleteArchiveForOrgParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects: + * + * * attachments + * * bases + * * commit\_comments + * * issue\_comments + * * issue\_events + * * issues + * * milestones + * * organizations + * * projects + * * protected\_branches + * * pull\_request\_reviews + * * pull\_requests + * * releases + * * repositories + * * review\_comments + * * schema + * * users + * + * The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository's Git data. + */ + getArchiveForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsGetArchiveForAuthenticatedUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Fetches the URL to a migration archive. + */ + getArchiveForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsGetArchiveForOrgParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Each type of source control system represents authors in a different way. For example, a Git commit author has a display name and an email address, but a Subversion commit author just has a username. The GitHub Importer will make the author information valid, but the author might not be correct. For example, it will change the bare Subversion username `hubot` into something like `hubot `. + * + * This API method and the "Map a commit author" method allow you to provide correct Git author information. + */ + getCommitAuthors: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsGetCommitAuthorsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * View the progress of an import. + * + * **Import status** + * + * This section includes details about the possible values of the `status` field of the Import Progress response. + * + * An import that does not have errors will progress through these steps: + * + * * `detecting` - the "detection" step of the import is in progress because the request did not include a `vcs` parameter. The import is identifying the type of source control present at the URL. + * * `importing` - the "raw" step of the import is in progress. This is where commit data is fetched from the original repository. The import progress response will include `commit_count` (the total number of raw commits that will be imported) and `percent` (0 - 100, the current progress through the import). + * * `mapping` - the "rewrite" step of the import is in progress. This is where SVN branches are converted to Git branches, and where author updates are applied. The import progress response does not include progress information. + * * `pushing` - the "push" step of the import is in progress. This is where the importer updates the repository on GitHub. The import progress response will include `push_percent`, which is the percent value reported by `git push` when it is "Writing objects". + * * `complete` - the import is complete, and the repository is ready on GitHub. + * + * If there are problems, you will see one of these in the `status` field: + * + * * `auth_failed` - the import requires authentication in order to connect to the original repository. To update authentication for the import, please see the [Update Existing Import](https://developer.github.com/v3/migrations/source_imports/#update-existing-import) section. + * * `error` - the import encountered an error. The import progress response will include the `failed_step` and an error message. Contact [GitHub Support](https://github.com/contact) for more information. + * * `detection_needs_auth` - the importer requires authentication for the originating repository to continue detection. To update authentication for the import, please see the [Update Existing Import](https://developer.github.com/v3/migrations/source_imports/#update-existing-import) section. + * * `detection_found_nothing` - the importer didn't recognize any source control at the URL. To resolve, [Cancel the import](https://developer.github.com/v3/migrations/source_imports/#cancel-an-import) and [retry](https://developer.github.com/v3/migrations/source_imports/#start-an-import) with the correct URL. + * * `detection_found_multiple` - the importer found several projects or repositories at the provided URL. When this is the case, the Import Progress response will also include a `project_choices` field with the possible project choices as values. To update project choice, please see the [Update Existing Import](https://developer.github.com/v3/migrations/source_imports/#update-existing-import) section. + * + * **The project_choices field** + * + * When multiple projects are found at the provided URL, the response hash will include a `project_choices` field, the value of which is an array of hashes each representing a project choice. The exact key/value pairs of the project hashes will differ depending on the version control type. + * + * **Git LFS related fields** + * + * This section includes details about Git LFS related fields that may be present in the Import Progress response. + * + * * `use_lfs` - describes whether the import has been opted in or out of using Git LFS. The value can be `opt_in`, `opt_out`, or `undecided` if no action has been taken. + * * `has_large_files` - the boolean value describing whether files larger than 100MB were found during the `importing` step. + * * `large_files_size` - the total size in gigabytes of files larger than 100MB found in the originating repository. + * * `large_files_count` - the total number of files larger than 100MB found in the originating repository. To see a list of these files, make a "Get Large Files" request. + */ + getImportProgress: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsGetImportProgressParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List files larger than 100MB found during the import + */ + getLargeFiles: { + ( + params?: Octokit.RequestOptions & Octokit.MigrationsGetLargeFilesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Fetches a single user migration. The response includes the `state` of the migration, which can be one of the following values: + * + * * `pending` - the migration hasn't started yet. + * * `exporting` - the migration is in progress. + * * `exported` - the migration finished successfully. + * * `failed` - the migration failed. + * + * Once the migration has been `exported` you can [download the migration archive](https://developer.github.com/v3/migrations/users/#download-a-user-migration-archive). + */ + getStatusForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsGetStatusForAuthenticatedUserParams + ): Promise< + Octokit.Response< + Octokit.MigrationsGetStatusForAuthenticatedUserResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Fetches the status of a migration. + * + * The `state` of a migration can be one of the following values: + * + * * `pending`, which means the migration hasn't started yet. + * * `exporting`, which means the migration is in progress. + * * `exported`, which means the migration finished successfully. + * * `failed`, which means the migration failed. + */ + getStatusForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsGetStatusForOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists all migrations a user has started. + */ + listForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsListForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the most recent migrations. + */ + listForOrg: { + ( + params?: Octokit.RequestOptions & Octokit.MigrationsListForOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Update an author's identity for the import. Your application can continue updating authors any time before you push new commits to the repository. + */ + mapCommitAuthor: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsMapCommitAuthorParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * You can import repositories from Subversion, Mercurial, and TFS that include files larger than 100MB. This ability is powered by [Git LFS](https://git-lfs.github.com). You can learn more about our LFS feature and working with large files [on our help site](https://help.github.com/articles/versioning-large-files/). + */ + setLfsPreference: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsSetLfsPreferenceParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Initiates the generation of a user migration archive. + */ + startForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsStartForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Initiates the generation of a migration archive. + */ + startForOrg: { + ( + params?: Octokit.RequestOptions & Octokit.MigrationsStartForOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Start a source import to a GitHub repository using GitHub Importer. + */ + startImport: { + ( + params?: Octokit.RequestOptions & Octokit.MigrationsStartImportParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Unlocks a repository. You can lock repositories when you [start a user migration](https://developer.github.com/v3/migrations/users/#start-a-user-migration). Once the migration is complete you can unlock each repository to begin using it again or [delete the repository](https://developer.github.com/v3/repos/#delete-a-repository) if you no longer need the source data. Returns a status of `404 Not Found` if the repository is not locked. + */ + unlockRepoForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsUnlockRepoForAuthenticatedUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://developer.github.com/v3/repos/#delete-a-repository) when the migration is complete and you no longer need the source data. + */ + unlockRepoForOrg: { + ( + params?: Octokit.RequestOptions & + Octokit.MigrationsUnlockRepoForOrgParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * An import can be updated with credentials or a project choice by passing in the appropriate parameters in this API request. If no parameters are provided, the import will be restarted. + * + * Some servers (e.g. TFS servers) can have several projects at a single URL. In those cases the import progress will have the status `detection_found_multiple` and the Import Progress response will include a `project_choices` array. You can select the project to import by providing one of the objects in the `project_choices` array in the update request. + * + * The following example demonstrates the workflow for updating an import with "project1" as the project choice. Given a `project_choices` array like such: + * + * To restart an import, no parameters are provided in the update request. + */ + updateImport: { + ( + params?: Octokit.RequestOptions & Octokit.MigrationsUpdateImportParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; + oauthAuthorizations: { + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth applications can use a special API method for checking OAuth token validity without exceeding the normal rate limits for failed login attempts. Authentication works differently with this particular endpoint. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + * @deprecated octokit.apps.checkAuthorization() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#check-an-authorization + */ + checkAuthorization: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsCheckAuthorizationParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * **Warning:** Apps must use the [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates OAuth tokens using [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication). If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://developer.github.com/v3/auth/#working-with-two-factor-authentication)." + * + * To create tokens for a particular OAuth application using this endpoint, you must authenticate as the user you want to create an authorization for and provide the app's client ID and secret, found on your OAuth application's settings page. If your OAuth application intends to create multiple tokens for one user, use `fingerprint` to differentiate between them. + * + * You can also create tokens on GitHub from the [personal access tokens settings](https://github.com/settings/tokens) page. Read more about these tokens in [the GitHub Help documentation](https://help.github.com/articles/creating-an-access-token-for-command-line-use). + * + * Organizations that enforce SAML SSO require personal access tokens to be whitelisted. Read more about whitelisting tokens in [the GitHub Help documentation](https://help.github.com/articles/about-identity-and-access-management-with-saml-single-sign-on). + * @deprecated octokit.oauthAuthorizations.createAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization + */ + createAuthorization: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsCreateAuthorizationParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * @deprecated octokit.oauthAuthorizations.deleteAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#delete-an-authorization + */ + deleteAuthorization: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsDeleteAuthorizationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for your user. Once deleted, the application has no access to your account and is no longer listed on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). + * @deprecated octokit.oauthAuthorizations.deleteGrant() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#delete-a-grant + */ + deleteGrant: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsDeleteGrantParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * @deprecated octokit.oauthAuthorizations.getAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-a-single-authorization + */ + getAuthorization: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsGetAuthorizationParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * @deprecated octokit.oauthAuthorizations.getGrant() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-a-single-grant + */ + getGrant: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsGetGrantParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * **Warning:** Apps must use the [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * Creates a new authorization for the specified OAuth application, only if an authorization for that application doesn't already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://developer.github.com/v3/auth/#working-with-two-factor-authentication)." + * + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * @deprecated octokit.oauthAuthorizations.getOrCreateAuthorizationForApp() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app + */ + getOrCreateAuthorizationForApp: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsGetOrCreateAuthorizationForAppParams + ): Promise< + Octokit.Response< + Octokit.OauthAuthorizationsGetOrCreateAuthorizationForAppResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * **Warning:** Apps must use the [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. `fingerprint` is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://developer.github.com/v3/auth/#working-with-two-factor-authentication)." + * @deprecated octokit.oauthAuthorizations.getOrCreateAuthorizationForAppAndFingerprint() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint + */ + getOrCreateAuthorizationForAppAndFingerprint: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintParams + ): Promise< + Octokit.Response< + Octokit.OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * **Warning:** Apps must use the [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow) to obtain OAuth tokens that work with GitHub SAML organizations. OAuth tokens created using the Authorizations API will be unable to access GitHub SAML organizations. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * This method will create a new authorization for the specified OAuth application, only if an authorization for that application and fingerprint do not already exist for the user. The URL includes the 20 character client ID for the OAuth app that is requesting the token. `fingerprint` is a unique string to distinguish an authorization from others created for the same client ID and user. It returns the user's existing authorization for the application if one is present. Otherwise, it creates and returns a new one. + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://developer.github.com/v3/auth/#working-with-two-factor-authentication)." + * @deprecated octokit.oauthAuthorizations.getOrCreateAuthorizationForAppFingerprint() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint + */ + getOrCreateAuthorizationForAppFingerprint: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintParams + ): Promise< + Octokit.Response< + Octokit.OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * @deprecated octokit.oauthAuthorizations.listAuthorizations() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#list-your-authorizations + */ + listAuthorizations: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsListAuthorizationsParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * You can use this API to list the set of OAuth applications that have been granted access to your account. Unlike the [list your authorizations](https://developer.github.com/v3/oauth_authorizations/#list-your-authorizations) API, this API does not manage individual tokens. This API will return one entry for each OAuth application that has been granted access to your account, regardless of the number of tokens an application has generated for your user. The list of OAuth applications returned matches what is shown on [the application authorizations settings screen within GitHub](https://github.com/settings/applications#authorized). The `scopes` returned are the union of scopes authorized for the application. For example, if an application has one token with `repo` scope and another token with `user` scope, the grant will return `["repo", "user"]`. + * @deprecated octokit.oauthAuthorizations.listGrants() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#list-your-grants + */ + listGrants: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsListGrantsParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth applications can use this API method to reset a valid OAuth token without end-user involvement. Applications must save the "token" property in the response because changes take effect immediately. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. Invalid tokens will return `404 NOT FOUND`. + * @deprecated octokit.apps.resetAuthorization() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#reset-an-authorization + */ + resetAuthorization: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsResetAuthorizationParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth application owners can revoke a single token for an OAuth application. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. + * @deprecated octokit.apps.revokeAuthorizationForApplication() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#revoke-an-authorization-for-an-application + */ + revokeAuthorizationForApplication: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsRevokeAuthorizationForApplicationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will replace and discontinue OAuth endpoints containing `access_token` in the path parameter. We are introducing new endpoints that allow you to securely manage tokens for OAuth Apps by using `access_token` as an input parameter. For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * OAuth application owners can revoke a grant for their OAuth application and a specific user. You must use [Basic Authentication](https://developer.github.com/v3/auth#basic-authentication) when accessing this endpoint, using the OAuth application's `client_id` and `client_secret` as the username and password. You must also provide a valid token as `:access_token` and the grant for the token's owner will be deleted. + * + * Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on [the Applications settings page under "Authorized OAuth Apps" on GitHub](https://github.com/settings/applications#authorized). + * @deprecated octokit.apps.revokeGrantForApplication() is deprecated, see https://developer.github.com/v3/apps/oauth_applications/#revoke-a-grant-for-an-application + */ + revokeGrantForApplication: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsRevokeGrantForApplicationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Deprecation Notice:** GitHub will discontinue the [OAuth Authorizations API](https://developer.github.com/v3/oauth_authorizations/), which is used by integrations to create personal access tokens and OAuth tokens, and you must now create these tokens using our [web application flow](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow). For more information, see the [blog post](https://developer.github.com/changes/2019-11-05-deprecated-passwords-and-authorizations-api). + * + * If you have two-factor authentication setup, Basic Authentication for this endpoint requires that you use a one-time password (OTP) and your username and password instead of tokens. For more information, see "[Working with two-factor authentication](https://developer.github.com/v3/auth/#working-with-two-factor-authentication)." + * + * You can only send one of these scope keys at a time. + * @deprecated octokit.oauthAuthorizations.updateAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#update-an-existing-authorization + */ + updateAuthorization: { + ( + params?: Octokit.RequestOptions & + Octokit.OauthAuthorizationsUpdateAuthorizationParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + orgs: { + /** + * Only authenticated organization owners can add a member to the organization or update the member's role. + * + * * If the authenticated user is _adding_ a member to the organization, the invited user will receive an email inviting them to the organization. The user's [membership status](https://developer.github.com/v3/orgs/members/#get-organization-membership) will be `pending` until they accept the invitation. + * + * * Authenticated users can _update_ a user's membership by passing the `role` parameter. If the authenticated user changes a member's role to `admin`, the affected user will receive an email notifying them that they've been made an organization owner. If the authenticated user changes an owner's role to `member`, no email will be sent. + * + * **Rate limits** + * + * To prevent abuse, the authenticated user is limited to 50 organization invitations per 24 hour period. If the organization is more than one month old or on a paid plan, the limit is 500 invitations per 24 hour period. + */ + addOrUpdateMembership: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsAddOrUpdateMembershipParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + blockUser: { + (params?: Octokit.RequestOptions & Octokit.OrgsBlockUserParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * If the user is blocked: + * + * If the user is not blocked: + */ + checkBlockedUser: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsCheckBlockedUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Check if a user is, publicly or privately, a member of the organization. + */ + checkMembership: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsCheckMembershipParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + checkPublicMembership: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsCheckPublicMembershipParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + concealMembership: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsConcealMembershipParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * When an organization member is converted to an outside collaborator, they'll only have access to the repositories that their current team membership allows. The user will no longer be a member of the organization. For more information, see "[Converting an organization member to an outside collaborator](https://help.github.com/articles/converting-an-organization-member-to-an-outside-collaborator/)". + */ + convertMemberToOutsideCollaborator: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsConvertMemberToOutsideCollaboratorParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Here's how you can create a hook that posts payloads in JSON format: + */ + createHook: { + (params?: Octokit.RequestOptions & Octokit.OrgsCreateHookParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createInvitation: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsCreateInvitationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + deleteHook: { + (params?: Octokit.RequestOptions & Octokit.OrgsDeleteHookParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * To see many of the organization response values, you need to be an authenticated organization owner with the `admin:org` scope. When the value of `two_factor_requirement_enabled` is `true`, the organization requires all members, billing managers, and outside collaborators to enable [two-factor authentication](https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/). + * + * GitHub Apps with the `Organization plan` permission can use this endpoint to retrieve information about an organization's GitHub plan. See "[Authenticating with GitHub Apps](https://developer.github.com/apps/building-github-apps/authenticating-with-github-apps/)" for details. For an example response, see "[Response with GitHub plan information](https://developer.github.com/v3/orgs/#response-with-github-plan-information)." + */ + get: { + (params?: Octokit.RequestOptions & Octokit.OrgsGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getHook: { + (params?: Octokit.RequestOptions & Octokit.OrgsGetHookParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * In order to get a user's membership with an organization, the authenticated user must be an organization member. + */ + getMembership: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsGetMembershipParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getMembershipForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsGetMembershipForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists all organizations, in the order that they were created on GitHub. + * + * **Note:** Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://developer.github.com/v3/#link-header) to get the URL for the next page of organizations. + */ + list: { + (params?: Octokit.RequestOptions & Octokit.OrgsListParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List the users blocked by an organization. + */ + listBlockedUsers: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsListBlockedUsersParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List organizations for the authenticated user. + * + * **OAuth scope requirements** + * + * This only lists organizations that your authorization allows you to operate on in some way (e.g., you can list teams with `read:org` scope, you can publicize your organization membership with `user` scope, etc.). Therefore, this API requires at least `user` or `read:org` scope. OAuth requests with insufficient scope receive a `403 Forbidden` response. + */ + listForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsListForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List [public organization memberships](https://help.github.com/articles/publicizing-or-concealing-organization-membership) for the specified user. + * + * This method only lists _public_ memberships, regardless of authentication. If you need to fetch all of the organization memberships (public and private) for the authenticated user, use the [List your organizations](https://developer.github.com/v3/orgs/#list-your-organizations) API instead. + */ + listForUser: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsListForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listHooks: { + (params?: Octokit.RequestOptions & Octokit.OrgsListHooksParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists all GitHub Apps in an organization. The installation count includes all GitHub Apps installed on repositories in the organization. You must be an organization owner with `admin:read` scope to use this endpoint. + */ + listInstallations: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsListInstallationsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner. + */ + listInvitationTeams: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsListInvitationTeamsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned. + */ + listMembers: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsListMembersParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listMemberships: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsListMembershipsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List all users who are outside collaborators of an organization. + */ + listOutsideCollaborators: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsListOutsideCollaboratorsParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + listPendingInvitations: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsListPendingInvitationsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Members of an organization can choose to have their membership publicized or not. + */ + listPublicMembers: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsListPublicMembersParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This will trigger a [ping event](https://developer.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingHook: { + (params?: Octokit.RequestOptions & Octokit.OrgsPingHookParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * The user can publicize their own membership. (A user cannot publicize the membership for another user.) + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + publicizeMembership: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsPublicizeMembershipParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories. + */ + removeMember: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsRemoveMemberParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * In order to remove a user's membership with an organization, the authenticated user must be an organization owner. + * + * If the specified user is an active member of the organization, this will remove them from the organization. If the specified user has been invited to the organization, this will cancel their invitation. The specified user will receive an email notification in both cases. + */ + removeMembership: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsRemoveMembershipParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Removing a user from this list will remove them from all the organization's repositories. + */ + removeOutsideCollaborator: { + ( + params?: Octokit.RequestOptions & + Octokit.OrgsRemoveOutsideCollaboratorParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + unblockUser: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsUnblockUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The new `members_allowed_repository_creation_type` replaces the functionality of `members_can_create_repositories`. + * + * Setting `members_allowed_repository_creation_type` will override the value of `members_can_create_repositories` in the following ways: + * + * * Setting `members_allowed_repository_creation_type` to `all` or `private` sets `members_can_create_repositories` to `true`. + * * Setting `members_allowed_repository_creation_type` to `none` sets `members_can_create_repositories` to `false`. + * * If you omit `members_allowed_repository_creation_type`, `members_can_create_repositories` is not modified. + */ + update: { + (params?: Octokit.RequestOptions & Octokit.OrgsUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + updateHook: { + (params?: Octokit.RequestOptions & Octokit.OrgsUpdateHookParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + updateMembership: { + ( + params?: Octokit.RequestOptions & Octokit.OrgsUpdateMembershipParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; + projects: { + /** + * Adds a collaborator to a an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator. + */ + addCollaborator: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsAddCollaboratorParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: GitHub's REST API v3 considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. + * + * Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests)" endpoint. + */ + createCard: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsCreateCardParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + createColumn: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsCreateColumnParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + createForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ProjectsCreateForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates an organization project board. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForOrg: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsCreateForOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a repository project board. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + createForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsCreateForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Deletes a project board. Returns a `404 Not Found` status if projects are disabled. + */ + delete: { + (params?: Octokit.RequestOptions & Octokit.ProjectsDeleteParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + + deleteCard: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsDeleteCardParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + deleteColumn: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsDeleteColumnParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + get: { + (params?: Octokit.RequestOptions & Octokit.ProjectsGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getCard: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsGetCardParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getColumn: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsGetColumnParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listCards: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsListCardsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the collaborators for an organization project. For a project, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. You must be an organization owner or a project `admin` to list collaborators. + */ + listCollaborators: { + ( + params?: Octokit.RequestOptions & + Octokit.ProjectsListCollaboratorsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listColumns: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsListColumnsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the projects in an organization. Returns a `404 Not Found` status if projects are disabled in the organization. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + * + * s + */ + listForOrg: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsListForOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the projects in a repository. Returns a `404 Not Found` status if projects are disabled in the repository. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + listForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsListForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listForUser: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsListForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + moveCard: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsMoveCardParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + moveColumn: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsMoveColumnParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator. + */ + removeCollaborator: { + ( + params?: Octokit.RequestOptions & + Octokit.ProjectsRemoveCollaboratorParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a project `admin` to review a user's permission level. + */ + reviewUserPermissionLevel: { + ( + params?: Octokit.RequestOptions & + Octokit.ProjectsReviewUserPermissionLevelParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` status is returned. + */ + update: { + (params?: Octokit.RequestOptions & Octokit.ProjectsUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + updateCard: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsUpdateCardParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + updateColumn: { + ( + params?: Octokit.RequestOptions & Octokit.ProjectsUpdateColumnParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; + pulls: { + checkIfMerged: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsCheckIfMergedParamsDeprecatedNumber + ): Promise; + ( + params?: Octokit.RequestOptions & Octokit.PullsCheckIfMergedParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + * + * You can create a new pull request. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + create: { + (params?: Octokit.RequestOptions & Octokit.PullsCreateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Comments](https://developer.github.com/v3/issues/comments/#create-a-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * + * You can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see [Multi-line comment summary](https://developer.github.com/v3/pulls/comments/#multi-line-comment-summary-3). + * + * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://developer.github.com/v3/pulls/comments/#parameters-2) table. + */ + createComment: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsCreateCommentParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.PullsCreateCommentParamsDeprecatedInReplyTo + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsCreateCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Comments](https://developer.github.com/v3/issues/comments/#create-a-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. + * + * You can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see [Multi-line comment summary](https://developer.github.com/v3/pulls/comments/#multi-line-comment-summary-3). + * + * **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://developer.github.com/v3/pulls/comments/#parameters-2) table. + * @deprecated octokit.pulls.createCommentReply() has been renamed to octokit.pulls.createComment() (2019-09-09) + */ + createCommentReply: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsCreateCommentReplyParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.PullsCreateCommentReplyParamsDeprecatedInReplyTo + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsCreateCommentReplyParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + createFromIssue: { + ( + params?: Octokit.RequestOptions & Octokit.PullsCreateFromIssueParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + * + * **Note:** To comment on a specific line in a file, you need to first determine the _position_ of that line in the diff. The GitHub REST API v3 offers the `application/vnd.github.v3.diff` [media type](https://developer.github.com/v3/media/#commits-commit-comparison-and-pull-requests). To see a pull request diff, add this media type to the `Accept` header of a call to the [single pull request](https://developer.github.com/v3/pulls/#get-a-single-pull-request) endpoint. + * + * The `position` value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. + */ + createReview: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsCreateReviewParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsCreateReviewParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a reply to a review comment for a pull request. For the `comment_id`, provide the ID of the review comment you are replying to. This must be the ID of a _top-level review comment_, not a reply to that comment. Replies to replies are not supported. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createReviewCommentReply: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsCreateReviewCommentReplyParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createReviewRequest: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsCreateReviewRequestParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsCreateReviewRequestParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Deletes a review comment. + */ + deleteComment: { + ( + params?: Octokit.RequestOptions & Octokit.PullsDeleteCommentParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + deletePendingReview: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsDeletePendingReviewParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsDeletePendingReviewParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + deleteReviewRequest: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsDeleteReviewRequestParamsDeprecatedNumber + ): Promise; + ( + params?: Octokit.RequestOptions & Octokit.PullsDeleteReviewRequestParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** To dismiss a pull request review on a [protected branch](https://developer.github.com/v3/repos/branches/), you must be a repository administrator or be included in the list of people or teams who can dismiss pull request reviews. + */ + dismissReview: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsDismissReviewParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsDismissReviewParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists details of a pull request by providing its number. + * + * When you get, [create](https://developer.github.com/v3/pulls/#create-a-pull-request), or [edit](https://developer.github.com/v3/pulls/#update-a-pull-request) a pull request, GitHub creates a merge commit to test whether the pull request can be automatically merged into the base branch. This test commit is not added to the base branch or the head branch. You can review the status of the test commit using the `mergeable` key. For more information, see "[Checking mergeability of pull requests](https://developer.github.com/v3/git/#checking-mergeability-of-pull-requests)". + * + * The value of the `mergeable` attribute can be `true`, `false`, or `null`. If the value is `null`, then GitHub has started a background job to compute the mergeability. After giving the job time to complete, resubmit the request. When the job finishes, you will see a non-`null` value for the `mergeable` attribute in the response. If `mergeable` is `true`, then `merge_commit_sha` will be the SHA of the _test_ merge commit. + * + * The value of the `merge_commit_sha` attribute changes depending on the state of the pull request. Before merging a pull request, the `merge_commit_sha` attribute holds the SHA of the _test_ merge commit. After merging a pull request, the `merge_commit_sha` attribute changes depending on how you merged the pull request: + * + * * If merged as a [merge commit](https://help.github.com/articles/about-merge-methods-on-github/), `merge_commit_sha` represents the SHA of the merge commit. + * * If merged via a [squash](https://help.github.com/articles/about-merge-methods-on-github/#squashing-your-merge-commits), `merge_commit_sha` represents the SHA of the squashed commit on the base branch. + * * If [rebased](https://help.github.com/articles/about-merge-methods-on-github/#rebasing-and-merging-your-commits), `merge_commit_sha` represents the commit that the base branch was updated to. + * + * Pass the appropriate [media type](https://developer.github.com/v3/media/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + */ + get: { + ( + params?: Octokit.RequestOptions & Octokit.PullsGetParamsDeprecatedNumber + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.PullsGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Provides details for a review comment. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://developer.github.com/v3/pulls/comments/#parameters-2) table. + * + * The `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://developer.github.com/v3/reactions) reactions. + */ + getComment: { + ( + params?: Octokit.RequestOptions & Octokit.PullsGetCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getCommentsForReview: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsGetCommentsForReviewParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.PullsGetCommentsForReviewParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getReview: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsGetReviewParamsDeprecatedNumber + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.PullsGetReviewParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + list: { + (params?: Octokit.RequestOptions & Octokit.PullsListParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Lists review comments for a pull request. By default, review comments are in ascending order by ID. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://developer.github.com/v3/pulls/comments/#parameters-2) table. + * + * The `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://developer.github.com/v3/reactions) reactions. + */ + listComments: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsListCommentsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsListCommentsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Lists review comments for all pull requests in a repository. By default, review comments are in ascending order by ID. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://developer.github.com/v3/pulls/comments/#parameters-2) table. + * + * The `reactions` key will have the following payload where `url` can be used to construct the API location for [listing and creating](https://developer.github.com/v3/reactions) reactions. + */ + listCommentsForRepo: { + ( + params?: Octokit.RequestOptions & Octokit.PullsListCommentsForRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists a maximum of 250 commits for a pull request. To receive a complete commit list for pull requests with more than 250 commits, use the [Commit List API](https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository). + */ + listCommits: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsListCommitsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsListCommitsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** The response includes a maximum of 300 files. + */ + listFiles: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsListFilesParamsDeprecatedNumber + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.PullsListFilesParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listReviewRequests: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsListReviewRequestsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsListReviewRequestsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * The list of reviews returns in chronological order. + */ + listReviews: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsListReviewsParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsListReviewsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + merge: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsMergeParamsDeprecatedNumber + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.PullsMergeParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + submitReview: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsSubmitReviewParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsSubmitReviewParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Draft pull requests are available in public repositories with GitHub Free and GitHub Pro, and in public and private repositories with GitHub Team and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * To open or update a pull request in a public repository, you must have write access to the head or the source branch. For organization-owned repositories, you must be a member of the organization that owns the repository to open or update a pull request. + */ + update: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsUpdateParamsDeprecatedNumber + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.PullsUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Updates the pull request branch with the latest upstream changes by merging HEAD from the base branch into the pull request branch. + */ + updateBranch: { + ( + params?: Octokit.RequestOptions & Octokit.PullsUpdateBranchParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** Multi-line comments on pull requests are currently in public beta and subject to change. + * + * Enables you to edit a review comment. + * + * **Multi-line comment summary** + * + * **Note:** New parameters and response fields are available for developers to preview. During the preview period, these response fields may change without advance notice. Please see the [blog post](https://developer.github.com/changes/2019-10-03-multi-line-comments) for full details. + * + * Use the `comfort-fade` preview header and the `line` parameter to show multi-line comment-supported fields in the response. + * + * If you use the `comfort-fade` preview header, your response will show: + * + * * For multi-line comments, values for `start_line`, `original_start_line`, `start_side`, `line`, `original_line`, and `side`. + * * For single-line comments, values for `line`, `original_line`, and `side` and a `null` value for `start_line`, `original_start_line`, and `start_side`. + * + * If you don't use the `comfort-fade` preview header, multi-line and single-line comments will appear the same way in the response with a single `position` attribute. Your response will show: + * + * * For multi-line comments, the last line of the comment range for the `position` attribute. + * * For single-line comments, the diff-positioned way of referencing comments for the `position` attribute. For more information, see `position` in the [input parameters](https://developer.github.com/v3/pulls/comments/#parameters-2) table. + */ + updateComment: { + ( + params?: Octokit.RequestOptions & Octokit.PullsUpdateCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Update the review summary comment with new text. + */ + updateReview: { + ( + params?: Octokit.RequestOptions & + Octokit.PullsUpdateReviewParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.PullsUpdateReviewParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; + rateLimit: { + /** + * **Note:** Accessing this endpoint does not count against your REST API rate limit. + * + * **Understanding your rate limit status** + * + * The Search API has a [custom rate limit](https://developer.github.com/v3/search/#rate-limit), separate from the rate limit governing the rest of the REST API. The GraphQL API also has a [custom rate limit](https://developer.github.com/v4/guides/resource-limitations/#rate-limit) that is separate from and calculated differently than rate limits in the REST API. + * + * For these reasons, the Rate Limit API response categorizes your rate limit. Under `resources`, you'll see four objects: + * + * * The `core` object provides your rate limit status for all non-search-related resources in the REST API. + * * The `search` object provides your rate limit status for the [Search API](https://developer.github.com/v3/search/). + * * The `graphql` object provides your rate limit status for the [GraphQL API](https://developer.github.com/v4/). + * * The `integration_manifest` object provides your rate limit status for the [GitHub App Manifest code conversion](https://developer.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/#3-you-exchange-the-temporary-code-to-retrieve-the-app-configuration) endpoint. + * + * For more information on the headers and values in the rate limit response, see "[Rate limiting](https://developer.github.com/v3/#rate-limiting)." + * + * The `rate` object (shown at the bottom of the response above) is deprecated. + * + * If you're writing new API client code or updating existing code, you should use the `core` object instead of the `rate` object. The `core` object contains the same information that is present in the `rate` object. + */ + get: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + reactions: { + /** + * Create a reaction to a [commit comment](https://developer.github.com/v3/repos/comments/). A response with a `Status: 200 OK` means that you already added the reaction type to this commit comment. + */ + createForCommitComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsCreateForCommitCommentParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Create a reaction to an [issue](https://developer.github.com/v3/issues/). A response with a `Status: 200 OK` means that you already added the reaction type to this issue. + */ + createForIssue: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsCreateForIssueParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.ReactionsCreateForIssueParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Create a reaction to an [issue comment](https://developer.github.com/v3/issues/comments/). A response with a `Status: 200 OK` means that you already added the reaction type to this issue comment. + */ + createForIssueComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsCreateForIssueCommentParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Create a reaction to a [pull request review comment](https://developer.github.com/v3/pulls/comments/). A response with a `Status: 200 OK` means that you already added the reaction type to this pull request review comment. + */ + createForPullRequestReviewComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsCreateForPullRequestReviewCommentParams + ): Promise< + Octokit.Response< + Octokit.ReactionsCreateForPullRequestReviewCommentResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Create a reaction to a [team discussion](https://developer.github.com/v3/teams/discussions/). OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion. + */ + createForTeamDiscussion: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsCreateForTeamDiscussionParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Create a reaction to a [team discussion comment](https://developer.github.com/v3/teams/discussion_comments/). OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). A response with a `Status: 200 OK` means that you already added the reaction type to this team discussion comment. + */ + createForTeamDiscussionComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsCreateForTeamDiscussionCommentParams + ): Promise< + Octokit.Response< + Octokit.ReactionsCreateForTeamDiscussionCommentResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), when deleting a [team discussion](https://developer.github.com/v3/teams/discussions/) or [team discussion comment](https://developer.github.com/v3/teams/discussion_comments/). + */ + delete: { + ( + params?: Octokit.RequestOptions & Octokit.ReactionsDeleteParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * List the reactions to a [commit comment](https://developer.github.com/v3/repos/comments/). + */ + listForCommitComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsListForCommitCommentParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List the reactions to an [issue](https://developer.github.com/v3/issues/). + */ + listForIssue: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsListForIssueParamsDeprecatedNumber + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.ReactionsListForIssueParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List the reactions to an [issue comment](https://developer.github.com/v3/issues/comments/). + */ + listForIssueComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsListForIssueCommentParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List the reactions to a [pull request review comment](https://developer.github.com/v3/pulls/comments/). + */ + listForPullRequestReviewComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsListForPullRequestReviewCommentParams + ): Promise< + Octokit.Response< + Octokit.ReactionsListForPullRequestReviewCommentResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List the reactions to a [team discussion](https://developer.github.com/v3/teams/discussions/). OAuth access tokens require the `read:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listForTeamDiscussion: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsListForTeamDiscussionParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List the reactions to a [team discussion comment](https://developer.github.com/v3/teams/discussion_comments/). OAuth access tokens require the `read:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listForTeamDiscussionComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReactionsListForTeamDiscussionCommentParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + repos: { + acceptInvitation: { + ( + params?: Octokit.RequestOptions & Octokit.ReposAcceptInvitationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + * + * The invitee will receive a notification that they have been invited to the repository, which they must accept or decline. They may do this via the notifications page, the email they receive, or by using the [repository invitations API endpoints](https://developer.github.com/v3/repos/invitations/). + * + * **Rate limits** + * + * To prevent abuse, you are limited to sending 50 invitations to a repository per 24 hour period. Note there is no limit if you are inviting organization members to an organization repository. + */ + addCollaborator: { + ( + params?: Octokit.RequestOptions & Octokit.ReposAddCollaboratorParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Here's how you can create a read-only deploy key: + */ + addDeployKey: { + ( + params?: Octokit.RequestOptions & Octokit.ReposAddDeployKeyParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Adding admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + addProtectedBranchAdminEnforcement: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposAddProtectedBranchAdminEnforcementParams + ): Promise< + Octokit.Response< + Octokit.ReposAddProtectedBranchAdminEnforcementResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Grants the specified apps push access for this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addProtectedBranchAppRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposAddProtectedBranchAppRestrictionsParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to require signed commits on a branch. You must enable branch protection to require signed commits. + */ + addProtectedBranchRequiredSignatures: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposAddProtectedBranchRequiredSignaturesParams + ): Promise< + Octokit.Response< + Octokit.ReposAddProtectedBranchRequiredSignaturesResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + addProtectedBranchRequiredStatusChecksContexts: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposAddProtectedBranchRequiredStatusChecksContextsParams + ): Promise< + Octokit.Response< + Octokit.ReposAddProtectedBranchRequiredStatusChecksContextsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Grants the specified teams push access for this branch. If you pass the `hellcat-preview` media type, you can also give push access to child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addProtectedBranchTeamRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposAddProtectedBranchTeamRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposAddProtectedBranchTeamRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Grants the specified people push access for this branch. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + addProtectedBranchUserRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposAddProtectedBranchUserRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposAddProtectedBranchUserRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * If you pass the `hellcat-preview` media type, team members will include the members of child teams. + */ + checkCollaborator: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCheckCollaboratorParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Shows whether vulnerability alerts are enabled or disabled for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)" in the GitHub Help documentation. + */ + checkVulnerabilityAlerts: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposCheckVulnerabilityAlertsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Both `:base` and `:head` must be branch names in `:repo`. To compare branches across other repositories in the same network as `:repo`, use the format `:branch`. + * + * The response from the API is equivalent to running the `git log base..head` command; however, commits are returned in chronological order. Pass the appropriate [media type](https://developer.github.com/v3/media/#commits-commit-comparison-and-pull-requests) to fetch diff and patch formats. + * + * The response also includes details on the files that were changed between the two commits. This includes the status of the change (for example, if a file was added, removed, modified, or renamed), and details of the change itself. For example, files with a `renamed` status have a `previous_filename` field showing the previous filename of the file, and files with a `modified` status have a `patch` field showing the changes made to the file. + * + * **Working with large comparisons** + * + * The response will include a comparison of up to 250 commits. If you are working with a larger commit range, you can use the [Commit List API](https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository) to enumerate all commits in the range. + * + * For comparisons with extremely large diffs, you may receive an error response indicating that the diff took too long to generate. You can typically resolve this error by using a smaller commit range. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + compareCommits: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCompareCommitsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Create a comment for a commit using its `:commit_sha`. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createCommitComment: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposCreateCommitCommentParamsDeprecatedSha + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.ReposCreateCommitCommentParamsDeprecatedLine + ): Promise>; + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateCommitCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Deployments offer a few configurable parameters with sane defaults. + * + * The `ref` parameter can be any named branch, tag, or SHA. At GitHub we often deploy branches and verify them before we merge a pull request. + * + * The `environment` parameter allows deployments to be issued to different runtime environments. Teams often have multiple environments for verifying their applications, such as `production`, `staging`, and `qa`. This parameter makes it easier to track which environments have requested deployments. The default environment is `production`. + * + * The `auto_merge` parameter is used to ensure that the requested ref is not behind the repository's default branch. If the ref _is_ behind the default branch for the repository, we will attempt to merge it for you. If the merge succeeds, the API will return a successful merge commit. If merge conflicts prevent the merge from succeeding, the API will return a failure response. + * + * By default, [commit statuses](https://developer.github.com/v3/repos/statuses) for every submitted context must be in a `success` state. The `required_contexts` parameter allows you to specify a subset of contexts that must be `success`, or to specify contexts that have not yet been submitted. You are not required to use commit statuses to deploy. If you do not require any contexts or create any commit statuses, the deployment will always succeed. + * + * The `payload` parameter is available for any extra information that a deployment system might need. It is a JSON text field that will be passed on when a deployment event is dispatched. + * + * The `task` parameter is used by the deployment system to allow different execution paths. In the web world this might be `deploy:migrations` to run schema changes on the system. In the compiled world this could be a flag to compile an application with debugging enabled. + * + * Users with `repo` or `repo_deployment` scopes can create a deployment for a given ref: + * + * A simple example putting the user and room into the payload to notify back to chat networks. + * + * A more advanced example specifying required commit statuses and bypassing auto-merging. + * + * You will see this response when GitHub automatically merges the base branch into the topic branch instead of creating a deployment. This auto-merge happens when: + * + * * Auto-merge option is enabled in the repository + * * Topic branch does not include the latest changes on the base branch, which is `master`in the response example + * * There are no merge conflicts + * + * If there are no new commits in the base branch, a new request to create a deployment should give a successful response. + * + * This error happens when the `auto_merge` option is enabled and when the default branch (in this case `master`), can't be merged into the branch that's being deployed (in this case `topic-branch`), due to merge conflicts. + * + * This error happens when the `required_contexts` parameter indicates that one or more contexts need to have a `success` status for the commit to be deployed, but one or more of the required contexts do not have a state of `success`. + */ + createDeployment: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateDeploymentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with `push` access can create deployment statuses for a given deployment. + * + * GitHub Apps require `read & write` access to "Deployments" and `read-only` access to "Repo contents" (for private repos). OAuth Apps require the `repo_deployment` scope. + */ + createDeploymentStatus: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposCreateDeploymentStatusParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * You can use this endpoint to trigger a webhook event called `repository_dispatch` when you want activity that happens outside of GitHub to trigger a GitHub Actions workflow or GitHub App webhook. You must configure your GitHub Actions workflow or GitHub App to run when the `repository_dispatch` event occurs. For an example `repository_dispatch` webhook payload, see "[RepositoryDispatchEvent](https://developer.github.com/v3/activity/events/types/#repositorydispatchevent)." + * + * The `client_payload` parameter is available for any extra information that your workflow might need. This parameter is a JSON payload that will be passed on when the webhook event is dispatched. For example, the `client_payload` can include a message that a user would like to send using a GitHub Actions workflow. Or the `client_payload` can be used as a test to debug your workflow. For a test example, see the [input example](https://developer.github.com/v3/repos/#example-4). + * + * To give you write access to the repository, you must use a personal access token with the `repo` scope. For more information, see "[Creating a personal access token for the command line](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line)" in the GitHub Help documentation. + * + * This input example shows how you can use the `client_payload` as a test to debug your workflow. + */ + createDispatchEvent: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateDispatchEventParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new file or updates an existing file in a repository. + * @deprecated octokit.repos.createFile() has been renamed to octokit.repos.createOrUpdateFile() (2019-06-07) + */ + createFile: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateFileParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new repository for the authenticated user. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + createForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposCreateForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Create a fork for the authenticated user. + * + * **Note**: Forking a Repository happens asynchronously. You may have to wait a short period of time before you can access the git objects. If this takes longer than 5 minutes, be sure to contact [GitHub Support](https://github.com/contact). + */ + createFork: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateForkParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Repositories can have multiple webhooks installed. Each webhook should have a unique `config`. Multiple webhooks can share the same `config` as long as those webhooks do not have any `events` that overlap. + * + * Here's how you can create a hook that posts payloads in JSON format: + */ + createHook: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateHookParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new repository for the authenticated user. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + */ + createInOrg: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateInOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new file or updates an existing file in a repository. + */ + createOrUpdateFile: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateOrUpdateFileParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with push access to the repository can create a release. + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createRelease: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateReleaseParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with push access in a repository can create commit statuses for a given SHA. + * + * Note: there is a limit of 1000 statuses per `sha` and `context` within a repository. Attempts to create more than 1000 statuses will result in a validation error. + */ + createStatus: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateStatusParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new repository using a repository template. Use the `template_owner` and `template_repo` route parameters to specify the repository to use as the template. The authenticated user must own or be a member of an organization that owns the repository. To check if a repository is available to use as a template, get the repository's information using the [`GET /repos/:owner/:repo`](https://developer.github.com/v3/repos/#get) endpoint and check that the `is_template` key is `true`. + * + * **OAuth scope requirements** + * + * When using [OAuth](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/), authorizations must include: + * + * * `public_repo` scope or `repo` scope to create a public repository + * * `repo` scope to create a private repository + * + * \` + */ + createUsingTemplate: { + ( + params?: Octokit.RequestOptions & Octokit.ReposCreateUsingTemplateParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + declineInvitation: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeclineInvitationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Deleting a repository requires admin access. If OAuth is used, the `delete_repo` scope is required. + * + * If an organization owner has configured the organization to prevent members from deleting organization-owned repositories, a member will get this response: + */ + delete: { + (params?: Octokit.RequestOptions & Octokit.ReposDeleteParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + deleteCommitComment: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeleteCommitCommentParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + deleteDownload: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeleteDownloadParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Deletes a file in a repository. + * + * You can provide an additional `committer` parameter, which is an object containing information about the committer. Or, you can provide an `author` parameter, which is an object containing information about the author. + * + * The `author` section is optional and is filled in with the `committer` information if omitted. If the `committer` information is omitted, the authenticated user's information is used. + * + * You must provide values for both `name` and `email`, whether you choose to use `author` or `committer`. Otherwise, you'll receive a `422` status code. + */ + deleteFile: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeleteFileParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + deleteHook: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeleteHookParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + deleteInvitation: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeleteInvitationParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with push access to the repository can delete a release. + */ + deleteRelease: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeleteReleaseParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + deleteReleaseAsset: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDeleteReleaseAssetParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Disables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)" in the GitHub Help documentation. + */ + disableAutomatedSecurityFixes: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposDisableAutomatedSecurityFixesParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + disablePagesSite: { + ( + params?: Octokit.RequestOptions & Octokit.ReposDisablePagesSiteParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Disables vulnerability alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)" in the GitHub Help documentation. + */ + disableVulnerabilityAlerts: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposDisableVulnerabilityAlertsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables automated security fixes for a repository. The authenticated user must have admin access to the repository. For more information, see "[Configuring automated security fixes](https://help.github.com/en/articles/configuring-automated-security-fixes)" in the GitHub Help documentation. + */ + enableAutomatedSecurityFixes: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposEnableAutomatedSecurityFixesParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + enablePagesSite: { + ( + params?: Octokit.RequestOptions & Octokit.ReposEnablePagesSiteParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Enables vulnerability alerts and the dependency graph for a repository. The authenticated user must have admin access to the repository. For more information, see "[About security alerts for vulnerable dependencies](https://help.github.com/en/articles/about-security-alerts-for-vulnerable-dependencies)" in the GitHub Help documentation. + */ + enableVulnerabilityAlerts: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposEnableVulnerabilityAlertsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * The `parent` and `source` objects are present when the repository is a fork. `parent` is the repository this repository was forked from, `source` is the ultimate source for the network. + */ + get: { + (params?: Octokit.RequestOptions & Octokit.ReposGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + */ + getAppsWithAccessToProtectedBranch: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetAppsWithAccessToProtectedBranchParams + ): Promise< + Octokit.Response< + Octokit.ReposGetAppsWithAccessToProtectedBranchResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Gets a redirect URL to download an archive for a repository. The `:archive_format` can be either `tarball` or `zipball`. The `:ref` must be a valid Git reference. If you omit `:ref`, the repository’s default branch (usually `master`) will be used. Please make sure your HTTP framework is configured to follow redirects or you will need to use the `Location` header to make a second `GET` request. + * + * _Note_: For private repositories, these links are temporary and expire after five minutes. + * + * To follow redirects with curl, use the `-L` switch: + */ + getArchiveLink: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetArchiveLinkParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + getBranch: { + (params?: Octokit.RequestOptions & Octokit.ReposGetBranchParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + getBranchProtection: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetBranchProtectionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Get the total number of clones and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getClones: { + (params?: Octokit.RequestOptions & Octokit.ReposGetClonesParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns a weekly aggregate of the number of additions and deletions pushed to a repository. + */ + getCodeFrequencyStats: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetCodeFrequencyStatsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Possible values for the `permission` key: `admin`, `write`, `read`, `none`. + */ + getCollaboratorPermissionLevel: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetCollaboratorPermissionLevelParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with pull access in a repository can access a combined view of commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. + * + * The most recent status for each context is returned, up to 100. This field [paginates](https://developer.github.com/v3/#pagination) if there are over 100 contexts. + * + * Additionally, a combined `state` is returned. The `state` is one of: + * + * * **failure** if any of the contexts report as `error` or `failure` + * * **pending** if there are no statuses or a context is `pending` + * * **success** if the latest status for all contexts is `success` + */ + getCombinedStatusForRef: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetCombinedStatusForRefParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns the contents of a single commit reference. You must have `read` access for the repository to use this endpoint. + * + * You can pass the appropriate [media type](https://developer.github.com/v3/media/#commits-commit-comparison-and-pull-requests) to fetch `diff` and `patch` formats. Diffs with binary data will have no `patch` property. + * + * To return only the SHA-1 hash of the commit reference, you can provide the `sha` custom [media type](https://developer.github.com/v3/media/#commits-commit-comparison-and-pull-requests) in the `Accept` header. You can use this endpoint to check if a remote reference's SHA-1 hash is the same as your local reference's SHA-1 hash by providing the local SHA-1 reference as the ETag. + * + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + getCommit: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetCommitParamsDeprecatedSha + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetCommitParamsDeprecatedCommitSha + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.ReposGetCommitParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns the last year of commit activity grouped by week. The `days` array is a group of commits per day, starting on `Sunday`. + */ + getCommitActivityStats: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetCommitActivityStatsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getCommitComment: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetCommitCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** To access this endpoint, you must provide a custom [media type](https://developer.github.com/v3/media) in the `Accept` header: + * ``` + * application/vnd.github.VERSION.sha + * ``` + * Returns the SHA-1 of the commit reference. You must have `read` access for the repository to get the SHA-1 of a commit reference. You can use this endpoint to check if a remote reference's SHA-1 is the same as your local reference's SHA-1 by providing the local SHA-1 reference as the ETag. + * @deprecated "Get the SHA-1 of a commit reference" will be removed. Use "Get a single commit" instead with media type format set to "sha" instead. + */ + getCommitRefSha: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetCommitRefShaParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Gets the contents of a file or directory in a repository. Specify the file path or directory in `:path`. If you omit `:path`, you will receive the contents of all files in the repository. + * + * Files and symlinks support [a custom media type](https://developer.github.com/v3/repos/contents/#custom-media-types) for retrieving the raw content or rendered HTML (when supported). All content types support [a custom media type](https://developer.github.com/v3/repos/contents/#custom-media-types) to ensure the content is returned in a consistent object format. + * + * **Note**: + * + * * To get a repository's contents recursively, you can [recursively get the tree](https://developer.github.com/v3/git/trees/). + * * This API has an upper limit of 1,000 files for a directory. If you need to retrieve more files, use the [Git Trees API](https://developer.github.com/v3/git/trees/#get-a-tree). + * * This API supports files up to 1 megabyte in size. + * + * The response will be an array of objects, one object for each item in the directory. + * + * When listing the contents of a directory, submodules have their "type" specified as "file". Logically, the value _should_ be "submodule". This behavior exists in API v3 [for backwards compatibility purposes](https://git.io/v1YCW). In the next major version of the API, the type will be returned as "submodule". + * + * If the requested `:path` points to a symlink, and the symlink's target is a normal file in the repository, then the API responds with the content of the file (in the [format shown above](https://developer.github.com/v3/repos/contents/#response-if-content-is-a-file)). + * + * Otherwise, the API responds with an object describing the symlink itself: + * + * The `submodule_git_url` identifies the location of the submodule repository, and the `sha` identifies a specific commit within the submodule repository. Git uses the given URL when cloning the submodule repository, and checks out the submodule at that specific commit. + * + * If the submodule repository is not hosted on github.com, the Git URLs (`git_url` and `_links["git"]`) and the github.com URLs (`html_url` and `_links["html"]`) will have null values. + */ + getContents: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetContentsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * * `total` - The Total number of commits authored by the contributor. + * + * Weekly Hash (`weeks` array): + * + * * `w` - Start of the week, given as a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time). + * * `a` - Number of additions + * * `d` - Number of deletions + * * `c` - Number of commits + */ + getContributorsStats: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetContributorsStatsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getDeployKey: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetDeployKeyParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getDeployment: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetDeploymentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with pull access can view a deployment status for a deployment: + */ + getDeploymentStatus: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetDeploymentStatusParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getDownload: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetDownloadParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getHook: { + (params?: Octokit.RequestOptions & Octokit.ReposGetHookParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getLatestPagesBuild: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetLatestPagesBuildParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * View the latest published full release for the repository. + * + * The latest release is the most recent non-prerelease, non-draft release, sorted by the `created_at` attribute. The `created_at` attribute is the date of the commit used for the release, and not the date when the release was drafted or published. + */ + getLatestRelease: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetLatestReleaseParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + getPages: { + (params?: Octokit.RequestOptions & Octokit.ReposGetPagesParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + getPagesBuild: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetPagesBuildParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Returns the total commit counts for the `owner` and total commit counts in `all`. `all` is everyone combined, including the `owner` in the last 52 weeks. If you'd like to get the commit counts for non-owners, you can subtract `owner` from `all`. + * + * The array order is oldest week (index 0) to most recent week. + */ + getParticipationStats: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetParticipationStatsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + getProtectedBranchAdminEnforcement: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetProtectedBranchAdminEnforcementParams + ): Promise< + Octokit.Response< + Octokit.ReposGetProtectedBranchAdminEnforcementResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + getProtectedBranchPullRequestReviewEnforcement: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetProtectedBranchPullRequestReviewEnforcementParams + ): Promise< + Octokit.Response< + Octokit.ReposGetProtectedBranchPullRequestReviewEnforcementResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to check whether a branch requires signed commits. An enabled status of `true` indicates you must sign commits on this branch. For more information, see [Signing commits with GPG](https://help.github.com/articles/signing-commits-with-gpg) in GitHub Help. + * + * **Note**: You must enable branch protection to require signed commits. + */ + getProtectedBranchRequiredSignatures: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetProtectedBranchRequiredSignaturesParams + ): Promise< + Octokit.Response< + Octokit.ReposGetProtectedBranchRequiredSignaturesResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + getProtectedBranchRequiredStatusChecks: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetProtectedBranchRequiredStatusChecksParams + ): Promise< + Octokit.Response< + Octokit.ReposGetProtectedBranchRequiredStatusChecksResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists who has access to this protected branch. {{#note}} + * + * **Note**: Users, apps, and teams `restrictions` are only available for organization-owned repositories. + */ + getProtectedBranchRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetProtectedBranchRestrictionsParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Each array contains the day number, hour number, and number of commits: + * + * * `0-6`: Sunday - Saturday + * * `0-23`: Hour of day + * * Number of commits + * + * For example, `[2, 14, 25]` indicates that there were 25 total commits, during the 2:00pm hour on Tuesdays. All times are based on the time zone of individual commits. + */ + getPunchCardStats: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetPunchCardStatsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Gets the preferred README for a repository. + * + * READMEs support [custom media types](https://developer.github.com/v3/repos/contents/#custom-media-types) for retrieving the raw content or rendered HTML. + */ + getReadme: { + (params?: Octokit.RequestOptions & Octokit.ReposGetReadmeParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** This returns an `upload_url` key corresponding to the endpoint for uploading release assets. This key is a [hypermedia resource](https://developer.github.com/v3/#hypermedia). + */ + getRelease: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetReleaseParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * To download the asset's binary content, set the `Accept` header of the request to [`application/octet-stream`](https://developer.github.com/v3/media/#media-types). The API will either redirect the client to the location, or stream it directly if possible. API clients should handle both a `200` or `302` response. + */ + getReleaseAsset: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetReleaseAssetParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Get a published release with the specified tag. + */ + getReleaseByTag: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetReleaseByTagParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. If you pass the `hellcat-preview` media type, the list includes child teams. + */ + getTeamsWithAccessToProtectedBranch: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetTeamsWithAccessToProtectedBranchParams + ): Promise< + Octokit.Response< + Octokit.ReposGetTeamsWithAccessToProtectedBranchResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Get the top 10 popular contents over the last 14 days. + */ + getTopPaths: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetTopPathsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Get the top 10 referrers over the last 14 days. + */ + getTopReferrers: { + ( + params?: Octokit.RequestOptions & Octokit.ReposGetTopReferrersParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + */ + getUsersWithAccessToProtectedBranch: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposGetUsersWithAccessToProtectedBranchParams + ): Promise< + Octokit.Response< + Octokit.ReposGetUsersWithAccessToProtectedBranchResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Get the total number of views and breakdown per day or week for the last 14 days. Timestamps are aligned to UTC midnight of the beginning of the day or week. Week begins on Monday. + */ + getViews: { + (params?: Octokit.RequestOptions & Octokit.ReposGetViewsParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access. + * + * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership. + */ + list: { + (params?: Octokit.RequestOptions & Octokit.ReposListParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the GitHub Apps that have push access to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * @deprecated octokit.repos.listAppsWithAccessToProtectedBranch() has been renamed to octokit.repos.getAppsWithAccessToProtectedBranch() (2019-09-13) + */ + listAppsWithAccessToProtectedBranch: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListAppsWithAccessToProtectedBranchParams + ): Promise< + Octokit.Response< + Octokit.ReposListAppsWithAccessToProtectedBranchResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + + listAssetsForRelease: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListAssetsForReleaseParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listBranches: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListBranchesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Returns all branches where the given commit SHA is the HEAD, or latest commit for the branch. + */ + listBranchesForHeadCommit: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListBranchesForHeadCommitParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * For organization-owned repositories, the list of collaborators includes outside collaborators, organization members that are direct collaborators, organization members with access through team memberships, organization members with access through default organization permissions, and organization owners. + * + * If you pass the `hellcat-preview` media type, team members will include the members of child teams. + */ + listCollaborators: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListCollaboratorsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Use the `:commit_sha` to specify the commit that will have its comments listed. + */ + listCommentsForCommit: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListCommentsForCommitParamsDeprecatedRef + ): Promise>; + ( + params?: Octokit.RequestOptions & + Octokit.ReposListCommentsForCommitParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Commit Comments use [these custom media types](https://developer.github.com/v3/repos/comments/#custom-media-types). You can read more about the use of media types in the API [here](https://developer.github.com/v3/media/). + * + * Comments are ordered by ascending ID. + */ + listCommitComments: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListCommitCommentsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Signature verification object** + * + * The response will include a `verification` object that describes the result of verifying the commit's signature. The following fields are included in the `verification` object: + * + * These are the possible values for `reason` in the `verification` object: + * + * | Value | Description | + * | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | + * | `expired_key` | The key that made the signature is expired. | + * | `not_signing_key` | The "signing" flag is not among the usage flags in the GPG key that made the signature. | + * | `gpgverify_error` | There was an error communicating with the signature verification service. | + * | `gpgverify_unavailable` | The signature verification service is currently unavailable. | + * | `unsigned` | The object does not include a signature. | + * | `unknown_signature_type` | A non-PGP signature was found in the commit. | + * | `no_user` | No user was associated with the `committer` email address in the commit. | + * | `unverified_email` | The `committer` email address in the commit was associated with a user, but the email address is not verified on her/his account. | + * | `bad_email` | The `committer` email address in the commit is not included in the identities of the PGP key that made the signature. | + * | `unknown_key` | The key that made the signature has not been registered with any user's account. | + * | `malformed_signature` | There was an error parsing the signature. | + * | `invalid` | The signature could not be cryptographically verified using the key whose key-id was found in the signature. | + * | `valid` | None of the above errors applied, so the signature is considered to be verified. | + */ + listCommits: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListCommitsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists contributors to the specified repository and sorts them by the number of commits per contributor in descending order. This endpoint may return information that is a few hours old because the GitHub REST API v3 caches contributor data to improve performance. + * + * GitHub identifies contributors by author email address. This endpoint groups contribution counts by GitHub user, which includes all associated email addresses. To improve performance, only the first 500 author email addresses in the repository link to GitHub users. The rest will appear as anonymous contributors without associated GitHub user information. + */ + listContributors: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListContributorsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listDeployKeys: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListDeployKeysParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with pull access can view deployment statuses for a deployment: + */ + listDeploymentStatuses: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListDeploymentStatusesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Simple filtering of deployments is available via query parameters: + */ + listDeployments: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListDeploymentsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listDownloads: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListDownloadsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists repositories for the specified organization. + */ + listForOrg: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListForOrgParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists public repositories for the specified user. + */ + listForUser: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListForUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + listForks: { + (params?: Octokit.RequestOptions & Octokit.ReposListForksParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listHooks: { + (params?: Octokit.RequestOptions & Octokit.ReposListHooksParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * When authenticating as a user with admin rights to a repository, this endpoint will list all currently open repository invitations. + */ + listInvitations: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListInvitationsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * When authenticating as a user, this endpoint will list all currently open repository invitations for that user. + */ + listInvitationsForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListInvitationsForAuthenticatedUserParams + ): Promise< + Octokit.Response< + Octokit.ReposListInvitationsForAuthenticatedUserResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists languages for the specified repository. The value shown for each language is the number of bytes of code written in that language. + */ + listLanguages: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListLanguagesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listPagesBuilds: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListPagesBuildsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + listProtectedBranchRequiredStatusChecksContexts: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListProtectedBranchRequiredStatusChecksContextsParams + ): Promise< + Octokit.Response< + Octokit.ReposListProtectedBranchRequiredStatusChecksContextsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. If you pass the `hellcat-preview` media type, the list includes child teams. + * @deprecated octokit.repos.listProtectedBranchTeamRestrictions() has been renamed to octokit.repos.getTeamsWithAccessToProtectedBranch() (2019-09-09) + */ + listProtectedBranchTeamRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListProtectedBranchTeamRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposListProtectedBranchTeamRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + * @deprecated octokit.repos.listProtectedBranchUserRestrictions() has been renamed to octokit.repos.getUsersWithAccessToProtectedBranch() (2019-09-09) + */ + listProtectedBranchUserRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListProtectedBranchUserRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposListProtectedBranchUserRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists all public repositories in the order that they were created. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://developer.github.com/v3/#link-header) to get the URL for the next page of repositories. + */ + listPublic: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListPublicParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists all pull requests containing the provided commit SHA, which can be from any point in the commit history. The results will include open and closed pull requests. Additional preview headers may be required to see certain details for associated pull requests, such as whether a pull request is in a draft state. For more information about previews that might affect this endpoint, see the [List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests) endpoint. + */ + listPullRequestsAssociatedWithCommit: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListPullRequestsAssociatedWithCommitParams + ): Promise< + Octokit.Response< + Octokit.ReposListPullRequestsAssociatedWithCommitResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This returns a list of releases, which does not include regular Git tags that have not been associated with a release. To get a list of Git tags, use the [Repository Tags API](https://developer.github.com/v3/repos/#list-tags). + * + * Information about published releases are available to everyone. Only users with push access will receive listings for draft releases. + */ + listReleases: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListReleasesParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with pull access in a repository can view commit statuses for a given ref. The ref can be a SHA, a branch name, or a tag name. Statuses are returned in reverse chronological order. The first status in the list will be the latest one. + * + * This resource is also available via a legacy route: `GET /repos/:owner/:repo/statuses/:ref`. + */ + listStatusesForRef: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListStatusesForRefParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listTags: { + (params?: Octokit.RequestOptions & Octokit.ReposListTagsParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listTeams: { + (params?: Octokit.RequestOptions & Octokit.ReposListTeamsParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the teams who have push access to this branch. If you pass the `hellcat-preview` media type, the list includes child teams. + * @deprecated octokit.repos.listTeamsWithAccessToProtectedBranch() has been renamed to octokit.repos.getTeamsWithAccessToProtectedBranch() (2019-09-13) + */ + listTeamsWithAccessToProtectedBranch: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListTeamsWithAccessToProtectedBranchParams + ): Promise< + Octokit.Response< + Octokit.ReposListTeamsWithAccessToProtectedBranchResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + + listTopics: { + ( + params?: Octokit.RequestOptions & Octokit.ReposListTopicsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Lists the people who have push access to this branch. + * @deprecated octokit.repos.listUsersWithAccessToProtectedBranch() has been renamed to octokit.repos.getUsersWithAccessToProtectedBranch() (2019-09-13) + */ + listUsersWithAccessToProtectedBranch: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposListUsersWithAccessToProtectedBranchParams + ): Promise< + Octokit.Response< + Octokit.ReposListUsersWithAccessToProtectedBranchResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + + merge: { + (params?: Octokit.RequestOptions & Octokit.ReposMergeParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This will trigger a [ping event](https://developer.github.com/webhooks/#ping-event) to be sent to the hook. + */ + pingHook: { + (params?: Octokit.RequestOptions & Octokit.ReposPingHookParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + removeBranchProtection: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveBranchProtectionParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + removeCollaborator: { + ( + params?: Octokit.RequestOptions & Octokit.ReposRemoveCollaboratorParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + removeDeployKey: { + ( + params?: Octokit.RequestOptions & Octokit.ReposRemoveDeployKeyParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Removing admin enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + */ + removeProtectedBranchAdminEnforcement: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchAdminEnforcementParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Removes the ability of an app to push to this branch. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeProtectedBranchAppRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchAppRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposRemoveProtectedBranchAppRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + removeProtectedBranchPullRequestReviewEnforcement: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchPullRequestReviewEnforcementParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * When authenticated with admin or owner permissions to the repository, you can use this endpoint to disable required signed commits on a branch. You must enable branch protection to require signed commits. + */ + removeProtectedBranchRequiredSignatures: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchRequiredSignaturesParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + removeProtectedBranchRequiredStatusChecks: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchRequiredStatusChecksParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + removeProtectedBranchRequiredStatusChecksContexts: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchRequiredStatusChecksContextsParams + ): Promise< + Octokit.Response< + Octokit.ReposRemoveProtectedBranchRequiredStatusChecksContextsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Disables the ability to restrict who can push to this branch. + */ + removeProtectedBranchRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchRestrictionsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Removes the ability of a team to push to this branch. If you pass the `hellcat-preview` media type, you can include child teams. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Teams that should no longer have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeProtectedBranchTeamRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchTeamRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposRemoveProtectedBranchTeamRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Removes the ability of a user to push to this branch. + * + * | Type | Description | + * | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames of the people who should no longer have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + removeProtectedBranchUserRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRemoveProtectedBranchUserRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposRemoveProtectedBranchUserRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Replaces the list of apps that have push access to this branch. This removes all apps that previously had push access and grants push access to the new list of apps. Only installed GitHub Apps with `write` access to the `contents` permission can be added as authorized actors on a protected branch. + * + * | Type | Description | + * | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | + * | `array` | The GitHub Apps that have push access to this branch. Use the app's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + replaceProtectedBranchAppRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposReplaceProtectedBranchAppRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposReplaceProtectedBranchAppRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + */ + replaceProtectedBranchRequiredStatusChecksContexts: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposReplaceProtectedBranchRequiredStatusChecksContextsParams + ): Promise< + Octokit.Response< + Octokit.ReposReplaceProtectedBranchRequiredStatusChecksContextsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Replaces the list of teams that have push access to this branch. This removes all teams that previously had push access and grants push access to the new list of teams. If you pass the `hellcat-preview` media type, you can include child teams. + * + * | Type | Description | + * | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ | + * | `array` | The teams that can have push access. Use the team's `slug`. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + replaceProtectedBranchTeamRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposReplaceProtectedBranchTeamRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposReplaceProtectedBranchTeamRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Replaces the list of people that have push access to this branch. This removes all people that previously had push access and grants push access to the new list of people. + * + * | Type | Description | + * | ------- | ----------------------------------------------------------------------------------------------------------------------------- | + * | `array` | Usernames for people who can have push access. **Note**: The list of users, apps, and teams in total is limited to 100 items. | + */ + replaceProtectedBranchUserRestrictions: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposReplaceProtectedBranchUserRestrictionsParams + ): Promise< + Octokit.Response< + Octokit.ReposReplaceProtectedBranchUserRestrictionsResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + + replaceTopics: { + ( + params?: Octokit.RequestOptions & Octokit.ReposReplaceTopicsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * You can request that your site be built from the latest revision on the default branch. This has the same effect as pushing a commit to your default branch, but does not require an additional commit. Manually triggering page builds can be helpful when diagnosing build warnings and failures. + * + * Build requests are limited to one concurrent build per repository and one concurrent build per requester. If you request a build while another is still in progress, the second request will be queued until the first completes. + */ + requestPageBuild: { + ( + params?: Octokit.RequestOptions & Octokit.ReposRequestPageBuildParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint will return all community profile metrics, including an overall health score, repository description, the presence of documentation, detected code of conduct, detected license, and the presence of ISSUE\_TEMPLATE, PULL\_REQUEST\_TEMPLATE, README, and CONTRIBUTING files. + */ + retrieveCommunityProfileMetrics: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposRetrieveCommunityProfileMetricsParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * This will trigger the hook with the latest push to the current repository if the hook is subscribed to `push` events. If the hook is not subscribed to `push` events, the server will respond with 204 but no test POST will be generated. + * + * **Note**: Previously `/repos/:owner/:repo/hooks/:hook_id/test` + */ + testPushHook: { + ( + params?: Octokit.RequestOptions & Octokit.ReposTestPushHookParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * A transfer request will need to be accepted by the new owner when transferring a personal repository to another user. The response will contain the original `owner`, and the transfer will continue asynchronously. For more details on the requirements to transfer personal and organization-owned repositories, see [about repository transfers](https://help.github.com/articles/about-repository-transfers/). + */ + transfer: { + (params?: Octokit.RequestOptions & Octokit.ReposTransferParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: To edit a repository's topics, use the [`topics` endpoint](https://developer.github.com/v3/repos/#replace-all-topics-for-a-repository). + */ + update: { + (params?: Octokit.RequestOptions & Octokit.ReposUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Protecting a branch requires admin or owner permissions to the repository. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + * + * **Note**: The list of users, apps, and teams in total is limited to 100 items. + */ + updateBranchProtection: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposUpdateBranchProtectionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + updateCommitComment: { + ( + params?: Octokit.RequestOptions & Octokit.ReposUpdateCommitCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new file or updates an existing file in a repository. + * @deprecated octokit.repos.updateFile() has been renamed to octokit.repos.createOrUpdateFile() (2019-06-07) + */ + updateFile: { + ( + params?: Octokit.RequestOptions & Octokit.ReposUpdateFileParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + updateHook: { + ( + params?: Octokit.RequestOptions & Octokit.ReposUpdateHookParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + updateInformationAboutPagesSite: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposUpdateInformationAboutPagesSiteParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + updateInvitation: { + ( + params?: Octokit.RequestOptions & Octokit.ReposUpdateInvitationParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Updating pull request review enforcement requires admin or owner permissions to the repository and branch protection to be enabled. + * + * **Note**: Passing new arrays of `users` and `teams` replaces their previous values. + */ + updateProtectedBranchPullRequestReviewEnforcement: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposUpdateProtectedBranchPullRequestReviewEnforcementParams + ): Promise< + Octokit.Response< + Octokit.ReposUpdateProtectedBranchPullRequestReviewEnforcementResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Protected branches are available in public repositories with GitHub Free, and in public and private repositories with GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. For more information, see [GitHub's billing plans](https://help.github.com/articles/github-s-billing-plans) in the GitHub Help documentation. + * + * Updating required status checks requires admin or owner permissions to the repository and branch protection to be enabled. + */ + updateProtectedBranchRequiredStatusChecks: { + ( + params?: Octokit.RequestOptions & + Octokit.ReposUpdateProtectedBranchRequiredStatusChecksParams + ): Promise< + Octokit.Response< + Octokit.ReposUpdateProtectedBranchRequiredStatusChecksResponse + > + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with push access to the repository can edit a release. + */ + updateRelease: { + ( + params?: Octokit.RequestOptions & Octokit.ReposUpdateReleaseParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Users with push access to the repository can edit a release asset. + */ + updateReleaseAsset: { + ( + params?: Octokit.RequestOptions & Octokit.ReposUpdateReleaseAssetParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint makes use of [a Hypermedia relation](https://developer.github.com/v3/#hypermedia) to determine which URL to access. The endpoint you call to upload release assets is specific to your release. Use the `upload_url` returned in the response of the [Create a release endpoint](https://developer.github.com/v3/repos/releases/#create-a-release) to upload a release asset. + * + * You need to use an HTTP client which supports [SNI](http://en.wikipedia.org/wiki/Server_Name_Indication) to make calls to this endpoint. + * + * Most libraries will set the required `Content-Length` header automatically. Use the required `Content-Type` header to provide the media type of the asset. For a list of media types, see [Media Types](https://www.iana.org/assignments/media-types/media-types.xhtml). For example: + * + * `application/zip` + * + * GitHub expects the asset data in its raw binary form, rather than JSON. You will send the raw binary content of the asset as the request body. Everything else about the endpoint is the same as the rest of the API. For example, you'll still need to pass your authentication to be able to upload an asset. + */ + uploadReleaseAsset: { + ( + params?: Octokit.RequestOptions & Octokit.ReposUploadReleaseAssetParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; + search: { + /** + * Find file contents via various criteria. This method returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for code, you can get text match metadata for the file **content** and file **path** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * **Note:** You must [authenticate](https://developer.github.com/v3/#authentication) to search for code across all public repositories. + * + * **Considerations for code search** + * + * Due to the complexity of searching code, there are a few restrictions on how searches are performed: + * + * * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * * Only files smaller than 384 KB are searchable. + * * You must always include at least one search term when searching source code. For example, searching for [`language:go`](https://github.com/search?utf8=%E2%9C%93&q=language%3Ago&type=Code) is not valid, while [`amazing language:go`](https://github.com/search?utf8=%E2%9C%93&q=amazing+language%3Ago&type=Code) is. + * + * Suppose you want to find the definition of the `addClass` function inside [jQuery](https://github.com/jquery/jquery). Your query would look something like this: + * + * Here, we're searching for the keyword `addClass` within a file's contents. We're making sure that we're only looking in files where the language is JavaScript. And we're scoping the search to the `repo:jquery/jquery` repository. + */ + code: { + (params?: Octokit.RequestOptions & Octokit.SearchCodeParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Find commits via various criteria. This method returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for commits, you can get text match metadata for the **message** field when you provide the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * **Considerations for commit search** + * + * Only the _default branch_ is considered. In most cases, this will be the `master` branch. + * + * Suppose you want to find commits related to CSS in the [octocat/Spoon-Knife](https://github.com/octocat/Spoon-Knife) repository. Your query would look something like this: + */ + commits: { + (params?: Octokit.RequestOptions & Octokit.SearchCommitsParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * Let's say you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * In this query, we're searching for the keyword `windows`, within any open issue that's labeled as `bug`. The search runs across repositories whose primary language is Python. We’re sorting by creation date in ascending order, so that the oldest issues appear first in the search results. + * @deprecated octokit.search.issues() has been renamed to octokit.search.issuesAndPullRequests() (2018-12-27) + */ + issues: { + (params?: Octokit.RequestOptions & Octokit.SearchIssuesParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Find issues by state and keyword. This method returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for issues, you can get text match metadata for the issue **title**, issue **body**, and issue **comment body** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * Let's say you want to find the oldest unresolved Python bugs on Windows. Your query might look something like this. + * + * In this query, we're searching for the keyword `windows`, within any open issue that's labeled as `bug`. The search runs across repositories whose primary language is Python. We’re sorting by creation date in ascending order, so that the oldest issues appear first in the search results. + */ + issuesAndPullRequests: { + ( + params?: Octokit.RequestOptions & + Octokit.SearchIssuesAndPullRequestsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Find labels in a repository with names or descriptions that match search keywords. Returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for labels, you can get text match metadata for the label **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * Suppose you want to find labels in the `linguist` repository that match `bug`, `defect`, or `enhancement`. Your query might look like this: + * + * The labels that best match for the query appear first in the search results. + */ + labels: { + (params?: Octokit.RequestOptions & Octokit.SearchLabelsParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Find repositories via various criteria. This method returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for repositories, you can get text match metadata for the **name** and **description** fields when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * Suppose you want to search for popular Tetris repositories written in Assembly. Your query might look like this. + * + * You can search for multiple topics by adding more `topic:` instances, and including the `mercy-preview` header. For example: + * + * In this request, we're searching for repositories with the word `tetris` in the name, the description, or the README. We're limiting the results to only find repositories where the primary language is Assembly. We're sorting by stars in descending order, so that the most popular repositories appear first in the search results. + */ + repos: { + (params?: Octokit.RequestOptions & Octokit.SearchReposParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Find topics via various criteria. Results are sorted by best match. This method returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for topics, you can get text match metadata for the topic's **short\_description**, **description**, **name**, or **display\_name** field when you pass the `text-match` media type. For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * See "[Searching topics](https://help.github.com/articles/searching-topics/)" for a detailed list of qualifiers. + * + * Suppose you want to search for topics related to Ruby that are featured on [https://github.com/topics](https://github.com/topics). Your query might look like this: + * + * In this request, we're searching for topics with the keyword `ruby`, and we're limiting the results to find only topics that are featured. The topics that are the best match for the query appear first in the search results. + * + * **Note:** A search for featured Ruby topics only has 6 total results, so a [Link header](https://developer.github.com/v3/#link-header) indicating pagination is not included in the response. + */ + topics: { + (params?: Octokit.RequestOptions & Octokit.SearchTopicsParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Find users via various criteria. This method returns up to 100 results [per page](https://developer.github.com/v3/#pagination). + * + * When searching for users, you can get text match metadata for the issue **login**, **email**, and **name** fields when you pass the `text-match` media type. For more details about highlighting search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). For more details about how to receive highlighted search results, see [Text match metadata](https://developer.github.com/v3/search/#text-match-metadata). + * + * Imagine you're looking for a list of popular users. You might try out this query: + * + * Here, we're looking at users with the name Tom. We're only interested in those with more than 42 repositories, and only if they have over 1,000 followers. + */ + users: { + (params?: Octokit.RequestOptions & Octokit.SearchUsersParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + teams: { + /** + * The "Add team member" API (described below) is deprecated. + * + * We recommend using the [Add team membership API](https://developer.github.com/v3/teams/members/#add-or-update-team-membership) instead. It allows you to invite new organization members to your teams. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/articles/github-s-products) in the GitHub Help documentation. + * + * To add someone to a team, the authenticated user must be a team maintainer in the team they're changing or be an owner of the organization that the team is associated with. The person being added to the team must be a member of the team's organization. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + * @deprecated octokit.teams.addMember() is deprecated, see https://developer.github.com/v3/teams/members/#add-team-member + */ + addMember: { + (params?: Octokit.RequestOptions & Octokit.TeamsAddMemberParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/articles/github-s-products) in the GitHub Help documentation. + * + * If the user is already a member of the team's organization, this endpoint will add the user to the team. To add a membership between an organization member and a team, the authenticated user must be an organization owner or a maintainer of the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * + * If the user is unaffiliated with the team's organization, this endpoint will send an invitation to the user via email. This newly-created membership will be in the "pending" state until the user accepts the invitation, at which point the membership will transition to the "active" state and the user will be added as a member of the team. To add a membership between an unaffiliated user and a team, the authenticated user must be an organization owner. + * + * If the user is already a member of the team, this endpoint will update the role of the team member's role. To update the membership of a team member, the authenticated user must be an organization owner or a maintainer of the team. + */ + addOrUpdateMembership: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsAddOrUpdateMembershipParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Adds an organization project to a team. To add a project to a team or update the team's permission on a project, the authenticated user must have `admin` permissions for the project. The project and team must be part of the same organization. + */ + addOrUpdateProject: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsAddOrUpdateProjectParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * To add a repository to a team or update the team's permission on a repository, the authenticated user must have admin access to the repository, and must be able to see the team. The repository must be owned by the organization, or a direct fork of a repository owned by the organization. You will get a `422 Unprocessable Entity` status if you attempt to add a repository to a team that is not owned by the organization. + * + * If you pass the `hellcat-preview` media type, you can modify repository permissions of child teams. + * + * Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + */ + addOrUpdateRepo: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsAddOrUpdateRepoParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: If you pass the `hellcat-preview` media type, repositories inherited through a parent team will be checked. + * + * You can also get information about the specified repository, including what permissions the team grants on it, by passing the following custom [media type](https://developer.github.com/v3/media/) via the `Accept` header: + */ + checkManagesRepo: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsCheckManagesRepoParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * To create a team, the authenticated user must be a member or owner of `:org`. By default, organization members can create teams. Organization owners can limit team creation to organization owners. For more information, see "[Setting team creation permissions](https://help.github.com/en/articles/setting-team-creation-permissions-in-your-organization)." + */ + create: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsCreateParamsDeprecatedPermission + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.TeamsCreateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new discussion post on a team's page. OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createDiscussion: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsCreateDiscussionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Creates a new comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + * + * This endpoint triggers [notifications](https://help.github.com/articles/about-notifications/). Creating content too quickly using this endpoint may result in abuse rate limiting. See "[Abuse rate limits](https://developer.github.com/v3/#abuse-rate-limits)" and "[Dealing with abuse rate limits](https://developer.github.com/v3/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits)" for details. + */ + createDiscussionComment: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsCreateDiscussionCommentParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * To delete a team, the authenticated user must be a team maintainer or an owner of the org associated with the team. + * + * If you are an organization owner and you pass the `hellcat-preview` media type, deleting a parent team will delete all of its child teams as well. + */ + delete: { + (params?: Octokit.RequestOptions & Octokit.TeamsDeleteParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Delete a discussion from a team's page. OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteDiscussion: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsDeleteDiscussionParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Deletes a comment on a team discussion. OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteDiscussionComment: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsDeleteDiscussionCommentParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + get: { + (params?: Octokit.RequestOptions & Octokit.TeamsGetParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Gets a team using the team's `slug`. GitHub generates the `slug` from the team `name`. + */ + getByName: { + (params?: Octokit.RequestOptions & Octokit.TeamsGetByNameParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Get a specific discussion on a team's page. OAuth access tokens require the `read:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getDiscussion: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsGetDiscussionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Get a specific comment on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getDiscussionComment: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsGetDiscussionCommentParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * The "Get team member" API (described below) is deprecated. + * + * We recommend using the [Get team membership API](https://developer.github.com/v3/teams/members/#get-team-membership) instead. It allows you to get both active and pending memberships. + * + * To list members in a team, the team must be visible to the authenticated user. + * @deprecated octokit.teams.getMember() is deprecated, see https://developer.github.com/v3/teams/members/#get-team-member + */ + getMember: { + (params?: Octokit.RequestOptions & Octokit.TeamsGetMemberParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * If you pass the `hellcat-preview` media type, team members will include the members of child teams. + * + * To get a user's membership with a team, the team must be visible to the authenticated user. + * + * **Note:** The `role` for organization owners returns as `maintainer`. For more information about `maintainer` roles, see [Create team](https://developer.github.com/v3/teams#create-team). + */ + getMembership: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsGetMembershipParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + list: { + (params?: Octokit.RequestOptions & Octokit.TeamsListParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * At this time, the `hellcat-preview` media type is required to use this endpoint. + */ + listChild: { + (params?: Octokit.RequestOptions & Octokit.TeamsListChildParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List all comments on a team discussion. OAuth access tokens require the `read:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listDiscussionComments: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsListDiscussionCommentsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List all discussions on a team's page. OAuth access tokens require the `read:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listDiscussions: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsListDiscussionsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * List all of the teams across all of the organizations to which the authenticated user belongs. This method requires `user`, `repo`, or `read:org` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/) when authenticating via [OAuth](https://developer.github.com/apps/building-oauth-apps/). + */ + listForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsListForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * If you pass the `hellcat-preview` media type, team members will include the members of child teams. + */ + listMembers: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsListMembersParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * The return hash contains a `role` field which refers to the Organization Invitation role and will be one of the following values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`, or `reinstate`. If the invitee is not a GitHub member, the `login` field in the return hash will be `null`. + */ + listPendingInvitations: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsListPendingInvitationsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the organization projects for a team. If you pass the `hellcat-preview` media type, the response will include projects inherited from a parent team. + */ + listProjects: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsListProjectsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note**: If you pass the `hellcat-preview` media type, the response will include any repositories inherited through a parent team. + */ + listRepos: { + (params?: Octokit.RequestOptions & Octokit.TeamsListReposParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * The "Remove team member" API (described below) is deprecated. + * + * We recommend using the [Remove team membership endpoint](https://developer.github.com/v3/teams/members/#remove-team-membership) instead. It allows you to remove both active and pending memberships. + * + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/articles/github-s-products) in the GitHub Help documentation. + * + * To remove a team member, the authenticated user must have 'admin' permissions to the team or be an owner of the org that the team is associated with. Removing a team member does not delete the user, it just removes them from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + * @deprecated octokit.teams.removeMember() is deprecated, see https://developer.github.com/v3/teams/members/#remove-team-member + */ + removeMember: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsRemoveMemberParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Team synchronization is available for organizations using GitHub Enterprise Cloud. For more information, see [GitHub's products](https://help.github.com/articles/github-s-products) in the GitHub Help documentation. + * + * To remove a membership between a user and a team, the authenticated user must have 'admin' permissions to the team or be an owner of the organization that the team is associated with. Removing team membership does not delete the user, it just removes their membership from the team. + * + * **Note:** When you have team synchronization set up for a team with your organization's identity provider (IdP), you will see an error if you attempt to use the API for making changes to the team's membership. If you have access to manage group membership in your IdP, you can manage GitHub team membership through your identity provider, which automatically adds and removes team members in an organization. For more information, see "[Synchronizing teams between your identity provider and GitHub](https://help.github.com/articles/synchronizing-teams-between-your-identity-provider-and-github/)." + */ + removeMembership: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsRemoveMembershipParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes an organization project from a team. An organization owner or a team maintainer can remove any project from the team. To remove a project from a team as an organization member, the authenticated user must have `read` access to both the team and project, or `admin` access to the team or project. **Note:** This endpoint removes the project from the team, but does not delete it. + */ + removeProject: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsRemoveProjectParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * If the authenticated user is an organization owner or a team maintainer, they can remove any repositories from the team. To remove a repository from a team as an organization member, the authenticated user must have admin access to the repository and must be able to see the team. NOTE: This does not delete the repository, it just removes it from the team. + */ + removeRepo: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsRemoveRepoParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Checks whether a team has `read`, `write`, or `admin` permissions for an organization project. If you pass the `hellcat-preview` media type, the response will include projects inherited from a parent team. + */ + reviewProject: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsReviewProjectParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * To edit a team, the authenticated user must either be an owner of the org that the team is associated with, or a maintainer of the team. + * + * **Note:** With nested teams, the `privacy` for parent teams cannot be `secret`. + */ + update: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsUpdateParamsDeprecatedPermission + ): Promise>; + (params?: Octokit.RequestOptions & Octokit.TeamsUpdateParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Edits the title and body text of a discussion post. Only the parameters you provide are updated. OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + updateDiscussion: { + ( + params?: Octokit.RequestOptions & Octokit.TeamsUpdateDiscussionParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Edits the body text of a discussion comment. OAuth access tokens require the `write:discussion` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + updateDiscussionComment: { + ( + params?: Octokit.RequestOptions & + Octokit.TeamsUpdateDiscussionCommentParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + }; + users: { + /** + * This endpoint is accessible with the `user` scope. + */ + addEmails: { + (params?: Octokit.RequestOptions & Octokit.UsersAddEmailsParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + block: { + (params?: Octokit.RequestOptions & Octokit.UsersBlockParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * If the user is blocked: + * + * If the user is not blocked: + */ + checkBlocked: { + ( + params?: Octokit.RequestOptions & Octokit.UsersCheckBlockedParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + checkFollowing: { + ( + params?: Octokit.RequestOptions & Octokit.UsersCheckFollowingParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + + checkFollowingForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.UsersCheckFollowingForUserParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Adds a GPG key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:gpg_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + createGpgKey: { + ( + params?: Octokit.RequestOptions & Octokit.UsersCreateGpgKeyParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Adds a public SSH key to the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth, or OAuth with at least `write:public_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + createPublicKey: { + ( + params?: Octokit.RequestOptions & Octokit.UsersCreatePublicKeyParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * This endpoint is accessible with the `user` scope. + */ + deleteEmails: { + ( + params?: Octokit.RequestOptions & Octokit.UsersDeleteEmailsParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes a GPG key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:gpg_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deleteGpgKey: { + ( + params?: Octokit.RequestOptions & Octokit.UsersDeleteGpgKeyParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Removes a public SSH key from the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `admin:public_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + deletePublicKey: { + ( + params?: Octokit.RequestOptions & Octokit.UsersDeletePublicKeyParams + ): Promise; + + endpoint: Octokit.Endpoint; + }; + /** + * Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + * + * Following a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + follow: { + (params?: Octokit.RequestOptions & Octokit.UsersFollowParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists public and private profile information when authenticated through basic auth or OAuth with the `user` scope. + * + * Lists public profile information when authenticated through OAuth without the `user` scope. + */ + getAuthenticated: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Provides publicly available information about someone with a GitHub account. + * + * GitHub Apps with the `Plan` user permission can use this endpoint to retrieve information about a user's GitHub plan. The GitHub App must be authenticated as a user. See "[Identifying and authorizing users for GitHub Apps](https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/)" for details about authentication. For an example response, see "[Response with GitHub plan information](https://developer.github.com/v3/users/#response-with-github-plan-information)." + * + * The `email` key in the following response is the publicly visible email address from your GitHub [profile page](https://github.com/settings/profile). When setting up your profile, you can select a primary email address to be “public” which provides an email entry for this endpoint. If you do not set a public email address for `email`, then it will have a value of `null`. You only see publicly visible email addresses when authenticated with GitHub. For more information, see [Authentication](https://developer.github.com/v3/#authentication). + * + * The Emails API enables you to list all of your email addresses, and toggle a primary email to be visible publicly. For more information, see "[Emails API](https://developer.github.com/v3/users/emails/)". + */ + getByUsername: { + ( + params?: Octokit.RequestOptions & Octokit.UsersGetByUsernameParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Provides hovercard information when authenticated through basic auth or OAuth with the `repo` scope. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. + * + * The `subject_type` and `subject_id` parameters provide context for the person's hovercard, which returns more information than without the parameters. For example, if you wanted to find out more about `octocat` who owns the `Spoon-Knife` repository via cURL, it would look like this: + */ + getContextForUser: { + ( + params?: Octokit.RequestOptions & Octokit.UsersGetContextForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * View extended details for a single GPG key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getGpgKey: { + (params?: Octokit.RequestOptions & Octokit.UsersGetGpgKeyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * View extended details for a single public SSH key. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + getPublicKey: { + ( + params?: Octokit.RequestOptions & Octokit.UsersGetPublicKeyParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. + * + * Note: Pagination is powered exclusively by the `since` parameter. Use the [Link header](https://developer.github.com/v3/#link-header) to get the URL for the next page of users. + */ + list: { + (params?: Octokit.RequestOptions & Octokit.UsersListParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * List the users you've blocked on your personal account. + */ + listBlocked: { + (params?: Octokit.RequestOptions & Octokit.EmptyParams): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists all of your email addresses, and specifies which one is visible to the public. This endpoint is accessible with the `user:email` scope. + */ + listEmails: { + ( + params?: Octokit.RequestOptions & Octokit.UsersListEmailsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listFollowersForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.UsersListFollowersForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listFollowersForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.UsersListFollowersForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + + listFollowingForAuthenticatedUser: { + ( + params?: Octokit.RequestOptions & + Octokit.UsersListFollowingForAuthenticatedUserParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + listFollowingForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.UsersListFollowingForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the current user's GPG keys. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:gpg_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listGpgKeys: { + ( + params?: Octokit.RequestOptions & Octokit.UsersListGpgKeysParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the GPG keys for a user. This information is accessible by anyone. + */ + listGpgKeysForUser: { + ( + params?: Octokit.RequestOptions & Octokit.UsersListGpgKeysForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists your publicly visible email address, which you can set with the [Toggle primary email visibility](https://developer.github.com/v3/users/emails/#toggle-primary-email-visibility) endpoint. This endpoint is accessible with the `user:email` scope. + */ + listPublicEmails: { + ( + params?: Octokit.RequestOptions & Octokit.UsersListPublicEmailsParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the public SSH keys for the authenticated user's GitHub account. Requires that you are authenticated via Basic Auth or via OAuth with at least `read:public_key` [scope](https://developer.github.com/apps/building-oauth-apps/understanding-scopes-for-oauth-apps/). + */ + listPublicKeys: { + ( + params?: Octokit.RequestOptions & Octokit.UsersListPublicKeysParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Lists the _verified_ public SSH keys for a user. This is accessible by anyone. + */ + listPublicKeysForUser: { + ( + params?: Octokit.RequestOptions & + Octokit.UsersListPublicKeysForUserParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + /** + * Sets the visibility for your primary email addresses. + */ + togglePrimaryEmailVisibility: { + ( + params?: Octokit.RequestOptions & + Octokit.UsersTogglePrimaryEmailVisibilityParams + ): Promise< + Octokit.Response + >; + + endpoint: Octokit.Endpoint; + }; + + unblock: { + (params?: Octokit.RequestOptions & Octokit.UsersUnblockParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * Unfollowing a user requires the user to be logged in and authenticated with basic auth or OAuth with the `user:follow` scope. + */ + unfollow: { + (params?: Octokit.RequestOptions & Octokit.UsersUnfollowParams): Promise< + Octokit.AnyResponse + >; + + endpoint: Octokit.Endpoint; + }; + /** + * **Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not be displayed on your public profile or via the API. + */ + updateAuthenticated: { + ( + params?: Octokit.RequestOptions & Octokit.UsersUpdateAuthenticatedParams + ): Promise>; + + endpoint: Octokit.Endpoint; + }; + }; +} + +export = Octokit; diff --git a/node_modules/@octokit/rest/index.js b/node_modules/@octokit/rest/index.js new file mode 100644 index 0000000..5a228f3 --- /dev/null +++ b/node_modules/@octokit/rest/index.js @@ -0,0 +1,15 @@ +const Octokit = require("./lib/core"); + +const CORE_PLUGINS = [ + require("./plugins/log"), + require("./plugins/authentication-deprecated"), // deprecated: remove in v17 + require("./plugins/authentication"), + require("./plugins/pagination"), + require("./plugins/register-endpoints"), + require("./plugins/rest-api-endpoints"), + require("./plugins/validate"), + + require("octokit-pagination-methods") // deprecated: remove in v17 +]; + +module.exports = Octokit.plugin(CORE_PLUGINS); diff --git a/node_modules/@octokit/rest/lib/constructor.js b/node_modules/@octokit/rest/lib/constructor.js new file mode 100644 index 0000000..d83cf6b --- /dev/null +++ b/node_modules/@octokit/rest/lib/constructor.js @@ -0,0 +1,29 @@ +module.exports = Octokit; + +const { request } = require("@octokit/request"); +const Hook = require("before-after-hook"); + +const parseClientOptions = require("./parse-client-options"); + +function Octokit(plugins, options) { + options = options || {}; + const hook = new Hook.Collection(); + const log = Object.assign( + { + debug: () => {}, + info: () => {}, + warn: console.warn, + error: console.error + }, + options && options.log + ); + const api = { + hook, + log, + request: request.defaults(parseClientOptions(options, log, hook)) + }; + + plugins.forEach(pluginFunction => pluginFunction(api, options)); + + return api; +} diff --git a/node_modules/@octokit/rest/lib/core.js b/node_modules/@octokit/rest/lib/core.js new file mode 100644 index 0000000..4943ffa --- /dev/null +++ b/node_modules/@octokit/rest/lib/core.js @@ -0,0 +1,3 @@ +const factory = require("./factory"); + +module.exports = factory(); diff --git a/node_modules/@octokit/rest/lib/factory.js b/node_modules/@octokit/rest/lib/factory.js new file mode 100644 index 0000000..5dc2065 --- /dev/null +++ b/node_modules/@octokit/rest/lib/factory.js @@ -0,0 +1,10 @@ +module.exports = factory; + +const Octokit = require("./constructor"); +const registerPlugin = require("./register-plugin"); + +function factory(plugins) { + const Api = Octokit.bind(null, plugins || []); + Api.plugin = registerPlugin.bind(null, plugins || []); + return Api; +} diff --git a/node_modules/@octokit/rest/lib/parse-client-options.js b/node_modules/@octokit/rest/lib/parse-client-options.js new file mode 100644 index 0000000..c7c097d --- /dev/null +++ b/node_modules/@octokit/rest/lib/parse-client-options.js @@ -0,0 +1,89 @@ +module.exports = parseOptions; + +const { Deprecation } = require("deprecation"); +const { getUserAgent } = require("universal-user-agent"); +const once = require("once"); + +const pkg = require("../package.json"); + +const deprecateOptionsTimeout = once((log, deprecation) => + log.warn(deprecation) +); +const deprecateOptionsAgent = once((log, deprecation) => log.warn(deprecation)); +const deprecateOptionsHeaders = once((log, deprecation) => + log.warn(deprecation) +); + +function parseOptions(options, log, hook) { + if (options.headers) { + options.headers = Object.keys(options.headers).reduce((newObj, key) => { + newObj[key.toLowerCase()] = options.headers[key]; + return newObj; + }, {}); + } + + const clientDefaults = { + headers: options.headers || {}, + request: options.request || {}, + mediaType: { + previews: [], + format: "" + } + }; + + if (options.baseUrl) { + clientDefaults.baseUrl = options.baseUrl; + } + + if (options.userAgent) { + clientDefaults.headers["user-agent"] = options.userAgent; + } + + if (options.previews) { + clientDefaults.mediaType.previews = options.previews; + } + + if (options.timeZone) { + clientDefaults.headers["time-zone"] = options.timeZone; + } + + if (options.timeout) { + deprecateOptionsTimeout( + log, + new Deprecation( + "[@octokit/rest] new Octokit({timeout}) is deprecated. Use {request: {timeout}} instead. See https://github.com/octokit/request.js#request" + ) + ); + clientDefaults.request.timeout = options.timeout; + } + + if (options.agent) { + deprecateOptionsAgent( + log, + new Deprecation( + "[@octokit/rest] new Octokit({agent}) is deprecated. Use {request: {agent}} instead. See https://github.com/octokit/request.js#request" + ) + ); + clientDefaults.request.agent = options.agent; + } + + if (options.headers) { + deprecateOptionsHeaders( + log, + new Deprecation( + "[@octokit/rest] new Octokit({headers}) is deprecated. Use {userAgent, previews} instead. See https://github.com/octokit/request.js#request" + ) + ); + } + + const userAgentOption = clientDefaults.headers["user-agent"]; + const defaultUserAgent = `octokit.js/${pkg.version} ${getUserAgent()}`; + + clientDefaults.headers["user-agent"] = [userAgentOption, defaultUserAgent] + .filter(Boolean) + .join(" "); + + clientDefaults.request.hook = hook.bind(null, "request"); + + return clientDefaults; +} diff --git a/node_modules/@octokit/rest/lib/register-plugin.js b/node_modules/@octokit/rest/lib/register-plugin.js new file mode 100644 index 0000000..c1ae775 --- /dev/null +++ b/node_modules/@octokit/rest/lib/register-plugin.js @@ -0,0 +1,9 @@ +module.exports = registerPlugin; + +const factory = require("./factory"); + +function registerPlugin(plugins, pluginFunction) { + return factory( + plugins.includes(pluginFunction) ? plugins : plugins.concat(pluginFunction) + ); +} diff --git a/node_modules/@octokit/rest/package.json b/node_modules/@octokit/rest/package.json new file mode 100644 index 0000000..03da4c0 --- /dev/null +++ b/node_modules/@octokit/rest/package.json @@ -0,0 +1,135 @@ +{ + "name": "@octokit/rest", + "version": "16.36.0", + "publishConfig": { + "access": "public" + }, + "description": "GitHub REST API client for Node.js", + "keywords": [ + "octokit", + "github", + "rest", + "api-client" + ], + "author": "Gregor Martynus (https://github.com/gr2m)", + "contributors": [ + { + "name": "Mike de Boer", + "email": "info@mikedeboer.nl" + }, + { + "name": "Fabian Jakobs", + "email": "fabian@c9.io" + }, + { + "name": "Joe Gallo", + "email": "joe@brassafrax.com" + }, + { + "name": "Gregor Martynus", + "url": "https://github.com/gr2m" + } + ], + "repository": "https://github.com/octokit/rest.js", + "dependencies": { + "@octokit/request": "^5.2.0", + "@octokit/request-error": "^1.0.2", + "atob-lite": "^2.0.0", + "before-after-hook": "^2.0.0", + "btoa-lite": "^1.0.0", + "deprecation": "^2.0.0", + "lodash.get": "^4.4.2", + "lodash.set": "^4.3.2", + "lodash.uniq": "^4.5.0", + "octokit-pagination-methods": "^1.1.0", + "once": "^1.4.0", + "universal-user-agent": "^4.0.0" + }, + "devDependencies": { + "@gimenete/type-writer": "^0.1.3", + "@octokit/fixtures-server": "^5.0.6", + "@octokit/graphql": "^4.2.0", + "@types/node": "^13.1.0", + "bundlesize": "^0.18.0", + "chai": "^4.1.2", + "compression-webpack-plugin": "^3.0.0", + "cypress": "^3.0.0", + "glob": "^7.1.2", + "http-proxy-agent": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "lodash.merge": "^4.6.1", + "lodash.upperfirst": "^4.3.1", + "mkdirp": "^0.5.1", + "mocha": "^6.0.0", + "mustache": "^3.0.0", + "nock": "^11.3.3", + "npm-run-all": "^4.1.2", + "nyc": "^15.0.0", + "prettier": "^1.14.2", + "proxy": "^1.0.0", + "semantic-release": "^15.0.0", + "sinon": "^8.0.0", + "sinon-chai": "^3.0.0", + "sort-keys": "^4.0.0", + "string-to-arraybuffer": "^1.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typescript": "^3.3.1", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.0.0", + "webpack-cli": "^3.0.0" + }, + "types": "index.d.ts", + "scripts": { + "coverage": "nyc report --reporter=html && open coverage/index.html", + "lint": "prettier --check '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json", + "lint:fix": "prettier --write '{lib,plugins,scripts,test}/**/*.{js,json,ts}' 'docs/*.{js,json}' 'docs/src/**/*' index.js README.md package.json", + "pretest": "npm run -s lint", + "test": "nyc mocha test/mocha-node-setup.js \"test/*/**/*-test.js\"", + "test:browser": "cypress run --browser chrome", + "build": "npm-run-all build:*", + "build:ts": "npm run -s update-endpoints:typescript", + "prebuild:browser": "mkdirp dist/", + "build:browser": "npm-run-all build:browser:*", + "build:browser:development": "webpack --mode development --entry . --output-library=Octokit --output=./dist/octokit-rest.js --profile --json > dist/bundle-stats.json", + "build:browser:production": "webpack --mode production --entry . --plugin=compression-webpack-plugin --output-library=Octokit --output-path=./dist --output-filename=octokit-rest.min.js --devtool source-map", + "generate-bundle-report": "webpack-bundle-analyzer dist/bundle-stats.json --mode=static --no-open --report dist/bundle-report.html", + "update-endpoints": "npm-run-all update-endpoints:*", + "update-endpoints:fetch-json": "node scripts/update-endpoints/fetch-json", + "update-endpoints:code": "node scripts/update-endpoints/code", + "update-endpoints:typescript": "node scripts/update-endpoints/typescript", + "prevalidate:ts": "npm run -s build:ts", + "validate:ts": "tsc --target es6 --noImplicitAny index.d.ts", + "postvalidate:ts": "tsc --noEmit --target es6 test/typescript-validate.ts", + "start-fixtures-server": "octokit-fixtures-server" + }, + "license": "MIT", + "files": [ + "index.js", + "index.d.ts", + "lib", + "plugins" + ], + "nyc": { + "ignore": [ + "test" + ] + }, + "release": { + "publish": [ + "@semantic-release/npm", + { + "path": "@semantic-release/github", + "assets": [ + "dist/*", + "!dist/*.map.gz" + ] + } + ] + }, + "bundlesize": [ + { + "path": "./dist/octokit-rest.min.js.gz", + "maxSize": "33 kB" + } + ] +} diff --git a/node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js b/node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js new file mode 100644 index 0000000..86ce9e9 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js @@ -0,0 +1,52 @@ +module.exports = authenticate; + +const { Deprecation } = require("deprecation"); +const once = require("once"); + +const deprecateAuthenticate = once((log, deprecation) => log.warn(deprecation)); + +function authenticate(state, options) { + deprecateAuthenticate( + state.octokit.log, + new Deprecation( + '[@octokit/rest] octokit.authenticate() is deprecated. Use "auth" constructor option instead.' + ) + ); + + if (!options) { + state.auth = false; + return; + } + + switch (options.type) { + case "basic": + if (!options.username || !options.password) { + throw new Error( + "Basic authentication requires both a username and password to be set" + ); + } + break; + + case "oauth": + if (!options.token && !(options.key && options.secret)) { + throw new Error( + "OAuth2 authentication requires a token or key & secret to be set" + ); + } + break; + + case "token": + case "app": + if (!options.token) { + throw new Error("Token authentication requires a token to be set"); + } + break; + + default: + throw new Error( + "Invalid authentication type, must be 'basic', 'oauth', 'token' or 'app'" + ); + } + + state.auth = options; +} diff --git a/node_modules/@octokit/rest/plugins/authentication-deprecated/before-request.js b/node_modules/@octokit/rest/plugins/authentication-deprecated/before-request.js new file mode 100644 index 0000000..dbb83ab --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication-deprecated/before-request.js @@ -0,0 +1,43 @@ +module.exports = authenticationBeforeRequest; + +const btoa = require("btoa-lite"); +const uniq = require("lodash.uniq"); + +function authenticationBeforeRequest(state, options) { + if (!state.auth.type) { + return; + } + + if (state.auth.type === "basic") { + const hash = btoa(`${state.auth.username}:${state.auth.password}`); + options.headers.authorization = `Basic ${hash}`; + return; + } + + if (state.auth.type === "token") { + options.headers.authorization = `token ${state.auth.token}`; + return; + } + + if (state.auth.type === "app") { + options.headers.authorization = `Bearer ${state.auth.token}`; + const acceptHeaders = options.headers.accept + .split(",") + .concat("application/vnd.github.machine-man-preview+json"); + options.headers.accept = uniq(acceptHeaders) + .filter(Boolean) + .join(","); + return; + } + + options.url += options.url.indexOf("?") === -1 ? "?" : "&"; + + if (state.auth.token) { + options.url += `access_token=${encodeURIComponent(state.auth.token)}`; + return; + } + + const key = encodeURIComponent(state.auth.key); + const secret = encodeURIComponent(state.auth.secret); + options.url += `client_id=${key}&client_secret=${secret}`; +} diff --git a/node_modules/@octokit/rest/plugins/authentication-deprecated/index.js b/node_modules/@octokit/rest/plugins/authentication-deprecated/index.js new file mode 100644 index 0000000..7e0cc4f --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication-deprecated/index.js @@ -0,0 +1,31 @@ +module.exports = authenticationPlugin; + +const { Deprecation } = require("deprecation"); +const once = require("once"); + +const deprecateAuthenticate = once((log, deprecation) => log.warn(deprecation)); + +const authenticate = require("./authenticate"); +const beforeRequest = require("./before-request"); +const requestError = require("./request-error"); + +function authenticationPlugin(octokit, options) { + if (options.auth) { + octokit.authenticate = () => { + deprecateAuthenticate( + octokit.log, + new Deprecation( + '[@octokit/rest] octokit.authenticate() is deprecated and has no effect when "auth" option is set on Octokit constructor' + ) + ); + }; + return; + } + const state = { + octokit, + auth: false + }; + octokit.authenticate = authenticate.bind(null, state); + octokit.hook.before("request", beforeRequest.bind(null, state)); + octokit.hook.error("request", requestError.bind(null, state)); +} diff --git a/node_modules/@octokit/rest/plugins/authentication-deprecated/request-error.js b/node_modules/@octokit/rest/plugins/authentication-deprecated/request-error.js new file mode 100644 index 0000000..d2e7baa --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication-deprecated/request-error.js @@ -0,0 +1,55 @@ +module.exports = authenticationRequestError; + +const { RequestError } = require("@octokit/request-error"); + +function authenticationRequestError(state, error, options) { + /* istanbul ignore next */ + if (!error.headers) throw error; + + const otpRequired = /required/.test(error.headers["x-github-otp"] || ""); + // handle "2FA required" error only + if (error.status !== 401 || !otpRequired) { + throw error; + } + + if ( + error.status === 401 && + otpRequired && + error.request && + error.request.headers["x-github-otp"] + ) { + throw new RequestError( + "Invalid one-time password for two-factor authentication", + 401, + { + headers: error.headers, + request: options + } + ); + } + + if (typeof state.auth.on2fa !== "function") { + throw new RequestError( + "2FA required, but options.on2fa is not a function. See https://github.com/octokit/rest.js#authentication", + 401, + { + headers: error.headers, + request: options + } + ); + } + + return Promise.resolve() + .then(() => { + return state.auth.on2fa(); + }) + .then(oneTimePassword => { + const newOptions = Object.assign(options, { + headers: Object.assign( + { "x-github-otp": oneTimePassword }, + options.headers + ) + }); + return state.octokit.request(newOptions); + }); +} diff --git a/node_modules/@octokit/rest/plugins/authentication/before-request.js b/node_modules/@octokit/rest/plugins/authentication/before-request.js new file mode 100644 index 0000000..c18df95 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication/before-request.js @@ -0,0 +1,65 @@ +module.exports = authenticationBeforeRequest; + +const btoa = require("btoa-lite"); + +const withAuthorizationPrefix = require("./with-authorization-prefix"); + +function authenticationBeforeRequest(state, options) { + if (typeof state.auth === "string") { + options.headers.authorization = withAuthorizationPrefix(state.auth); + + // https://developer.github.com/v3/previews/#integrations + if ( + /^bearer /i.test(state.auth) && + !/machine-man/.test(options.headers.accept) + ) { + const acceptHeaders = options.headers.accept + .split(",") + .concat("application/vnd.github.machine-man-preview+json"); + options.headers.accept = acceptHeaders.filter(Boolean).join(","); + } + + return; + } + + if (state.auth.username) { + const hash = btoa(`${state.auth.username}:${state.auth.password}`); + options.headers.authorization = `Basic ${hash}`; + if (state.otp) { + options.headers["x-github-otp"] = state.otp; + } + return; + } + + if (state.auth.clientId) { + // There is a special case for OAuth applications, when `clientId` and `clientSecret` is passed as + // Basic Authorization instead of query parameters. The only routes where that applies share the same + // URL though: `/applications/:client_id/tokens/:access_token`. + // + // 1. [Check an authorization](https://developer.github.com/v3/oauth_authorizations/#check-an-authorization) + // 2. [Reset an authorization](https://developer.github.com/v3/oauth_authorizations/#reset-an-authorization) + // 3. [Revoke an authorization for an application](https://developer.github.com/v3/oauth_authorizations/#revoke-an-authorization-for-an-application) + // + // We identify by checking the URL. It must merge both "/applications/:client_id/tokens/:access_token" + // as well as "/applications/123/tokens/token456" + if (/\/applications\/:?[\w_]+\/tokens\/:?[\w_]+($|\?)/.test(options.url)) { + const hash = btoa(`${state.auth.clientId}:${state.auth.clientSecret}`); + options.headers.authorization = `Basic ${hash}`; + return; + } + + options.url += options.url.indexOf("?") === -1 ? "?" : "&"; + options.url += `client_id=${state.auth.clientId}&client_secret=${state.auth.clientSecret}`; + return; + } + + return Promise.resolve() + + .then(() => { + return state.auth(); + }) + + .then(authorization => { + options.headers.authorization = withAuthorizationPrefix(authorization); + }); +} diff --git a/node_modules/@octokit/rest/plugins/authentication/index.js b/node_modules/@octokit/rest/plugins/authentication/index.js new file mode 100644 index 0000000..6a51d42 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication/index.js @@ -0,0 +1,21 @@ +module.exports = authenticationPlugin; + +const beforeRequest = require("./before-request"); +const requestError = require("./request-error"); +const validate = require("./validate"); + +function authenticationPlugin(octokit, options) { + if (!options.auth) { + return; + } + + validate(options.auth); + + const state = { + octokit, + auth: options.auth + }; + + octokit.hook.before("request", beforeRequest.bind(null, state)); + octokit.hook.error("request", requestError.bind(null, state)); +} diff --git a/node_modules/@octokit/rest/plugins/authentication/request-error.js b/node_modules/@octokit/rest/plugins/authentication/request-error.js new file mode 100644 index 0000000..9c67d55 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication/request-error.js @@ -0,0 +1,61 @@ +module.exports = authenticationRequestError; + +const { RequestError } = require("@octokit/request-error"); + +function authenticationRequestError(state, error, options) { + if (!error.headers) throw error; + + const otpRequired = /required/.test(error.headers["x-github-otp"] || ""); + // handle "2FA required" error only + if (error.status !== 401 || !otpRequired) { + throw error; + } + + if ( + error.status === 401 && + otpRequired && + error.request && + error.request.headers["x-github-otp"] + ) { + if (state.otp) { + delete state.otp; // no longer valid, request again + } else { + throw new RequestError( + "Invalid one-time password for two-factor authentication", + 401, + { + headers: error.headers, + request: options + } + ); + } + } + + if (typeof state.auth.on2fa !== "function") { + throw new RequestError( + "2FA required, but options.on2fa is not a function. See https://github.com/octokit/rest.js#authentication", + 401, + { + headers: error.headers, + request: options + } + ); + } + + return Promise.resolve() + .then(() => { + return state.auth.on2fa(); + }) + .then(oneTimePassword => { + const newOptions = Object.assign(options, { + headers: Object.assign(options.headers, { + "x-github-otp": oneTimePassword + }) + }); + return state.octokit.request(newOptions).then(response => { + // If OTP still valid, then persist it for following requests + state.otp = oneTimePassword; + return response; + }); + }); +} diff --git a/node_modules/@octokit/rest/plugins/authentication/validate.js b/node_modules/@octokit/rest/plugins/authentication/validate.js new file mode 100644 index 0000000..abf8377 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication/validate.js @@ -0,0 +1,21 @@ +module.exports = validateAuth; + +function validateAuth(auth) { + if (typeof auth === "string") { + return; + } + + if (typeof auth === "function") { + return; + } + + if (auth.username && auth.password) { + return; + } + + if (auth.clientId && auth.clientSecret) { + return; + } + + throw new Error(`Invalid "auth" option: ${JSON.stringify(auth)}`); +} diff --git a/node_modules/@octokit/rest/plugins/authentication/with-authorization-prefix.js b/node_modules/@octokit/rest/plugins/authentication/with-authorization-prefix.js new file mode 100644 index 0000000..122cab7 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/authentication/with-authorization-prefix.js @@ -0,0 +1,23 @@ +module.exports = withAuthorizationPrefix; + +const atob = require("atob-lite"); + +const REGEX_IS_BASIC_AUTH = /^[\w-]+:/; + +function withAuthorizationPrefix(authorization) { + if (/^(basic|bearer|token) /i.test(authorization)) { + return authorization; + } + + try { + if (REGEX_IS_BASIC_AUTH.test(atob(authorization))) { + return `basic ${authorization}`; + } + } catch (error) {} + + if (authorization.split(/\./).length === 3) { + return `bearer ${authorization}`; + } + + return `token ${authorization}`; +} diff --git a/node_modules/@octokit/rest/plugins/log/index.js b/node_modules/@octokit/rest/plugins/log/index.js new file mode 100644 index 0000000..fed446a --- /dev/null +++ b/node_modules/@octokit/rest/plugins/log/index.js @@ -0,0 +1,28 @@ +module.exports = octokitDebug; + +function octokitDebug(octokit) { + octokit.hook.wrap("request", (request, options) => { + octokit.log.debug("request", options); + const start = Date.now(); + const requestOptions = octokit.request.endpoint.parse(options); + const path = requestOptions.url.replace(options.baseUrl, ""); + + return request(options) + .then(response => { + octokit.log.info( + `${requestOptions.method} ${path} - ${ + response.status + } in ${Date.now() - start}ms` + ); + return response; + }) + + .catch(error => { + octokit.log.info( + `${requestOptions.method} ${path} - ${error.status} in ${Date.now() - + start}ms` + ); + throw error; + }); + }); +} diff --git a/node_modules/@octokit/rest/plugins/pagination/index.js b/node_modules/@octokit/rest/plugins/pagination/index.js new file mode 100644 index 0000000..e7673bc --- /dev/null +++ b/node_modules/@octokit/rest/plugins/pagination/index.js @@ -0,0 +1,9 @@ +module.exports = paginatePlugin; + +const iterator = require("./iterator"); +const paginate = require("./paginate"); + +function paginatePlugin(octokit) { + octokit.paginate = paginate.bind(null, octokit); + octokit.paginate.iterator = iterator.bind(null, octokit); +} diff --git a/node_modules/@octokit/rest/plugins/pagination/iterator.js b/node_modules/@octokit/rest/plugins/pagination/iterator.js new file mode 100644 index 0000000..00ea8eb --- /dev/null +++ b/node_modules/@octokit/rest/plugins/pagination/iterator.js @@ -0,0 +1,34 @@ +module.exports = iterator; + +const normalizePaginatedListResponse = require("./normalize-paginated-list-response"); + +function iterator(octokit, options) { + const headers = options.headers; + let url = octokit.request.endpoint(options).url; + + return { + [Symbol.asyncIterator]: () => ({ + next() { + if (!url) { + return Promise.resolve({ done: true }); + } + + return octokit + .request({ url, headers }) + + .then(response => { + normalizePaginatedListResponse(octokit, url, response); + + // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + url = ((response.headers.link || "").match( + /<([^>]+)>;\s*rel="next"/ + ) || [])[1]; + + return { value: response }; + }); + } + }) + }; +} diff --git a/node_modules/@octokit/rest/plugins/pagination/normalize-paginated-list-response.js b/node_modules/@octokit/rest/plugins/pagination/normalize-paginated-list-response.js new file mode 100644 index 0000000..e664142 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/pagination/normalize-paginated-list-response.js @@ -0,0 +1,116 @@ +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint: + * + * - https://developer.github.com/v3/search/#example (key `items`) + * - https://developer.github.com/v3/checks/runs/#response-3 (key: `check_runs`) + * - https://developer.github.com/v3/checks/suites/#response-1 (key: `check_suites`) + * - https://developer.github.com/v3/apps/installations/#list-repositories (key: `repositories`) + * - https://developer.github.com/v3/apps/installations/#list-installations-for-a-user (key `installations`) + * - https://developer.github.com/v3/orgs/#list-installations-for-an-organization (key `installations`) + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. For the exceptions with the namespace, a fallback check for the route + * paths has to be added in order to normalize the response. We cannot check for the total_count + * property because it also exists in the response of Get the combined status for a specific ref. + */ + +module.exports = normalizePaginatedListResponse; + +const { Deprecation } = require("deprecation"); +const once = require("once"); + +const deprecateIncompleteResults = once((log, deprecation) => + log.warn(deprecation) +); +const deprecateTotalCount = once((log, deprecation) => log.warn(deprecation)); +const deprecateNamespace = once((log, deprecation) => log.warn(deprecation)); + +const REGEX_IS_SEARCH_PATH = /^\/search\//; +const REGEX_IS_CHECKS_PATH = /^\/repos\/[^/]+\/[^/]+\/commits\/[^/]+\/(check-runs|check-suites)/; +const REGEX_IS_INSTALLATION_REPOSITORIES_PATH = /^\/installation\/repositories/; +const REGEX_IS_USER_INSTALLATIONS_PATH = /^\/user\/installations/; +const REGEX_IS_ORG_INSTALLATIONS_PATH = /^\/orgs\/[^/]+\/installations/; + +function normalizePaginatedListResponse(octokit, url, response) { + const path = url.replace(octokit.request.endpoint.DEFAULTS.baseUrl, ""); + if ( + !REGEX_IS_SEARCH_PATH.test(path) && + !REGEX_IS_CHECKS_PATH.test(path) && + !REGEX_IS_INSTALLATION_REPOSITORIES_PATH.test(path) && + !REGEX_IS_USER_INSTALLATIONS_PATH.test(path) && + !REGEX_IS_ORG_INSTALLATIONS_PATH.test(path) + ) { + return; + } + + // keep the additional properties intact to avoid a breaking change, + // but log a deprecation warning when accessed + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + + const namespaceKey = Object.keys(response.data)[0]; + + response.data = response.data[namespaceKey]; + + Object.defineProperty(response.data, namespaceKey, { + get() { + deprecateNamespace( + octokit.log, + new Deprecation( + `[@octokit/rest] "result.data.${namespaceKey}" is deprecated. Use "result.data" instead` + ) + ); + return response.data; + } + }); + + if (typeof incompleteResults !== "undefined") { + Object.defineProperty(response.data, "incomplete_results", { + get() { + deprecateIncompleteResults( + octokit.log, + new Deprecation( + '[@octokit/rest] "result.data.incomplete_results" is deprecated.' + ) + ); + return incompleteResults; + } + }); + } + + if (typeof repositorySelection !== "undefined") { + Object.defineProperty(response.data, "repository_selection", { + get() { + deprecateTotalCount( + octokit.log, + new Deprecation( + '[@octokit/rest] "result.data.repository_selection" is deprecated.' + ) + ); + return repositorySelection; + } + }); + } + + Object.defineProperty(response.data, "total_count", { + get() { + deprecateTotalCount( + octokit.log, + new Deprecation( + '[@octokit/rest] "result.data.total_count" is deprecated.' + ) + ); + return totalCount; + } + }); +} diff --git a/node_modules/@octokit/rest/plugins/pagination/paginate.js b/node_modules/@octokit/rest/plugins/pagination/paginate.js new file mode 100644 index 0000000..db4752b --- /dev/null +++ b/node_modules/@octokit/rest/plugins/pagination/paginate.js @@ -0,0 +1,40 @@ +module.exports = paginate; + +const iterator = require("./iterator"); + +function paginate(octokit, route, options, mapFn) { + if (typeof options === "function") { + mapFn = options; + options = undefined; + } + options = octokit.request.endpoint.merge(route, options); + return gather( + octokit, + [], + iterator(octokit, options)[Symbol.asyncIterator](), + mapFn + ); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then(result => { + if (result.done) { + return results; + } + + let earlyExit = false; + function done() { + earlyExit = true; + } + + results = results.concat( + mapFn ? mapFn(result.value, done) : result.value.data + ); + + if (earlyExit) { + return results; + } + + return gather(octokit, results, iterator, mapFn); + }); +} diff --git a/node_modules/@octokit/rest/plugins/register-endpoints/index.js b/node_modules/@octokit/rest/plugins/register-endpoints/index.js new file mode 100644 index 0000000..8b92538 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/register-endpoints/index.js @@ -0,0 +1,7 @@ +module.exports = octokitRegisterEndpoints; + +const registerEndpoints = require("./register-endpoints"); + +function octokitRegisterEndpoints(octokit) { + octokit.registerEndpoints = registerEndpoints.bind(null, octokit); +} diff --git a/node_modules/@octokit/rest/plugins/register-endpoints/register-endpoints.js b/node_modules/@octokit/rest/plugins/register-endpoints/register-endpoints.js new file mode 100644 index 0000000..0ffd784 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/register-endpoints/register-endpoints.js @@ -0,0 +1,98 @@ +module.exports = registerEndpoints; + +const { Deprecation } = require("deprecation"); + +function registerEndpoints(octokit, routes) { + Object.keys(routes).forEach(namespaceName => { + if (!octokit[namespaceName]) { + octokit[namespaceName] = {}; + } + + Object.keys(routes[namespaceName]).forEach(apiName => { + const apiOptions = routes[namespaceName][apiName]; + + const endpointDefaults = ["method", "url", "headers"].reduce( + (map, key) => { + if (typeof apiOptions[key] !== "undefined") { + map[key] = apiOptions[key]; + } + + return map; + }, + {} + ); + + endpointDefaults.request = { + validate: apiOptions.params + }; + + let request = octokit.request.defaults(endpointDefaults); + + // patch request & endpoint methods to support deprecated parameters. + // Not the most elegant solution, but we don’t want to move deprecation + // logic into octokit/endpoint.js as it’s out of scope + const hasDeprecatedParam = Object.keys(apiOptions.params || {}).find( + key => apiOptions.params[key].deprecated + ); + if (hasDeprecatedParam) { + const patch = patchForDeprecation.bind(null, octokit, apiOptions); + request = patch( + octokit.request.defaults(endpointDefaults), + `.${namespaceName}.${apiName}()` + ); + request.endpoint = patch( + request.endpoint, + `.${namespaceName}.${apiName}.endpoint()` + ); + request.endpoint.merge = patch( + request.endpoint.merge, + `.${namespaceName}.${apiName}.endpoint.merge()` + ); + } + + if (apiOptions.deprecated) { + octokit[namespaceName][apiName] = function deprecatedEndpointMethod() { + octokit.log.warn( + new Deprecation(`[@octokit/rest] ${apiOptions.deprecated}`) + ); + octokit[namespaceName][apiName] = request; + return request.apply(null, arguments); + }; + + return; + } + + octokit[namespaceName][apiName] = request; + }); + }); +} + +function patchForDeprecation(octokit, apiOptions, method, methodName) { + const patchedMethod = options => { + options = Object.assign({}, options); + + Object.keys(options).forEach(key => { + if (apiOptions.params[key] && apiOptions.params[key].deprecated) { + const aliasKey = apiOptions.params[key].alias; + + octokit.log.warn( + new Deprecation( + `[@octokit/rest] "${key}" parameter is deprecated for "${methodName}". Use "${aliasKey}" instead` + ) + ); + + if (!(aliasKey in options)) { + options[aliasKey] = options[key]; + } + delete options[key]; + } + }); + + return method(options); + }; + Object.keys(method).forEach(key => { + patchedMethod[key] = method[key]; + }); + + return patchedMethod; +} diff --git a/node_modules/@octokit/rest/plugins/rest-api-endpoints/index.js b/node_modules/@octokit/rest/plugins/rest-api-endpoints/index.js new file mode 100644 index 0000000..4835cee --- /dev/null +++ b/node_modules/@octokit/rest/plugins/rest-api-endpoints/index.js @@ -0,0 +1,13 @@ +module.exports = octokitRestApiEndpoints; + +const ROUTES = require("./routes.json"); + +function octokitRestApiEndpoints(octokit) { + // Aliasing scopes for backward compatibility + // See https://github.com/octokit/rest.js/pull/1134 + ROUTES.gitdata = ROUTES.git; + ROUTES.authorization = ROUTES.oauthAuthorizations; + ROUTES.pullRequests = ROUTES.pulls; + + octokit.registerEndpoints(ROUTES); +} diff --git a/node_modules/@octokit/rest/plugins/rest-api-endpoints/routes.json b/node_modules/@octokit/rest/plugins/rest-api-endpoints/routes.json new file mode 100644 index 0000000..31e3fca --- /dev/null +++ b/node_modules/@octokit/rest/plugins/rest-api-endpoints/routes.json @@ -0,0 +1,5927 @@ +{ + "activity": { + "checkStarringRepo": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/user/starred/:owner/:repo" + }, + "deleteRepoSubscription": { + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/subscription" + }, + "deleteThreadSubscription": { + "method": "DELETE", + "params": { "thread_id": { "required": true, "type": "integer" } }, + "url": "/notifications/threads/:thread_id/subscription" + }, + "getRepoSubscription": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/subscription" + }, + "getThread": { + "method": "GET", + "params": { "thread_id": { "required": true, "type": "integer" } }, + "url": "/notifications/threads/:thread_id" + }, + "getThreadSubscription": { + "method": "GET", + "params": { "thread_id": { "required": true, "type": "integer" } }, + "url": "/notifications/threads/:thread_id/subscription" + }, + "listEventsForOrg": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/events/orgs/:org" + }, + "listEventsForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/events" + }, + "listFeeds": { "method": "GET", "params": {}, "url": "/feeds" }, + "listNotifications": { + "method": "GET", + "params": { + "all": { "type": "boolean" }, + "before": { "type": "string" }, + "page": { "type": "integer" }, + "participating": { "type": "boolean" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" } + }, + "url": "/notifications" + }, + "listNotificationsForRepo": { + "method": "GET", + "params": { + "all": { "type": "boolean" }, + "before": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "participating": { "type": "boolean" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "since": { "type": "string" } + }, + "url": "/repos/:owner/:repo/notifications" + }, + "listPublicEvents": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/events" + }, + "listPublicEventsForOrg": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/events" + }, + "listPublicEventsForRepoNetwork": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/networks/:owner/:repo/events" + }, + "listPublicEventsForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/events/public" + }, + "listReceivedEventsForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/received_events" + }, + "listReceivedPublicEventsForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/received_events/public" + }, + "listRepoEvents": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/events" + }, + "listReposStarredByAuthenticatedUser": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "sort": { "enum": ["created", "updated"], "type": "string" } + }, + "url": "/user/starred" + }, + "listReposStarredByUser": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "sort": { "enum": ["created", "updated"], "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/starred" + }, + "listReposWatchedByUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/subscriptions" + }, + "listStargazersForRepo": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/stargazers" + }, + "listWatchedReposForAuthenticatedUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/subscriptions" + }, + "listWatchersForRepo": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/subscribers" + }, + "markAsRead": { + "method": "PUT", + "params": { "last_read_at": { "type": "string" } }, + "url": "/notifications" + }, + "markNotificationsAsReadForRepo": { + "method": "PUT", + "params": { + "last_read_at": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/notifications" + }, + "markThreadAsRead": { + "method": "PATCH", + "params": { "thread_id": { "required": true, "type": "integer" } }, + "url": "/notifications/threads/:thread_id" + }, + "setRepoSubscription": { + "method": "PUT", + "params": { + "ignored": { "type": "boolean" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "subscribed": { "type": "boolean" } + }, + "url": "/repos/:owner/:repo/subscription" + }, + "setThreadSubscription": { + "method": "PUT", + "params": { + "ignored": { "type": "boolean" }, + "thread_id": { "required": true, "type": "integer" } + }, + "url": "/notifications/threads/:thread_id/subscription" + }, + "starRepo": { + "method": "PUT", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/user/starred/:owner/:repo" + }, + "unstarRepo": { + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/user/starred/:owner/:repo" + } + }, + "apps": { + "addRepoToInstallation": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "PUT", + "params": { + "installation_id": { "required": true, "type": "integer" }, + "repository_id": { "required": true, "type": "integer" } + }, + "url": "/user/installations/:installation_id/repositories/:repository_id" + }, + "checkAccountIsAssociatedWithAny": { + "method": "GET", + "params": { + "account_id": { "required": true, "type": "integer" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/marketplace_listing/accounts/:account_id" + }, + "checkAccountIsAssociatedWithAnyStubbed": { + "method": "GET", + "params": { + "account_id": { "required": true, "type": "integer" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/marketplace_listing/stubbed/accounts/:account_id" + }, + "checkAuthorization": { + "deprecated": "octokit.oauthAuthorizations.checkAuthorization() has been renamed to octokit.apps.checkAuthorization() (2019-11-05)", + "method": "GET", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/tokens/:access_token" + }, + "checkToken": { + "headers": { + "accept": "application/vnd.github.doctor-strange-preview+json" + }, + "method": "POST", + "params": { + "access_token": { "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/token" + }, + "createContentAttachment": { + "headers": { "accept": "application/vnd.github.corsair-preview+json" }, + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "content_reference_id": { "required": true, "type": "integer" }, + "title": { "required": true, "type": "string" } + }, + "url": "/content_references/:content_reference_id/attachments" + }, + "createFromManifest": { + "headers": { "accept": "application/vnd.github.fury-preview+json" }, + "method": "POST", + "params": { "code": { "required": true, "type": "string" } }, + "url": "/app-manifests/:code/conversions" + }, + "createInstallationToken": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "POST", + "params": { + "installation_id": { "required": true, "type": "integer" }, + "permissions": { "type": "object" }, + "repository_ids": { "type": "integer[]" } + }, + "url": "/app/installations/:installation_id/access_tokens" + }, + "deleteAuthorization": { + "headers": { + "accept": "application/vnd.github.doctor-strange-preview+json" + }, + "method": "DELETE", + "params": { + "access_token": { "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/grant" + }, + "deleteInstallation": { + "headers": { + "accept": "application/vnd.github.gambit-preview+json,application/vnd.github.machine-man-preview+json" + }, + "method": "DELETE", + "params": { "installation_id": { "required": true, "type": "integer" } }, + "url": "/app/installations/:installation_id" + }, + "deleteToken": { + "headers": { + "accept": "application/vnd.github.doctor-strange-preview+json" + }, + "method": "DELETE", + "params": { + "access_token": { "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/token" + }, + "findOrgInstallation": { + "deprecated": "octokit.apps.findOrgInstallation() has been renamed to octokit.apps.getOrgInstallation() (2019-04-10)", + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { "org": { "required": true, "type": "string" } }, + "url": "/orgs/:org/installation" + }, + "findRepoInstallation": { + "deprecated": "octokit.apps.findRepoInstallation() has been renamed to octokit.apps.getRepoInstallation() (2019-04-10)", + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/installation" + }, + "findUserInstallation": { + "deprecated": "octokit.apps.findUserInstallation() has been renamed to octokit.apps.getUserInstallation() (2019-04-10)", + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/users/:username/installation" + }, + "getAuthenticated": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": {}, + "url": "/app" + }, + "getBySlug": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { "app_slug": { "required": true, "type": "string" } }, + "url": "/apps/:app_slug" + }, + "getInstallation": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { "installation_id": { "required": true, "type": "integer" } }, + "url": "/app/installations/:installation_id" + }, + "getOrgInstallation": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { "org": { "required": true, "type": "string" } }, + "url": "/orgs/:org/installation" + }, + "getRepoInstallation": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/installation" + }, + "getUserInstallation": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/users/:username/installation" + }, + "listAccountsUserOrOrgOnPlan": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "plan_id": { "required": true, "type": "integer" }, + "sort": { "enum": ["created", "updated"], "type": "string" } + }, + "url": "/marketplace_listing/plans/:plan_id/accounts" + }, + "listAccountsUserOrOrgOnPlanStubbed": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "plan_id": { "required": true, "type": "integer" }, + "sort": { "enum": ["created", "updated"], "type": "string" } + }, + "url": "/marketplace_listing/stubbed/plans/:plan_id/accounts" + }, + "listInstallationReposForAuthenticatedUser": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { + "installation_id": { "required": true, "type": "integer" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/installations/:installation_id/repositories" + }, + "listInstallations": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/app/installations" + }, + "listInstallationsForAuthenticatedUser": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/installations" + }, + "listMarketplacePurchasesForAuthenticatedUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/marketplace_purchases" + }, + "listMarketplacePurchasesForAuthenticatedUserStubbed": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/marketplace_purchases/stubbed" + }, + "listPlans": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/marketplace_listing/plans" + }, + "listPlansStubbed": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/marketplace_listing/stubbed/plans" + }, + "listRepos": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/installation/repositories" + }, + "removeRepoFromInstallation": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "DELETE", + "params": { + "installation_id": { "required": true, "type": "integer" }, + "repository_id": { "required": true, "type": "integer" } + }, + "url": "/user/installations/:installation_id/repositories/:repository_id" + }, + "resetAuthorization": { + "deprecated": "octokit.oauthAuthorizations.resetAuthorization() has been renamed to octokit.apps.resetAuthorization() (2019-11-05)", + "method": "POST", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/tokens/:access_token" + }, + "resetToken": { + "headers": { + "accept": "application/vnd.github.doctor-strange-preview+json" + }, + "method": "PATCH", + "params": { + "access_token": { "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/token" + }, + "revokeAuthorizationForApplication": { + "deprecated": "octokit.oauthAuthorizations.revokeAuthorizationForApplication() has been renamed to octokit.apps.revokeAuthorizationForApplication() (2019-11-05)", + "method": "DELETE", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/tokens/:access_token" + }, + "revokeGrantForApplication": { + "deprecated": "octokit.oauthAuthorizations.revokeGrantForApplication() has been renamed to octokit.apps.revokeGrantForApplication() (2019-11-05)", + "method": "DELETE", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/grants/:access_token" + } + }, + "checks": { + "create": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "POST", + "params": { + "actions": { "type": "object[]" }, + "actions[].description": { "required": true, "type": "string" }, + "actions[].identifier": { "required": true, "type": "string" }, + "actions[].label": { "required": true, "type": "string" }, + "completed_at": { "type": "string" }, + "conclusion": { + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required" + ], + "type": "string" + }, + "details_url": { "type": "string" }, + "external_id": { "type": "string" }, + "head_sha": { "required": true, "type": "string" }, + "name": { "required": true, "type": "string" }, + "output": { "type": "object" }, + "output.annotations": { "type": "object[]" }, + "output.annotations[].annotation_level": { + "enum": ["notice", "warning", "failure"], + "required": true, + "type": "string" + }, + "output.annotations[].end_column": { "type": "integer" }, + "output.annotations[].end_line": { + "required": true, + "type": "integer" + }, + "output.annotations[].message": { "required": true, "type": "string" }, + "output.annotations[].path": { "required": true, "type": "string" }, + "output.annotations[].raw_details": { "type": "string" }, + "output.annotations[].start_column": { "type": "integer" }, + "output.annotations[].start_line": { + "required": true, + "type": "integer" + }, + "output.annotations[].title": { "type": "string" }, + "output.images": { "type": "object[]" }, + "output.images[].alt": { "required": true, "type": "string" }, + "output.images[].caption": { "type": "string" }, + "output.images[].image_url": { "required": true, "type": "string" }, + "output.summary": { "required": true, "type": "string" }, + "output.text": { "type": "string" }, + "output.title": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "started_at": { "type": "string" }, + "status": { + "enum": ["queued", "in_progress", "completed"], + "type": "string" + } + }, + "url": "/repos/:owner/:repo/check-runs" + }, + "createSuite": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "POST", + "params": { + "head_sha": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/check-suites" + }, + "get": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "GET", + "params": { + "check_run_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/check-runs/:check_run_id" + }, + "getSuite": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "GET", + "params": { + "check_suite_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/check-suites/:check_suite_id" + }, + "listAnnotations": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "GET", + "params": { + "check_run_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/check-runs/:check_run_id/annotations" + }, + "listForRef": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "GET", + "params": { + "check_name": { "type": "string" }, + "filter": { "enum": ["latest", "all"], "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "status": { + "enum": ["queued", "in_progress", "completed"], + "type": "string" + } + }, + "url": "/repos/:owner/:repo/commits/:ref/check-runs" + }, + "listForSuite": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "GET", + "params": { + "check_name": { "type": "string" }, + "check_suite_id": { "required": true, "type": "integer" }, + "filter": { "enum": ["latest", "all"], "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "status": { + "enum": ["queued", "in_progress", "completed"], + "type": "string" + } + }, + "url": "/repos/:owner/:repo/check-suites/:check_suite_id/check-runs" + }, + "listSuitesForRef": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "GET", + "params": { + "app_id": { "type": "integer" }, + "check_name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:ref/check-suites" + }, + "rerequestSuite": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "POST", + "params": { + "check_suite_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/check-suites/:check_suite_id/rerequest" + }, + "setSuitesPreferences": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "PATCH", + "params": { + "auto_trigger_checks": { "type": "object[]" }, + "auto_trigger_checks[].app_id": { "required": true, "type": "integer" }, + "auto_trigger_checks[].setting": { + "required": true, + "type": "boolean" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/check-suites/preferences" + }, + "update": { + "headers": { "accept": "application/vnd.github.antiope-preview+json" }, + "method": "PATCH", + "params": { + "actions": { "type": "object[]" }, + "actions[].description": { "required": true, "type": "string" }, + "actions[].identifier": { "required": true, "type": "string" }, + "actions[].label": { "required": true, "type": "string" }, + "check_run_id": { "required": true, "type": "integer" }, + "completed_at": { "type": "string" }, + "conclusion": { + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required" + ], + "type": "string" + }, + "details_url": { "type": "string" }, + "external_id": { "type": "string" }, + "name": { "type": "string" }, + "output": { "type": "object" }, + "output.annotations": { "type": "object[]" }, + "output.annotations[].annotation_level": { + "enum": ["notice", "warning", "failure"], + "required": true, + "type": "string" + }, + "output.annotations[].end_column": { "type": "integer" }, + "output.annotations[].end_line": { + "required": true, + "type": "integer" + }, + "output.annotations[].message": { "required": true, "type": "string" }, + "output.annotations[].path": { "required": true, "type": "string" }, + "output.annotations[].raw_details": { "type": "string" }, + "output.annotations[].start_column": { "type": "integer" }, + "output.annotations[].start_line": { + "required": true, + "type": "integer" + }, + "output.annotations[].title": { "type": "string" }, + "output.images": { "type": "object[]" }, + "output.images[].alt": { "required": true, "type": "string" }, + "output.images[].caption": { "type": "string" }, + "output.images[].image_url": { "required": true, "type": "string" }, + "output.summary": { "required": true, "type": "string" }, + "output.text": { "type": "string" }, + "output.title": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "started_at": { "type": "string" }, + "status": { + "enum": ["queued", "in_progress", "completed"], + "type": "string" + } + }, + "url": "/repos/:owner/:repo/check-runs/:check_run_id" + } + }, + "codesOfConduct": { + "getConductCode": { + "headers": { + "accept": "application/vnd.github.scarlet-witch-preview+json" + }, + "method": "GET", + "params": { "key": { "required": true, "type": "string" } }, + "url": "/codes_of_conduct/:key" + }, + "getForRepo": { + "headers": { + "accept": "application/vnd.github.scarlet-witch-preview+json" + }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/community/code_of_conduct" + }, + "listConductCodes": { + "headers": { + "accept": "application/vnd.github.scarlet-witch-preview+json" + }, + "method": "GET", + "params": {}, + "url": "/codes_of_conduct" + } + }, + "emojis": { "get": { "method": "GET", "params": {}, "url": "/emojis" } }, + "gists": { + "checkIsStarred": { + "method": "GET", + "params": { "gist_id": { "required": true, "type": "string" } }, + "url": "/gists/:gist_id/star" + }, + "create": { + "method": "POST", + "params": { + "description": { "type": "string" }, + "files": { "required": true, "type": "object" }, + "files.content": { "type": "string" }, + "public": { "type": "boolean" } + }, + "url": "/gists" + }, + "createComment": { + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "gist_id": { "required": true, "type": "string" } + }, + "url": "/gists/:gist_id/comments" + }, + "delete": { + "method": "DELETE", + "params": { "gist_id": { "required": true, "type": "string" } }, + "url": "/gists/:gist_id" + }, + "deleteComment": { + "method": "DELETE", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "gist_id": { "required": true, "type": "string" } + }, + "url": "/gists/:gist_id/comments/:comment_id" + }, + "fork": { + "method": "POST", + "params": { "gist_id": { "required": true, "type": "string" } }, + "url": "/gists/:gist_id/forks" + }, + "get": { + "method": "GET", + "params": { "gist_id": { "required": true, "type": "string" } }, + "url": "/gists/:gist_id" + }, + "getComment": { + "method": "GET", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "gist_id": { "required": true, "type": "string" } + }, + "url": "/gists/:gist_id/comments/:comment_id" + }, + "getRevision": { + "method": "GET", + "params": { + "gist_id": { "required": true, "type": "string" }, + "sha": { "required": true, "type": "string" } + }, + "url": "/gists/:gist_id/:sha" + }, + "list": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" } + }, + "url": "/gists" + }, + "listComments": { + "method": "GET", + "params": { + "gist_id": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/gists/:gist_id/comments" + }, + "listCommits": { + "method": "GET", + "params": { + "gist_id": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/gists/:gist_id/commits" + }, + "listForks": { + "method": "GET", + "params": { + "gist_id": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/gists/:gist_id/forks" + }, + "listPublic": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" } + }, + "url": "/gists/public" + }, + "listPublicForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/gists" + }, + "listStarred": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" } + }, + "url": "/gists/starred" + }, + "star": { + "method": "PUT", + "params": { "gist_id": { "required": true, "type": "string" } }, + "url": "/gists/:gist_id/star" + }, + "unstar": { + "method": "DELETE", + "params": { "gist_id": { "required": true, "type": "string" } }, + "url": "/gists/:gist_id/star" + }, + "update": { + "method": "PATCH", + "params": { + "description": { "type": "string" }, + "files": { "type": "object" }, + "files.content": { "type": "string" }, + "files.filename": { "type": "string" }, + "gist_id": { "required": true, "type": "string" } + }, + "url": "/gists/:gist_id" + }, + "updateComment": { + "method": "PATCH", + "params": { + "body": { "required": true, "type": "string" }, + "comment_id": { "required": true, "type": "integer" }, + "gist_id": { "required": true, "type": "string" } + }, + "url": "/gists/:gist_id/comments/:comment_id" + } + }, + "git": { + "createBlob": { + "method": "POST", + "params": { + "content": { "required": true, "type": "string" }, + "encoding": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/blobs" + }, + "createCommit": { + "method": "POST", + "params": { + "author": { "type": "object" }, + "author.date": { "type": "string" }, + "author.email": { "type": "string" }, + "author.name": { "type": "string" }, + "committer": { "type": "object" }, + "committer.date": { "type": "string" }, + "committer.email": { "type": "string" }, + "committer.name": { "type": "string" }, + "message": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "parents": { "required": true, "type": "string[]" }, + "repo": { "required": true, "type": "string" }, + "signature": { "type": "string" }, + "tree": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/commits" + }, + "createRef": { + "method": "POST", + "params": { + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/refs" + }, + "createTag": { + "method": "POST", + "params": { + "message": { "required": true, "type": "string" }, + "object": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "tag": { "required": true, "type": "string" }, + "tagger": { "type": "object" }, + "tagger.date": { "type": "string" }, + "tagger.email": { "type": "string" }, + "tagger.name": { "type": "string" }, + "type": { + "enum": ["commit", "tree", "blob"], + "required": true, + "type": "string" + } + }, + "url": "/repos/:owner/:repo/git/tags" + }, + "createTree": { + "method": "POST", + "params": { + "base_tree": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "tree": { "required": true, "type": "object[]" }, + "tree[].content": { "type": "string" }, + "tree[].mode": { + "enum": ["100644", "100755", "040000", "160000", "120000"], + "type": "string" + }, + "tree[].path": { "type": "string" }, + "tree[].sha": { "allowNull": true, "type": "string" }, + "tree[].type": { "enum": ["blob", "tree", "commit"], "type": "string" } + }, + "url": "/repos/:owner/:repo/git/trees" + }, + "deleteRef": { + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/refs/:ref" + }, + "getBlob": { + "method": "GET", + "params": { + "file_sha": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/blobs/:file_sha" + }, + "getCommit": { + "method": "GET", + "params": { + "commit_sha": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/commits/:commit_sha" + }, + "getRef": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/ref/:ref" + }, + "getTag": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "tag_sha": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/tags/:tag_sha" + }, + "getTree": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "recursive": { "enum": ["1"], "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "tree_sha": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/trees/:tree_sha" + }, + "listMatchingRefs": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/matching-refs/:ref" + }, + "listRefs": { + "method": "GET", + "params": { + "namespace": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/refs/:namespace" + }, + "updateRef": { + "method": "PATCH", + "params": { + "force": { "type": "boolean" }, + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/git/refs/:ref" + } + }, + "gitignore": { + "getTemplate": { + "method": "GET", + "params": { "name": { "required": true, "type": "string" } }, + "url": "/gitignore/templates/:name" + }, + "listTemplates": { + "method": "GET", + "params": {}, + "url": "/gitignore/templates" + } + }, + "interactions": { + "addOrUpdateRestrictionsForOrg": { + "headers": { "accept": "application/vnd.github.sombra-preview+json" }, + "method": "PUT", + "params": { + "limit": { + "enum": ["existing_users", "contributors_only", "collaborators_only"], + "required": true, + "type": "string" + }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/interaction-limits" + }, + "addOrUpdateRestrictionsForRepo": { + "headers": { "accept": "application/vnd.github.sombra-preview+json" }, + "method": "PUT", + "params": { + "limit": { + "enum": ["existing_users", "contributors_only", "collaborators_only"], + "required": true, + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/interaction-limits" + }, + "getRestrictionsForOrg": { + "headers": { "accept": "application/vnd.github.sombra-preview+json" }, + "method": "GET", + "params": { "org": { "required": true, "type": "string" } }, + "url": "/orgs/:org/interaction-limits" + }, + "getRestrictionsForRepo": { + "headers": { "accept": "application/vnd.github.sombra-preview+json" }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/interaction-limits" + }, + "removeRestrictionsForOrg": { + "headers": { "accept": "application/vnd.github.sombra-preview+json" }, + "method": "DELETE", + "params": { "org": { "required": true, "type": "string" } }, + "url": "/orgs/:org/interaction-limits" + }, + "removeRestrictionsForRepo": { + "headers": { "accept": "application/vnd.github.sombra-preview+json" }, + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/interaction-limits" + } + }, + "issues": { + "addAssignees": { + "method": "POST", + "params": { + "assignees": { "type": "string[]" }, + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/assignees" + }, + "addLabels": { + "method": "POST", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "labels": { "required": true, "type": "string[]" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/labels" + }, + "checkAssignee": { + "method": "GET", + "params": { + "assignee": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/assignees/:assignee" + }, + "create": { + "method": "POST", + "params": { + "assignee": { "type": "string" }, + "assignees": { "type": "string[]" }, + "body": { "type": "string" }, + "labels": { "type": "string[]" }, + "milestone": { "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "title": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues" + }, + "createComment": { + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/comments" + }, + "createLabel": { + "method": "POST", + "params": { + "color": { "required": true, "type": "string" }, + "description": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/labels" + }, + "createMilestone": { + "method": "POST", + "params": { + "description": { "type": "string" }, + "due_on": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "state": { "enum": ["open", "closed"], "type": "string" }, + "title": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/milestones" + }, + "deleteComment": { + "method": "DELETE", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/comments/:comment_id" + }, + "deleteLabel": { + "method": "DELETE", + "params": { + "name": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/labels/:name" + }, + "deleteMilestone": { + "method": "DELETE", + "params": { + "milestone_number": { "required": true, "type": "integer" }, + "number": { + "alias": "milestone_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/milestones/:milestone_number" + }, + "get": { + "method": "GET", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number" + }, + "getComment": { + "method": "GET", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/comments/:comment_id" + }, + "getEvent": { + "method": "GET", + "params": { + "event_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/events/:event_id" + }, + "getLabel": { + "method": "GET", + "params": { + "name": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/labels/:name" + }, + "getMilestone": { + "method": "GET", + "params": { + "milestone_number": { "required": true, "type": "integer" }, + "number": { + "alias": "milestone_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/milestones/:milestone_number" + }, + "list": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "filter": { + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "type": "string" + }, + "labels": { "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" }, + "sort": { + "enum": ["created", "updated", "comments"], + "type": "string" + }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/issues" + }, + "listAssignees": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/assignees" + }, + "listComments": { + "method": "GET", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "since": { "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/comments" + }, + "listCommentsForRepo": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "since": { "type": "string" }, + "sort": { "enum": ["created", "updated"], "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/comments" + }, + "listEvents": { + "method": "GET", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/events" + }, + "listEventsForRepo": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/events" + }, + "listEventsForTimeline": { + "headers": { + "accept": "application/vnd.github.mockingbird-preview+json" + }, + "method": "GET", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/timeline" + }, + "listForAuthenticatedUser": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "filter": { + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "type": "string" + }, + "labels": { "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" }, + "sort": { + "enum": ["created", "updated", "comments"], + "type": "string" + }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/user/issues" + }, + "listForOrg": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "filter": { + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "type": "string" + }, + "labels": { "type": "string" }, + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" }, + "sort": { + "enum": ["created", "updated", "comments"], + "type": "string" + }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/orgs/:org/issues" + }, + "listForRepo": { + "method": "GET", + "params": { + "assignee": { "type": "string" }, + "creator": { "type": "string" }, + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "labels": { "type": "string" }, + "mentioned": { "type": "string" }, + "milestone": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "since": { "type": "string" }, + "sort": { + "enum": ["created", "updated", "comments"], + "type": "string" + }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/repos/:owner/:repo/issues" + }, + "listLabelsForMilestone": { + "method": "GET", + "params": { + "milestone_number": { "required": true, "type": "integer" }, + "number": { + "alias": "milestone_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/milestones/:milestone_number/labels" + }, + "listLabelsForRepo": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/labels" + }, + "listLabelsOnIssue": { + "method": "GET", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/labels" + }, + "listMilestonesForRepo": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "sort": { "enum": ["due_on", "completeness"], "type": "string" }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/repos/:owner/:repo/milestones" + }, + "lock": { + "method": "PUT", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "lock_reason": { + "enum": ["off-topic", "too heated", "resolved", "spam"], + "type": "string" + }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/lock" + }, + "removeAssignees": { + "method": "DELETE", + "params": { + "assignees": { "type": "string[]" }, + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/assignees" + }, + "removeLabel": { + "method": "DELETE", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "name": { "required": true, "type": "string" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/labels/:name" + }, + "removeLabels": { + "method": "DELETE", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/labels" + }, + "replaceLabels": { + "method": "PUT", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "labels": { "type": "string[]" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/labels" + }, + "unlock": { + "method": "DELETE", + "params": { + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/lock" + }, + "update": { + "method": "PATCH", + "params": { + "assignee": { "type": "string" }, + "assignees": { "type": "string[]" }, + "body": { "type": "string" }, + "issue_number": { "required": true, "type": "integer" }, + "labels": { "type": "string[]" }, + "milestone": { "allowNull": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "state": { "enum": ["open", "closed"], "type": "string" }, + "title": { "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number" + }, + "updateComment": { + "method": "PATCH", + "params": { + "body": { "required": true, "type": "string" }, + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/comments/:comment_id" + }, + "updateLabel": { + "method": "PATCH", + "params": { + "color": { "type": "string" }, + "current_name": { "required": true, "type": "string" }, + "description": { "type": "string" }, + "name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/labels/:current_name" + }, + "updateMilestone": { + "method": "PATCH", + "params": { + "description": { "type": "string" }, + "due_on": { "type": "string" }, + "milestone_number": { "required": true, "type": "integer" }, + "number": { + "alias": "milestone_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "state": { "enum": ["open", "closed"], "type": "string" }, + "title": { "type": "string" } + }, + "url": "/repos/:owner/:repo/milestones/:milestone_number" + } + }, + "licenses": { + "get": { + "method": "GET", + "params": { "license": { "required": true, "type": "string" } }, + "url": "/licenses/:license" + }, + "getForRepo": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/license" + }, + "list": { + "deprecated": "octokit.licenses.list() has been renamed to octokit.licenses.listCommonlyUsed() (2019-03-05)", + "method": "GET", + "params": {}, + "url": "/licenses" + }, + "listCommonlyUsed": { "method": "GET", "params": {}, "url": "/licenses" } + }, + "markdown": { + "render": { + "method": "POST", + "params": { + "context": { "type": "string" }, + "mode": { "enum": ["markdown", "gfm"], "type": "string" }, + "text": { "required": true, "type": "string" } + }, + "url": "/markdown" + }, + "renderRaw": { + "headers": { "content-type": "text/plain; charset=utf-8" }, + "method": "POST", + "params": { + "data": { "mapTo": "data", "required": true, "type": "string" } + }, + "url": "/markdown/raw" + } + }, + "meta": { "get": { "method": "GET", "params": {}, "url": "/meta" } }, + "migrations": { + "cancelImport": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/import" + }, + "deleteArchiveForAuthenticatedUser": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "DELETE", + "params": { "migration_id": { "required": true, "type": "integer" } }, + "url": "/user/migrations/:migration_id/archive" + }, + "deleteArchiveForOrg": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "DELETE", + "params": { + "migration_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/migrations/:migration_id/archive" + }, + "getArchiveForAuthenticatedUser": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "GET", + "params": { "migration_id": { "required": true, "type": "integer" } }, + "url": "/user/migrations/:migration_id/archive" + }, + "getArchiveForOrg": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "GET", + "params": { + "migration_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/migrations/:migration_id/archive" + }, + "getCommitAuthors": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "since": { "type": "string" } + }, + "url": "/repos/:owner/:repo/import/authors" + }, + "getImportProgress": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/import" + }, + "getLargeFiles": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/import/large_files" + }, + "getStatusForAuthenticatedUser": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "GET", + "params": { "migration_id": { "required": true, "type": "integer" } }, + "url": "/user/migrations/:migration_id" + }, + "getStatusForOrg": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "GET", + "params": { + "migration_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/migrations/:migration_id" + }, + "listForAuthenticatedUser": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/migrations" + }, + "listForOrg": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/migrations" + }, + "mapCommitAuthor": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "PATCH", + "params": { + "author_id": { "required": true, "type": "integer" }, + "email": { "type": "string" }, + "name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/import/authors/:author_id" + }, + "setLfsPreference": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "PATCH", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "use_lfs": { + "enum": ["opt_in", "opt_out"], + "required": true, + "type": "string" + } + }, + "url": "/repos/:owner/:repo/import/lfs" + }, + "startForAuthenticatedUser": { + "method": "POST", + "params": { + "exclude_attachments": { "type": "boolean" }, + "lock_repositories": { "type": "boolean" }, + "repositories": { "required": true, "type": "string[]" } + }, + "url": "/user/migrations" + }, + "startForOrg": { + "method": "POST", + "params": { + "exclude_attachments": { "type": "boolean" }, + "lock_repositories": { "type": "boolean" }, + "org": { "required": true, "type": "string" }, + "repositories": { "required": true, "type": "string[]" } + }, + "url": "/orgs/:org/migrations" + }, + "startImport": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "PUT", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "tfvc_project": { "type": "string" }, + "vcs": { + "enum": ["subversion", "git", "mercurial", "tfvc"], + "type": "string" + }, + "vcs_password": { "type": "string" }, + "vcs_url": { "required": true, "type": "string" }, + "vcs_username": { "type": "string" } + }, + "url": "/repos/:owner/:repo/import" + }, + "unlockRepoForAuthenticatedUser": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "DELETE", + "params": { + "migration_id": { "required": true, "type": "integer" }, + "repo_name": { "required": true, "type": "string" } + }, + "url": "/user/migrations/:migration_id/repos/:repo_name/lock" + }, + "unlockRepoForOrg": { + "headers": { "accept": "application/vnd.github.wyandotte-preview+json" }, + "method": "DELETE", + "params": { + "migration_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" }, + "repo_name": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/migrations/:migration_id/repos/:repo_name/lock" + }, + "updateImport": { + "headers": { + "accept": "application/vnd.github.barred-rock-preview+json" + }, + "method": "PATCH", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "vcs_password": { "type": "string" }, + "vcs_username": { "type": "string" } + }, + "url": "/repos/:owner/:repo/import" + } + }, + "oauthAuthorizations": { + "checkAuthorization": { + "deprecated": "octokit.oauthAuthorizations.checkAuthorization() has been renamed to octokit.apps.checkAuthorization() (2019-11-05)", + "method": "GET", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/tokens/:access_token" + }, + "createAuthorization": { + "deprecated": "octokit.oauthAuthorizations.createAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization", + "method": "POST", + "params": { + "client_id": { "type": "string" }, + "client_secret": { "type": "string" }, + "fingerprint": { "type": "string" }, + "note": { "required": true, "type": "string" }, + "note_url": { "type": "string" }, + "scopes": { "type": "string[]" } + }, + "url": "/authorizations" + }, + "deleteAuthorization": { + "deprecated": "octokit.oauthAuthorizations.deleteAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#delete-an-authorization", + "method": "DELETE", + "params": { "authorization_id": { "required": true, "type": "integer" } }, + "url": "/authorizations/:authorization_id" + }, + "deleteGrant": { + "deprecated": "octokit.oauthAuthorizations.deleteGrant() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#delete-a-grant", + "method": "DELETE", + "params": { "grant_id": { "required": true, "type": "integer" } }, + "url": "/applications/grants/:grant_id" + }, + "getAuthorization": { + "deprecated": "octokit.oauthAuthorizations.getAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-a-single-authorization", + "method": "GET", + "params": { "authorization_id": { "required": true, "type": "integer" } }, + "url": "/authorizations/:authorization_id" + }, + "getGrant": { + "deprecated": "octokit.oauthAuthorizations.getGrant() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-a-single-grant", + "method": "GET", + "params": { "grant_id": { "required": true, "type": "integer" } }, + "url": "/applications/grants/:grant_id" + }, + "getOrCreateAuthorizationForApp": { + "deprecated": "octokit.oauthAuthorizations.getOrCreateAuthorizationForApp() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app", + "method": "PUT", + "params": { + "client_id": { "required": true, "type": "string" }, + "client_secret": { "required": true, "type": "string" }, + "fingerprint": { "type": "string" }, + "note": { "type": "string" }, + "note_url": { "type": "string" }, + "scopes": { "type": "string[]" } + }, + "url": "/authorizations/clients/:client_id" + }, + "getOrCreateAuthorizationForAppAndFingerprint": { + "deprecated": "octokit.oauthAuthorizations.getOrCreateAuthorizationForAppAndFingerprint() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint", + "method": "PUT", + "params": { + "client_id": { "required": true, "type": "string" }, + "client_secret": { "required": true, "type": "string" }, + "fingerprint": { "required": true, "type": "string" }, + "note": { "type": "string" }, + "note_url": { "type": "string" }, + "scopes": { "type": "string[]" } + }, + "url": "/authorizations/clients/:client_id/:fingerprint" + }, + "getOrCreateAuthorizationForAppFingerprint": { + "deprecated": "octokit.oauthAuthorizations.getOrCreateAuthorizationForAppFingerprint() has been renamed to octokit.oauthAuthorizations.getOrCreateAuthorizationForAppAndFingerprint() (2018-12-27)", + "method": "PUT", + "params": { + "client_id": { "required": true, "type": "string" }, + "client_secret": { "required": true, "type": "string" }, + "fingerprint": { "required": true, "type": "string" }, + "note": { "type": "string" }, + "note_url": { "type": "string" }, + "scopes": { "type": "string[]" } + }, + "url": "/authorizations/clients/:client_id/:fingerprint" + }, + "listAuthorizations": { + "deprecated": "octokit.oauthAuthorizations.listAuthorizations() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#list-your-authorizations", + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/authorizations" + }, + "listGrants": { + "deprecated": "octokit.oauthAuthorizations.listGrants() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#list-your-grants", + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/applications/grants" + }, + "resetAuthorization": { + "deprecated": "octokit.oauthAuthorizations.resetAuthorization() has been renamed to octokit.apps.resetAuthorization() (2019-11-05)", + "method": "POST", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/tokens/:access_token" + }, + "revokeAuthorizationForApplication": { + "deprecated": "octokit.oauthAuthorizations.revokeAuthorizationForApplication() has been renamed to octokit.apps.revokeAuthorizationForApplication() (2019-11-05)", + "method": "DELETE", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/tokens/:access_token" + }, + "revokeGrantForApplication": { + "deprecated": "octokit.oauthAuthorizations.revokeGrantForApplication() has been renamed to octokit.apps.revokeGrantForApplication() (2019-11-05)", + "method": "DELETE", + "params": { + "access_token": { "required": true, "type": "string" }, + "client_id": { "required": true, "type": "string" } + }, + "url": "/applications/:client_id/grants/:access_token" + }, + "updateAuthorization": { + "deprecated": "octokit.oauthAuthorizations.updateAuthorization() is deprecated, see https://developer.github.com/v3/oauth_authorizations/#update-an-existing-authorization", + "method": "PATCH", + "params": { + "add_scopes": { "type": "string[]" }, + "authorization_id": { "required": true, "type": "integer" }, + "fingerprint": { "type": "string" }, + "note": { "type": "string" }, + "note_url": { "type": "string" }, + "remove_scopes": { "type": "string[]" }, + "scopes": { "type": "string[]" } + }, + "url": "/authorizations/:authorization_id" + } + }, + "orgs": { + "addOrUpdateMembership": { + "method": "PUT", + "params": { + "org": { "required": true, "type": "string" }, + "role": { "enum": ["admin", "member"], "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/memberships/:username" + }, + "blockUser": { + "method": "PUT", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/blocks/:username" + }, + "checkBlockedUser": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/blocks/:username" + }, + "checkMembership": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/members/:username" + }, + "checkPublicMembership": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/public_members/:username" + }, + "concealMembership": { + "method": "DELETE", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/public_members/:username" + }, + "convertMemberToOutsideCollaborator": { + "method": "PUT", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/outside_collaborators/:username" + }, + "createHook": { + "method": "POST", + "params": { + "active": { "type": "boolean" }, + "config": { "required": true, "type": "object" }, + "config.content_type": { "type": "string" }, + "config.insecure_ssl": { "type": "string" }, + "config.secret": { "type": "string" }, + "config.url": { "required": true, "type": "string" }, + "events": { "type": "string[]" }, + "name": { "required": true, "type": "string" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/hooks" + }, + "createInvitation": { + "method": "POST", + "params": { + "email": { "type": "string" }, + "invitee_id": { "type": "integer" }, + "org": { "required": true, "type": "string" }, + "role": { + "enum": ["admin", "direct_member", "billing_manager"], + "type": "string" + }, + "team_ids": { "type": "integer[]" } + }, + "url": "/orgs/:org/invitations" + }, + "deleteHook": { + "method": "DELETE", + "params": { + "hook_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/hooks/:hook_id" + }, + "get": { + "method": "GET", + "params": { "org": { "required": true, "type": "string" } }, + "url": "/orgs/:org" + }, + "getHook": { + "method": "GET", + "params": { + "hook_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/hooks/:hook_id" + }, + "getMembership": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/memberships/:username" + }, + "getMembershipForAuthenticatedUser": { + "method": "GET", + "params": { "org": { "required": true, "type": "string" } }, + "url": "/user/memberships/orgs/:org" + }, + "list": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" } + }, + "url": "/organizations" + }, + "listBlockedUsers": { + "method": "GET", + "params": { "org": { "required": true, "type": "string" } }, + "url": "/orgs/:org/blocks" + }, + "listForAuthenticatedUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/orgs" + }, + "listForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/orgs" + }, + "listHooks": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/hooks" + }, + "listInstallations": { + "headers": { + "accept": "application/vnd.github.machine-man-preview+json" + }, + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/installations" + }, + "listInvitationTeams": { + "method": "GET", + "params": { + "invitation_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/invitations/:invitation_id/teams" + }, + "listMembers": { + "method": "GET", + "params": { + "filter": { "enum": ["2fa_disabled", "all"], "type": "string" }, + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "role": { "enum": ["all", "admin", "member"], "type": "string" } + }, + "url": "/orgs/:org/members" + }, + "listMemberships": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "state": { "enum": ["active", "pending"], "type": "string" } + }, + "url": "/user/memberships/orgs" + }, + "listOutsideCollaborators": { + "method": "GET", + "params": { + "filter": { "enum": ["2fa_disabled", "all"], "type": "string" }, + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/outside_collaborators" + }, + "listPendingInvitations": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/invitations" + }, + "listPublicMembers": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/public_members" + }, + "pingHook": { + "method": "POST", + "params": { + "hook_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/hooks/:hook_id/pings" + }, + "publicizeMembership": { + "method": "PUT", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/public_members/:username" + }, + "removeMember": { + "method": "DELETE", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/members/:username" + }, + "removeMembership": { + "method": "DELETE", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/memberships/:username" + }, + "removeOutsideCollaborator": { + "method": "DELETE", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/outside_collaborators/:username" + }, + "unblockUser": { + "method": "DELETE", + "params": { + "org": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/blocks/:username" + }, + "update": { + "method": "PATCH", + "params": { + "billing_email": { "type": "string" }, + "company": { "type": "string" }, + "default_repository_permission": { + "enum": ["read", "write", "admin", "none"], + "type": "string" + }, + "description": { "type": "string" }, + "email": { "type": "string" }, + "has_organization_projects": { "type": "boolean" }, + "has_repository_projects": { "type": "boolean" }, + "location": { "type": "string" }, + "members_allowed_repository_creation_type": { + "enum": ["all", "private", "none"], + "type": "string" + }, + "members_can_create_repositories": { "type": "boolean" }, + "name": { "type": "string" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org" + }, + "updateHook": { + "method": "PATCH", + "params": { + "active": { "type": "boolean" }, + "config": { "type": "object" }, + "config.content_type": { "type": "string" }, + "config.insecure_ssl": { "type": "string" }, + "config.secret": { "type": "string" }, + "config.url": { "required": true, "type": "string" }, + "events": { "type": "string[]" }, + "hook_id": { "required": true, "type": "integer" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/hooks/:hook_id" + }, + "updateMembership": { + "method": "PATCH", + "params": { + "org": { "required": true, "type": "string" }, + "state": { "enum": ["active"], "required": true, "type": "string" } + }, + "url": "/user/memberships/orgs/:org" + } + }, + "projects": { + "addCollaborator": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "PUT", + "params": { + "permission": { "enum": ["read", "write", "admin"], "type": "string" }, + "project_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/projects/:project_id/collaborators/:username" + }, + "createCard": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "POST", + "params": { + "column_id": { "required": true, "type": "integer" }, + "content_id": { "type": "integer" }, + "content_type": { "type": "string" }, + "note": { "type": "string" } + }, + "url": "/projects/columns/:column_id/cards" + }, + "createColumn": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "POST", + "params": { + "name": { "required": true, "type": "string" }, + "project_id": { "required": true, "type": "integer" } + }, + "url": "/projects/:project_id/columns" + }, + "createForAuthenticatedUser": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "POST", + "params": { + "body": { "type": "string" }, + "name": { "required": true, "type": "string" } + }, + "url": "/user/projects" + }, + "createForOrg": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "POST", + "params": { + "body": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "org": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/projects" + }, + "createForRepo": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "POST", + "params": { + "body": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/projects" + }, + "delete": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "DELETE", + "params": { "project_id": { "required": true, "type": "integer" } }, + "url": "/projects/:project_id" + }, + "deleteCard": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "DELETE", + "params": { "card_id": { "required": true, "type": "integer" } }, + "url": "/projects/columns/cards/:card_id" + }, + "deleteColumn": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "DELETE", + "params": { "column_id": { "required": true, "type": "integer" } }, + "url": "/projects/columns/:column_id" + }, + "get": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "project_id": { "required": true, "type": "integer" } + }, + "url": "/projects/:project_id" + }, + "getCard": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { "card_id": { "required": true, "type": "integer" } }, + "url": "/projects/columns/cards/:card_id" + }, + "getColumn": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { "column_id": { "required": true, "type": "integer" } }, + "url": "/projects/columns/:column_id" + }, + "listCards": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "archived_state": { + "enum": ["all", "archived", "not_archived"], + "type": "string" + }, + "column_id": { "required": true, "type": "integer" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/projects/columns/:column_id/cards" + }, + "listCollaborators": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "affiliation": { + "enum": ["outside", "direct", "all"], + "type": "string" + }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "project_id": { "required": true, "type": "integer" } + }, + "url": "/projects/:project_id/collaborators" + }, + "listColumns": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "project_id": { "required": true, "type": "integer" } + }, + "url": "/projects/:project_id/columns" + }, + "listForOrg": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/orgs/:org/projects" + }, + "listForRepo": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/repos/:owner/:repo/projects" + }, + "listForUser": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "state": { "enum": ["open", "closed", "all"], "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/projects" + }, + "moveCard": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "POST", + "params": { + "card_id": { "required": true, "type": "integer" }, + "column_id": { "type": "integer" }, + "position": { + "required": true, + "type": "string", + "validation": "^(top|bottom|after:\\d+)$" + } + }, + "url": "/projects/columns/cards/:card_id/moves" + }, + "moveColumn": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "POST", + "params": { + "column_id": { "required": true, "type": "integer" }, + "position": { + "required": true, + "type": "string", + "validation": "^(first|last|after:\\d+)$" + } + }, + "url": "/projects/columns/:column_id/moves" + }, + "removeCollaborator": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "DELETE", + "params": { + "project_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/projects/:project_id/collaborators/:username" + }, + "reviewUserPermissionLevel": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "project_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/projects/:project_id/collaborators/:username/permission" + }, + "update": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "PATCH", + "params": { + "body": { "type": "string" }, + "name": { "type": "string" }, + "organization_permission": { "type": "string" }, + "private": { "type": "boolean" }, + "project_id": { "required": true, "type": "integer" }, + "state": { "enum": ["open", "closed"], "type": "string" } + }, + "url": "/projects/:project_id" + }, + "updateCard": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "PATCH", + "params": { + "archived": { "type": "boolean" }, + "card_id": { "required": true, "type": "integer" }, + "note": { "type": "string" } + }, + "url": "/projects/columns/cards/:card_id" + }, + "updateColumn": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "PATCH", + "params": { + "column_id": { "required": true, "type": "integer" }, + "name": { "required": true, "type": "string" } + }, + "url": "/projects/columns/:column_id" + } + }, + "pulls": { + "checkIfMerged": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/merge" + }, + "create": { + "method": "POST", + "params": { + "base": { "required": true, "type": "string" }, + "body": { "type": "string" }, + "draft": { "type": "boolean" }, + "head": { "required": true, "type": "string" }, + "maintainer_can_modify": { "type": "boolean" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "title": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls" + }, + "createComment": { + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "commit_id": { "required": true, "type": "string" }, + "in_reply_to": { + "deprecated": true, + "description": "The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.", + "type": "integer" + }, + "line": { "type": "integer" }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "path": { "required": true, "type": "string" }, + "position": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "side": { "enum": ["LEFT", "RIGHT"], "type": "string" }, + "start_line": { "type": "integer" }, + "start_side": { "enum": ["LEFT", "RIGHT", "side"], "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/comments" + }, + "createCommentReply": { + "deprecated": "octokit.pulls.createCommentReply() has been renamed to octokit.pulls.createComment() (2019-09-09)", + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "commit_id": { "required": true, "type": "string" }, + "in_reply_to": { + "deprecated": true, + "description": "The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.", + "type": "integer" + }, + "line": { "type": "integer" }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "path": { "required": true, "type": "string" }, + "position": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "side": { "enum": ["LEFT", "RIGHT"], "type": "string" }, + "start_line": { "type": "integer" }, + "start_side": { "enum": ["LEFT", "RIGHT", "side"], "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/comments" + }, + "createFromIssue": { + "deprecated": "octokit.pulls.createFromIssue() is deprecated, see https://developer.github.com/v3/pulls/#create-a-pull-request", + "method": "POST", + "params": { + "base": { "required": true, "type": "string" }, + "draft": { "type": "boolean" }, + "head": { "required": true, "type": "string" }, + "issue": { "required": true, "type": "integer" }, + "maintainer_can_modify": { "type": "boolean" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls" + }, + "createReview": { + "method": "POST", + "params": { + "body": { "type": "string" }, + "comments": { "type": "object[]" }, + "comments[].body": { "required": true, "type": "string" }, + "comments[].path": { "required": true, "type": "string" }, + "comments[].position": { "required": true, "type": "integer" }, + "commit_id": { "type": "string" }, + "event": { + "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"], + "type": "string" + }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews" + }, + "createReviewCommentReply": { + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies" + }, + "createReviewRequest": { + "method": "POST", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "reviewers": { "type": "string[]" }, + "team_reviewers": { "type": "string[]" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers" + }, + "deleteComment": { + "method": "DELETE", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/comments/:comment_id" + }, + "deletePendingReview": { + "method": "DELETE", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "review_id": { "required": true, "type": "integer" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id" + }, + "deleteReviewRequest": { + "method": "DELETE", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "reviewers": { "type": "string[]" }, + "team_reviewers": { "type": "string[]" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers" + }, + "dismissReview": { + "method": "PUT", + "params": { + "message": { "required": true, "type": "string" }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "review_id": { "required": true, "type": "integer" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/dismissals" + }, + "get": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number" + }, + "getComment": { + "method": "GET", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/comments/:comment_id" + }, + "getCommentsForReview": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "review_id": { "required": true, "type": "integer" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/comments" + }, + "getReview": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "review_id": { "required": true, "type": "integer" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id" + }, + "list": { + "method": "GET", + "params": { + "base": { "type": "string" }, + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "head": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "sort": { + "enum": ["created", "updated", "popularity", "long-running"], + "type": "string" + }, + "state": { "enum": ["open", "closed", "all"], "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls" + }, + "listComments": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "since": { "type": "string" }, + "sort": { "enum": ["created", "updated"], "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/comments" + }, + "listCommentsForRepo": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "since": { "type": "string" }, + "sort": { "enum": ["created", "updated"], "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/comments" + }, + "listCommits": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/commits" + }, + "listFiles": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/files" + }, + "listReviewRequests": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/requested_reviewers" + }, + "listReviews": { + "method": "GET", + "params": { + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews" + }, + "merge": { + "method": "PUT", + "params": { + "commit_message": { "type": "string" }, + "commit_title": { "type": "string" }, + "merge_method": { + "enum": ["merge", "squash", "rebase"], + "type": "string" + }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "sha": { "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/merge" + }, + "submitReview": { + "method": "POST", + "params": { + "body": { "type": "string" }, + "event": { + "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"], + "required": true, + "type": "string" + }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "review_id": { "required": true, "type": "integer" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/events" + }, + "update": { + "method": "PATCH", + "params": { + "base": { "type": "string" }, + "body": { "type": "string" }, + "maintainer_can_modify": { "type": "boolean" }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "state": { "enum": ["open", "closed"], "type": "string" }, + "title": { "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number" + }, + "updateBranch": { + "headers": { "accept": "application/vnd.github.lydian-preview+json" }, + "method": "PUT", + "params": { + "expected_head_sha": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/update-branch" + }, + "updateComment": { + "method": "PATCH", + "params": { + "body": { "required": true, "type": "string" }, + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/comments/:comment_id" + }, + "updateReview": { + "method": "PUT", + "params": { + "body": { "required": true, "type": "string" }, + "number": { + "alias": "pull_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "pull_number": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "review_id": { "required": true, "type": "integer" } + }, + "url": "/repos/:owner/:repo/pulls/:pull_number/reviews/:review_id" + } + }, + "rateLimit": { + "get": { "method": "GET", "params": {}, "url": "/rate_limit" } + }, + "reactions": { + "createForCommitComment": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "POST", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "required": true, + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/comments/:comment_id/reactions" + }, + "createForIssue": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "POST", + "params": { + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "required": true, + "type": "string" + }, + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/reactions" + }, + "createForIssueComment": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "POST", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "required": true, + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/comments/:comment_id/reactions" + }, + "createForPullRequestReviewComment": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "POST", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "required": true, + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/comments/:comment_id/reactions" + }, + "createForTeamDiscussion": { + "headers": { + "accept": "application/vnd.github.echo-preview+json,application/vnd.github.squirrel-girl-preview+json" + }, + "method": "POST", + "params": { + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "required": true, + "type": "string" + }, + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/reactions" + }, + "createForTeamDiscussionComment": { + "headers": { + "accept": "application/vnd.github.echo-preview+json,application/vnd.github.squirrel-girl-preview+json" + }, + "method": "POST", + "params": { + "comment_number": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "required": true, + "type": "string" + }, + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions" + }, + "delete": { + "headers": { + "accept": "application/vnd.github.echo-preview+json,application/vnd.github.squirrel-girl-preview+json" + }, + "method": "DELETE", + "params": { "reaction_id": { "required": true, "type": "integer" } }, + "url": "/reactions/:reaction_id" + }, + "listForCommitComment": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "GET", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/comments/:comment_id/reactions" + }, + "listForIssue": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "GET", + "params": { + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "type": "string" + }, + "issue_number": { "required": true, "type": "integer" }, + "number": { + "alias": "issue_number", + "deprecated": true, + "type": "integer" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/:issue_number/reactions" + }, + "listForIssueComment": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "GET", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/issues/comments/:comment_id/reactions" + }, + "listForPullRequestReviewComment": { + "headers": { + "accept": "application/vnd.github.squirrel-girl-preview+json" + }, + "method": "GET", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pulls/comments/:comment_id/reactions" + }, + "listForTeamDiscussion": { + "headers": { + "accept": "application/vnd.github.echo-preview+json,application/vnd.github.squirrel-girl-preview+json" + }, + "method": "GET", + "params": { + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "type": "string" + }, + "discussion_number": { "required": true, "type": "integer" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/reactions" + }, + "listForTeamDiscussionComment": { + "headers": { + "accept": "application/vnd.github.echo-preview+json,application/vnd.github.squirrel-girl-preview+json" + }, + "method": "GET", + "params": { + "comment_number": { "required": true, "type": "integer" }, + "content": { + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "type": "string" + }, + "discussion_number": { "required": true, "type": "integer" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions" + } + }, + "repos": { + "acceptInvitation": { + "method": "PATCH", + "params": { "invitation_id": { "required": true, "type": "integer" } }, + "url": "/user/repository_invitations/:invitation_id" + }, + "addCollaborator": { + "method": "PUT", + "params": { + "owner": { "required": true, "type": "string" }, + "permission": { "enum": ["pull", "push", "admin"], "type": "string" }, + "repo": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/collaborators/:username" + }, + "addDeployKey": { + "method": "POST", + "params": { + "key": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "read_only": { "type": "boolean" }, + "repo": { "required": true, "type": "string" }, + "title": { "type": "string" } + }, + "url": "/repos/:owner/:repo/keys" + }, + "addProtectedBranchAdminEnforcement": { + "method": "POST", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/enforce_admins" + }, + "addProtectedBranchAppRestrictions": { + "method": "POST", + "params": { + "apps": { "mapTo": "data", "required": true, "type": "string[]" }, + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps" + }, + "addProtectedBranchRequiredSignatures": { + "headers": { "accept": "application/vnd.github.zzzax-preview+json" }, + "method": "POST", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_signatures" + }, + "addProtectedBranchRequiredStatusChecksContexts": { + "method": "POST", + "params": { + "branch": { "required": true, "type": "string" }, + "contexts": { "mapTo": "data", "required": true, "type": "string[]" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts" + }, + "addProtectedBranchTeamRestrictions": { + "method": "POST", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "teams": { "mapTo": "data", "required": true, "type": "string[]" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams" + }, + "addProtectedBranchUserRestrictions": { + "method": "POST", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "users": { "mapTo": "data", "required": true, "type": "string[]" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/users" + }, + "checkCollaborator": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/collaborators/:username" + }, + "checkVulnerabilityAlerts": { + "headers": { "accept": "application/vnd.github.dorian-preview+json" }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/vulnerability-alerts" + }, + "compareCommits": { + "method": "GET", + "params": { + "base": { "required": true, "type": "string" }, + "head": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/compare/:base...:head" + }, + "createCommitComment": { + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "commit_sha": { "required": true, "type": "string" }, + "line": { "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "path": { "type": "string" }, + "position": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "sha": { "alias": "commit_sha", "deprecated": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:commit_sha/comments" + }, + "createDeployment": { + "method": "POST", + "params": { + "auto_merge": { "type": "boolean" }, + "description": { "type": "string" }, + "environment": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "payload": { "type": "string" }, + "production_environment": { "type": "boolean" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "required_contexts": { "type": "string[]" }, + "task": { "type": "string" }, + "transient_environment": { "type": "boolean" } + }, + "url": "/repos/:owner/:repo/deployments" + }, + "createDeploymentStatus": { + "method": "POST", + "params": { + "auto_inactive": { "type": "boolean" }, + "deployment_id": { "required": true, "type": "integer" }, + "description": { "type": "string" }, + "environment": { + "enum": ["production", "staging", "qa"], + "type": "string" + }, + "environment_url": { "type": "string" }, + "log_url": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "state": { + "enum": [ + "error", + "failure", + "inactive", + "in_progress", + "queued", + "pending", + "success" + ], + "required": true, + "type": "string" + }, + "target_url": { "type": "string" } + }, + "url": "/repos/:owner/:repo/deployments/:deployment_id/statuses" + }, + "createDispatchEvent": { + "headers": { "accept": "application/vnd.github.everest-preview+json" }, + "method": "POST", + "params": { + "client_payload": { "type": "object" }, + "event_type": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/dispatches" + }, + "createFile": { + "deprecated": "octokit.repos.createFile() has been renamed to octokit.repos.createOrUpdateFile() (2019-06-07)", + "method": "PUT", + "params": { + "author": { "type": "object" }, + "author.email": { "required": true, "type": "string" }, + "author.name": { "required": true, "type": "string" }, + "branch": { "type": "string" }, + "committer": { "type": "object" }, + "committer.email": { "required": true, "type": "string" }, + "committer.name": { "required": true, "type": "string" }, + "content": { "required": true, "type": "string" }, + "message": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "path": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "type": "string" } + }, + "url": "/repos/:owner/:repo/contents/:path" + }, + "createForAuthenticatedUser": { + "method": "POST", + "params": { + "allow_merge_commit": { "type": "boolean" }, + "allow_rebase_merge": { "type": "boolean" }, + "allow_squash_merge": { "type": "boolean" }, + "auto_init": { "type": "boolean" }, + "description": { "type": "string" }, + "gitignore_template": { "type": "string" }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "homepage": { "type": "string" }, + "is_template": { "type": "boolean" }, + "license_template": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "private": { "type": "boolean" }, + "team_id": { "type": "integer" } + }, + "url": "/user/repos" + }, + "createFork": { + "method": "POST", + "params": { + "organization": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/forks" + }, + "createHook": { + "method": "POST", + "params": { + "active": { "type": "boolean" }, + "config": { "required": true, "type": "object" }, + "config.content_type": { "type": "string" }, + "config.insecure_ssl": { "type": "string" }, + "config.secret": { "type": "string" }, + "config.url": { "required": true, "type": "string" }, + "events": { "type": "string[]" }, + "name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/hooks" + }, + "createInOrg": { + "method": "POST", + "params": { + "allow_merge_commit": { "type": "boolean" }, + "allow_rebase_merge": { "type": "boolean" }, + "allow_squash_merge": { "type": "boolean" }, + "auto_init": { "type": "boolean" }, + "description": { "type": "string" }, + "gitignore_template": { "type": "string" }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "homepage": { "type": "string" }, + "is_template": { "type": "boolean" }, + "license_template": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "org": { "required": true, "type": "string" }, + "private": { "type": "boolean" }, + "team_id": { "type": "integer" } + }, + "url": "/orgs/:org/repos" + }, + "createOrUpdateFile": { + "method": "PUT", + "params": { + "author": { "type": "object" }, + "author.email": { "required": true, "type": "string" }, + "author.name": { "required": true, "type": "string" }, + "branch": { "type": "string" }, + "committer": { "type": "object" }, + "committer.email": { "required": true, "type": "string" }, + "committer.name": { "required": true, "type": "string" }, + "content": { "required": true, "type": "string" }, + "message": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "path": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "type": "string" } + }, + "url": "/repos/:owner/:repo/contents/:path" + }, + "createRelease": { + "method": "POST", + "params": { + "body": { "type": "string" }, + "draft": { "type": "boolean" }, + "name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "prerelease": { "type": "boolean" }, + "repo": { "required": true, "type": "string" }, + "tag_name": { "required": true, "type": "string" }, + "target_commitish": { "type": "string" } + }, + "url": "/repos/:owner/:repo/releases" + }, + "createStatus": { + "method": "POST", + "params": { + "context": { "type": "string" }, + "description": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "required": true, "type": "string" }, + "state": { + "enum": ["error", "failure", "pending", "success"], + "required": true, + "type": "string" + }, + "target_url": { "type": "string" } + }, + "url": "/repos/:owner/:repo/statuses/:sha" + }, + "createUsingTemplate": { + "headers": { "accept": "application/vnd.github.baptiste-preview+json" }, + "method": "POST", + "params": { + "description": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "owner": { "type": "string" }, + "private": { "type": "boolean" }, + "template_owner": { "required": true, "type": "string" }, + "template_repo": { "required": true, "type": "string" } + }, + "url": "/repos/:template_owner/:template_repo/generate" + }, + "declineInvitation": { + "method": "DELETE", + "params": { "invitation_id": { "required": true, "type": "integer" } }, + "url": "/user/repository_invitations/:invitation_id" + }, + "delete": { + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo" + }, + "deleteCommitComment": { + "method": "DELETE", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/comments/:comment_id" + }, + "deleteDownload": { + "method": "DELETE", + "params": { + "download_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/downloads/:download_id" + }, + "deleteFile": { + "method": "DELETE", + "params": { + "author": { "type": "object" }, + "author.email": { "type": "string" }, + "author.name": { "type": "string" }, + "branch": { "type": "string" }, + "committer": { "type": "object" }, + "committer.email": { "type": "string" }, + "committer.name": { "type": "string" }, + "message": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "path": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/contents/:path" + }, + "deleteHook": { + "method": "DELETE", + "params": { + "hook_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/hooks/:hook_id" + }, + "deleteInvitation": { + "method": "DELETE", + "params": { + "invitation_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/invitations/:invitation_id" + }, + "deleteRelease": { + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "release_id": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/:release_id" + }, + "deleteReleaseAsset": { + "method": "DELETE", + "params": { + "asset_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/assets/:asset_id" + }, + "disableAutomatedSecurityFixes": { + "headers": { "accept": "application/vnd.github.london-preview+json" }, + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/automated-security-fixes" + }, + "disablePagesSite": { + "headers": { "accept": "application/vnd.github.switcheroo-preview+json" }, + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pages" + }, + "disableVulnerabilityAlerts": { + "headers": { "accept": "application/vnd.github.dorian-preview+json" }, + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/vulnerability-alerts" + }, + "enableAutomatedSecurityFixes": { + "headers": { "accept": "application/vnd.github.london-preview+json" }, + "method": "PUT", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/automated-security-fixes" + }, + "enablePagesSite": { + "headers": { "accept": "application/vnd.github.switcheroo-preview+json" }, + "method": "POST", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "source": { "type": "object" }, + "source.branch": { "enum": ["master", "gh-pages"], "type": "string" }, + "source.path": { "type": "string" } + }, + "url": "/repos/:owner/:repo/pages" + }, + "enableVulnerabilityAlerts": { + "headers": { "accept": "application/vnd.github.dorian-preview+json" }, + "method": "PUT", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/vulnerability-alerts" + }, + "get": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo" + }, + "getAppsWithAccessToProtectedBranch": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps" + }, + "getArchiveLink": { + "method": "GET", + "params": { + "archive_format": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/:archive_format/:ref" + }, + "getBranch": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch" + }, + "getBranchProtection": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection" + }, + "getClones": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "per": { "enum": ["day", "week"], "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/traffic/clones" + }, + "getCodeFrequencyStats": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/stats/code_frequency" + }, + "getCollaboratorPermissionLevel": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/collaborators/:username/permission" + }, + "getCombinedStatusForRef": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:ref/status" + }, + "getCommit": { + "method": "GET", + "params": { + "commit_sha": { "alias": "ref", "deprecated": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "alias": "ref", "deprecated": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:ref" + }, + "getCommitActivityStats": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/stats/commit_activity" + }, + "getCommitComment": { + "method": "GET", + "params": { + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/comments/:comment_id" + }, + "getCommitRefSha": { + "deprecated": "octokit.repos.getCommitRefSha() is deprecated, see https://developer.github.com/v3/repos/commits/#get-a-single-commit", + "headers": { "accept": "application/vnd.github.v3.sha" }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:ref" + }, + "getContents": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "path": { "required": true, "type": "string" }, + "ref": { "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/contents/:path" + }, + "getContributorsStats": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/stats/contributors" + }, + "getDeployKey": { + "method": "GET", + "params": { + "key_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/keys/:key_id" + }, + "getDeployment": { + "method": "GET", + "params": { + "deployment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/deployments/:deployment_id" + }, + "getDeploymentStatus": { + "method": "GET", + "params": { + "deployment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "status_id": { "required": true, "type": "integer" } + }, + "url": "/repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id" + }, + "getDownload": { + "method": "GET", + "params": { + "download_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/downloads/:download_id" + }, + "getHook": { + "method": "GET", + "params": { + "hook_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/hooks/:hook_id" + }, + "getLatestPagesBuild": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pages/builds/latest" + }, + "getLatestRelease": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/latest" + }, + "getPages": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pages" + }, + "getPagesBuild": { + "method": "GET", + "params": { + "build_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pages/builds/:build_id" + }, + "getParticipationStats": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/stats/participation" + }, + "getProtectedBranchAdminEnforcement": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/enforce_admins" + }, + "getProtectedBranchPullRequestReviewEnforcement": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews" + }, + "getProtectedBranchRequiredSignatures": { + "headers": { "accept": "application/vnd.github.zzzax-preview+json" }, + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_signatures" + }, + "getProtectedBranchRequiredStatusChecks": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_status_checks" + }, + "getProtectedBranchRestrictions": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions" + }, + "getPunchCardStats": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/stats/punch_card" + }, + "getReadme": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "ref": { "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/readme" + }, + "getRelease": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "release_id": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/:release_id" + }, + "getReleaseAsset": { + "method": "GET", + "params": { + "asset_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/assets/:asset_id" + }, + "getReleaseByTag": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "tag": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/tags/:tag" + }, + "getTeamsWithAccessToProtectedBranch": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams" + }, + "getTopPaths": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/traffic/popular/paths" + }, + "getTopReferrers": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/traffic/popular/referrers" + }, + "getUsersWithAccessToProtectedBranch": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/users" + }, + "getViews": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "per": { "enum": ["day", "week"], "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/traffic/views" + }, + "list": { + "method": "GET", + "params": { + "affiliation": { "type": "string" }, + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "sort": { + "enum": ["created", "updated", "pushed", "full_name"], + "type": "string" + }, + "type": { + "enum": ["all", "owner", "public", "private", "member"], + "type": "string" + }, + "visibility": { "enum": ["all", "public", "private"], "type": "string" } + }, + "url": "/user/repos" + }, + "listAppsWithAccessToProtectedBranch": { + "deprecated": "octokit.repos.listAppsWithAccessToProtectedBranch() has been renamed to octokit.repos.getAppsWithAccessToProtectedBranch() (2019-09-13)", + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps" + }, + "listAssetsForRelease": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "release_id": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/:release_id/assets" + }, + "listBranches": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "protected": { "type": "boolean" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches" + }, + "listBranchesForHeadCommit": { + "headers": { "accept": "application/vnd.github.groot-preview+json" }, + "method": "GET", + "params": { + "commit_sha": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:commit_sha/branches-where-head" + }, + "listCollaborators": { + "method": "GET", + "params": { + "affiliation": { + "enum": ["outside", "direct", "all"], + "type": "string" + }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/collaborators" + }, + "listCommentsForCommit": { + "method": "GET", + "params": { + "commit_sha": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "ref": { "alias": "commit_sha", "deprecated": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:commit_sha/comments" + }, + "listCommitComments": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/comments" + }, + "listCommits": { + "method": "GET", + "params": { + "author": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "path": { "type": "string" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "sha": { "type": "string" }, + "since": { "type": "string" }, + "until": { "type": "string" } + }, + "url": "/repos/:owner/:repo/commits" + }, + "listContributors": { + "method": "GET", + "params": { + "anon": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/contributors" + }, + "listDeployKeys": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/keys" + }, + "listDeploymentStatuses": { + "method": "GET", + "params": { + "deployment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/deployments/:deployment_id/statuses" + }, + "listDeployments": { + "method": "GET", + "params": { + "environment": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "ref": { "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "type": "string" }, + "task": { "type": "string" } + }, + "url": "/repos/:owner/:repo/deployments" + }, + "listDownloads": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/downloads" + }, + "listForOrg": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "sort": { + "enum": ["created", "updated", "pushed", "full_name"], + "type": "string" + }, + "type": { + "enum": ["all", "public", "private", "forks", "sources", "member"], + "type": "string" + } + }, + "url": "/orgs/:org/repos" + }, + "listForUser": { + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "sort": { + "enum": ["created", "updated", "pushed", "full_name"], + "type": "string" + }, + "type": { "enum": ["all", "owner", "member"], "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/repos" + }, + "listForks": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "sort": { "enum": ["newest", "oldest", "stargazers"], "type": "string" } + }, + "url": "/repos/:owner/:repo/forks" + }, + "listHooks": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/hooks" + }, + "listInvitations": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/invitations" + }, + "listInvitationsForAuthenticatedUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/repository_invitations" + }, + "listLanguages": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/languages" + }, + "listPagesBuilds": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pages/builds" + }, + "listProtectedBranchRequiredStatusChecksContexts": { + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts" + }, + "listProtectedBranchTeamRestrictions": { + "deprecated": "octokit.repos.listProtectedBranchTeamRestrictions() has been renamed to octokit.repos.getTeamsWithAccessToProtectedBranch() (2019-09-09)", + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams" + }, + "listProtectedBranchUserRestrictions": { + "deprecated": "octokit.repos.listProtectedBranchUserRestrictions() has been renamed to octokit.repos.getUsersWithAccessToProtectedBranch() (2019-09-09)", + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/users" + }, + "listPublic": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" } + }, + "url": "/repositories" + }, + "listPullRequestsAssociatedWithCommit": { + "headers": { "accept": "application/vnd.github.groot-preview+json" }, + "method": "GET", + "params": { + "commit_sha": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:commit_sha/pulls" + }, + "listReleases": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases" + }, + "listStatusesForRef": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "ref": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/commits/:ref/statuses" + }, + "listTags": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/tags" + }, + "listTeams": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/teams" + }, + "listTeamsWithAccessToProtectedBranch": { + "deprecated": "octokit.repos.listTeamsWithAccessToProtectedBranch() has been renamed to octokit.repos.getTeamsWithAccessToProtectedBranch() (2019-09-13)", + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams" + }, + "listTopics": { + "headers": { "accept": "application/vnd.github.mercy-preview+json" }, + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/topics" + }, + "listUsersWithAccessToProtectedBranch": { + "deprecated": "octokit.repos.listUsersWithAccessToProtectedBranch() has been renamed to octokit.repos.getUsersWithAccessToProtectedBranch() (2019-09-13)", + "method": "GET", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/users" + }, + "merge": { + "method": "POST", + "params": { + "base": { "required": true, "type": "string" }, + "commit_message": { "type": "string" }, + "head": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/merges" + }, + "pingHook": { + "method": "POST", + "params": { + "hook_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/hooks/:hook_id/pings" + }, + "removeBranchProtection": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection" + }, + "removeCollaborator": { + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/collaborators/:username" + }, + "removeDeployKey": { + "method": "DELETE", + "params": { + "key_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/keys/:key_id" + }, + "removeProtectedBranchAdminEnforcement": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/enforce_admins" + }, + "removeProtectedBranchAppRestrictions": { + "method": "DELETE", + "params": { + "apps": { "mapTo": "data", "required": true, "type": "string[]" }, + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps" + }, + "removeProtectedBranchPullRequestReviewEnforcement": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews" + }, + "removeProtectedBranchRequiredSignatures": { + "headers": { "accept": "application/vnd.github.zzzax-preview+json" }, + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_signatures" + }, + "removeProtectedBranchRequiredStatusChecks": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_status_checks" + }, + "removeProtectedBranchRequiredStatusChecksContexts": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "contexts": { "mapTo": "data", "required": true, "type": "string[]" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts" + }, + "removeProtectedBranchRestrictions": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions" + }, + "removeProtectedBranchTeamRestrictions": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "teams": { "mapTo": "data", "required": true, "type": "string[]" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams" + }, + "removeProtectedBranchUserRestrictions": { + "method": "DELETE", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "users": { "mapTo": "data", "required": true, "type": "string[]" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/users" + }, + "replaceProtectedBranchAppRestrictions": { + "method": "PUT", + "params": { + "apps": { "mapTo": "data", "required": true, "type": "string[]" }, + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/apps" + }, + "replaceProtectedBranchRequiredStatusChecksContexts": { + "method": "PUT", + "params": { + "branch": { "required": true, "type": "string" }, + "contexts": { "mapTo": "data", "required": true, "type": "string[]" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts" + }, + "replaceProtectedBranchTeamRestrictions": { + "method": "PUT", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "teams": { "mapTo": "data", "required": true, "type": "string[]" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/teams" + }, + "replaceProtectedBranchUserRestrictions": { + "method": "PUT", + "params": { + "branch": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "users": { "mapTo": "data", "required": true, "type": "string[]" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/restrictions/users" + }, + "replaceTopics": { + "headers": { "accept": "application/vnd.github.mercy-preview+json" }, + "method": "PUT", + "params": { + "names": { "required": true, "type": "string[]" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/topics" + }, + "requestPageBuild": { + "method": "POST", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/pages/builds" + }, + "retrieveCommunityProfileMetrics": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/community/profile" + }, + "testPushHook": { + "method": "POST", + "params": { + "hook_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/hooks/:hook_id/tests" + }, + "transfer": { + "headers": { "accept": "application/vnd.github.nightshade-preview+json" }, + "method": "POST", + "params": { + "new_owner": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "team_ids": { "type": "integer[]" } + }, + "url": "/repos/:owner/:repo/transfer" + }, + "update": { + "method": "PATCH", + "params": { + "allow_merge_commit": { "type": "boolean" }, + "allow_rebase_merge": { "type": "boolean" }, + "allow_squash_merge": { "type": "boolean" }, + "archived": { "type": "boolean" }, + "default_branch": { "type": "string" }, + "description": { "type": "string" }, + "has_issues": { "type": "boolean" }, + "has_projects": { "type": "boolean" }, + "has_wiki": { "type": "boolean" }, + "homepage": { "type": "string" }, + "is_template": { "type": "boolean" }, + "name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "private": { "type": "boolean" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo" + }, + "updateBranchProtection": { + "method": "PUT", + "params": { + "branch": { "required": true, "type": "string" }, + "enforce_admins": { + "allowNull": true, + "required": true, + "type": "boolean" + }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "required_pull_request_reviews": { + "allowNull": true, + "required": true, + "type": "object" + }, + "required_pull_request_reviews.dismiss_stale_reviews": { + "type": "boolean" + }, + "required_pull_request_reviews.dismissal_restrictions": { + "type": "object" + }, + "required_pull_request_reviews.dismissal_restrictions.teams": { + "type": "string[]" + }, + "required_pull_request_reviews.dismissal_restrictions.users": { + "type": "string[]" + }, + "required_pull_request_reviews.require_code_owner_reviews": { + "type": "boolean" + }, + "required_pull_request_reviews.required_approving_review_count": { + "type": "integer" + }, + "required_status_checks": { + "allowNull": true, + "required": true, + "type": "object" + }, + "required_status_checks.contexts": { + "required": true, + "type": "string[]" + }, + "required_status_checks.strict": { + "required": true, + "type": "boolean" + }, + "restrictions": { + "allowNull": true, + "required": true, + "type": "object" + }, + "restrictions.apps": { "type": "string[]" }, + "restrictions.teams": { "required": true, "type": "string[]" }, + "restrictions.users": { "required": true, "type": "string[]" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection" + }, + "updateCommitComment": { + "method": "PATCH", + "params": { + "body": { "required": true, "type": "string" }, + "comment_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/comments/:comment_id" + }, + "updateFile": { + "deprecated": "octokit.repos.updateFile() has been renamed to octokit.repos.createOrUpdateFile() (2019-06-07)", + "method": "PUT", + "params": { + "author": { "type": "object" }, + "author.email": { "required": true, "type": "string" }, + "author.name": { "required": true, "type": "string" }, + "branch": { "type": "string" }, + "committer": { "type": "object" }, + "committer.email": { "required": true, "type": "string" }, + "committer.name": { "required": true, "type": "string" }, + "content": { "required": true, "type": "string" }, + "message": { "required": true, "type": "string" }, + "owner": { "required": true, "type": "string" }, + "path": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "sha": { "type": "string" } + }, + "url": "/repos/:owner/:repo/contents/:path" + }, + "updateHook": { + "method": "PATCH", + "params": { + "active": { "type": "boolean" }, + "add_events": { "type": "string[]" }, + "config": { "type": "object" }, + "config.content_type": { "type": "string" }, + "config.insecure_ssl": { "type": "string" }, + "config.secret": { "type": "string" }, + "config.url": { "required": true, "type": "string" }, + "events": { "type": "string[]" }, + "hook_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "remove_events": { "type": "string[]" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/hooks/:hook_id" + }, + "updateInformationAboutPagesSite": { + "method": "PUT", + "params": { + "cname": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "source": { + "enum": ["\"gh-pages\"", "\"master\"", "\"master /docs\""], + "type": "string" + } + }, + "url": "/repos/:owner/:repo/pages" + }, + "updateInvitation": { + "method": "PATCH", + "params": { + "invitation_id": { "required": true, "type": "integer" }, + "owner": { "required": true, "type": "string" }, + "permissions": { "enum": ["read", "write", "admin"], "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/invitations/:invitation_id" + }, + "updateProtectedBranchPullRequestReviewEnforcement": { + "method": "PATCH", + "params": { + "branch": { "required": true, "type": "string" }, + "dismiss_stale_reviews": { "type": "boolean" }, + "dismissal_restrictions": { "type": "object" }, + "dismissal_restrictions.teams": { "type": "string[]" }, + "dismissal_restrictions.users": { "type": "string[]" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "require_code_owner_reviews": { "type": "boolean" }, + "required_approving_review_count": { "type": "integer" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews" + }, + "updateProtectedBranchRequiredStatusChecks": { + "method": "PATCH", + "params": { + "branch": { "required": true, "type": "string" }, + "contexts": { "type": "string[]" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "strict": { "type": "boolean" } + }, + "url": "/repos/:owner/:repo/branches/:branch/protection/required_status_checks" + }, + "updateRelease": { + "method": "PATCH", + "params": { + "body": { "type": "string" }, + "draft": { "type": "boolean" }, + "name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "prerelease": { "type": "boolean" }, + "release_id": { "required": true, "type": "integer" }, + "repo": { "required": true, "type": "string" }, + "tag_name": { "type": "string" }, + "target_commitish": { "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/:release_id" + }, + "updateReleaseAsset": { + "method": "PATCH", + "params": { + "asset_id": { "required": true, "type": "integer" }, + "label": { "type": "string" }, + "name": { "type": "string" }, + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" } + }, + "url": "/repos/:owner/:repo/releases/assets/:asset_id" + }, + "uploadReleaseAsset": { + "method": "POST", + "params": { + "file": { + "mapTo": "data", + "required": true, + "type": "string | object" + }, + "headers": { "required": true, "type": "object" }, + "headers.content-length": { "required": true, "type": "integer" }, + "headers.content-type": { "required": true, "type": "string" }, + "label": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "url": { "required": true, "type": "string" } + }, + "url": ":url" + } + }, + "search": { + "code": { + "method": "GET", + "params": { + "order": { "enum": ["desc", "asc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "q": { "required": true, "type": "string" }, + "sort": { "enum": ["indexed"], "type": "string" } + }, + "url": "/search/code" + }, + "commits": { + "headers": { "accept": "application/vnd.github.cloak-preview+json" }, + "method": "GET", + "params": { + "order": { "enum": ["desc", "asc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "q": { "required": true, "type": "string" }, + "sort": { "enum": ["author-date", "committer-date"], "type": "string" } + }, + "url": "/search/commits" + }, + "issues": { + "deprecated": "octokit.search.issues() has been renamed to octokit.search.issuesAndPullRequests() (2018-12-27)", + "method": "GET", + "params": { + "order": { "enum": ["desc", "asc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "q": { "required": true, "type": "string" }, + "sort": { + "enum": [ + "comments", + "reactions", + "reactions-+1", + "reactions--1", + "reactions-smile", + "reactions-thinking_face", + "reactions-heart", + "reactions-tada", + "interactions", + "created", + "updated" + ], + "type": "string" + } + }, + "url": "/search/issues" + }, + "issuesAndPullRequests": { + "method": "GET", + "params": { + "order": { "enum": ["desc", "asc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "q": { "required": true, "type": "string" }, + "sort": { + "enum": [ + "comments", + "reactions", + "reactions-+1", + "reactions--1", + "reactions-smile", + "reactions-thinking_face", + "reactions-heart", + "reactions-tada", + "interactions", + "created", + "updated" + ], + "type": "string" + } + }, + "url": "/search/issues" + }, + "labels": { + "method": "GET", + "params": { + "order": { "enum": ["desc", "asc"], "type": "string" }, + "q": { "required": true, "type": "string" }, + "repository_id": { "required": true, "type": "integer" }, + "sort": { "enum": ["created", "updated"], "type": "string" } + }, + "url": "/search/labels" + }, + "repos": { + "method": "GET", + "params": { + "order": { "enum": ["desc", "asc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "q": { "required": true, "type": "string" }, + "sort": { + "enum": ["stars", "forks", "help-wanted-issues", "updated"], + "type": "string" + } + }, + "url": "/search/repositories" + }, + "topics": { + "method": "GET", + "params": { "q": { "required": true, "type": "string" } }, + "url": "/search/topics" + }, + "users": { + "method": "GET", + "params": { + "order": { "enum": ["desc", "asc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "q": { "required": true, "type": "string" }, + "sort": { + "enum": ["followers", "repositories", "joined"], + "type": "string" + } + }, + "url": "/search/users" + } + }, + "teams": { + "addMember": { + "deprecated": "octokit.teams.addMember() is deprecated, see https://developer.github.com/v3/teams/members/#add-team-member", + "method": "PUT", + "params": { + "team_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/teams/:team_id/members/:username" + }, + "addOrUpdateMembership": { + "method": "PUT", + "params": { + "role": { "enum": ["member", "maintainer"], "type": "string" }, + "team_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/teams/:team_id/memberships/:username" + }, + "addOrUpdateProject": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "PUT", + "params": { + "permission": { "enum": ["read", "write", "admin"], "type": "string" }, + "project_id": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/projects/:project_id" + }, + "addOrUpdateRepo": { + "method": "PUT", + "params": { + "owner": { "required": true, "type": "string" }, + "permission": { "enum": ["pull", "push", "admin"], "type": "string" }, + "repo": { "required": true, "type": "string" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/repos/:owner/:repo" + }, + "checkManagesRepo": { + "method": "GET", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/repos/:owner/:repo" + }, + "create": { + "method": "POST", + "params": { + "description": { "type": "string" }, + "maintainers": { "type": "string[]" }, + "name": { "required": true, "type": "string" }, + "org": { "required": true, "type": "string" }, + "parent_team_id": { "type": "integer" }, + "permission": { "enum": ["pull", "push", "admin"], "type": "string" }, + "privacy": { "enum": ["secret", "closed"], "type": "string" }, + "repo_names": { "type": "string[]" } + }, + "url": "/orgs/:org/teams" + }, + "createDiscussion": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "private": { "type": "boolean" }, + "team_id": { "required": true, "type": "integer" }, + "title": { "required": true, "type": "string" } + }, + "url": "/teams/:team_id/discussions" + }, + "createDiscussionComment": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "POST", + "params": { + "body": { "required": true, "type": "string" }, + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/comments" + }, + "delete": { + "method": "DELETE", + "params": { "team_id": { "required": true, "type": "integer" } }, + "url": "/teams/:team_id" + }, + "deleteDiscussion": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "DELETE", + "params": { + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number" + }, + "deleteDiscussionComment": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "DELETE", + "params": { + "comment_number": { "required": true, "type": "integer" }, + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/comments/:comment_number" + }, + "get": { + "method": "GET", + "params": { "team_id": { "required": true, "type": "integer" } }, + "url": "/teams/:team_id" + }, + "getByName": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "team_slug": { "required": true, "type": "string" } + }, + "url": "/orgs/:org/teams/:team_slug" + }, + "getDiscussion": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "GET", + "params": { + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number" + }, + "getDiscussionComment": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "GET", + "params": { + "comment_number": { "required": true, "type": "integer" }, + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/comments/:comment_number" + }, + "getMember": { + "deprecated": "octokit.teams.getMember() is deprecated, see https://developer.github.com/v3/teams/members/#get-team-member", + "method": "GET", + "params": { + "team_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/teams/:team_id/members/:username" + }, + "getMembership": { + "method": "GET", + "params": { + "team_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/teams/:team_id/memberships/:username" + }, + "list": { + "method": "GET", + "params": { + "org": { "required": true, "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/orgs/:org/teams" + }, + "listChild": { + "headers": { "accept": "application/vnd.github.hellcat-preview+json" }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/teams" + }, + "listDiscussionComments": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "discussion_number": { "required": true, "type": "integer" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/comments" + }, + "listDiscussions": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "GET", + "params": { + "direction": { "enum": ["asc", "desc"], "type": "string" }, + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions" + }, + "listForAuthenticatedUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/teams" + }, + "listMembers": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "role": { "enum": ["member", "maintainer", "all"], "type": "string" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/members" + }, + "listPendingInvitations": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/invitations" + }, + "listProjects": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/projects" + }, + "listRepos": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/repos" + }, + "removeMember": { + "deprecated": "octokit.teams.removeMember() is deprecated, see https://developer.github.com/v3/teams/members/#remove-team-member", + "method": "DELETE", + "params": { + "team_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/teams/:team_id/members/:username" + }, + "removeMembership": { + "method": "DELETE", + "params": { + "team_id": { "required": true, "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/teams/:team_id/memberships/:username" + }, + "removeProject": { + "method": "DELETE", + "params": { + "project_id": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/projects/:project_id" + }, + "removeRepo": { + "method": "DELETE", + "params": { + "owner": { "required": true, "type": "string" }, + "repo": { "required": true, "type": "string" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/repos/:owner/:repo" + }, + "reviewProject": { + "headers": { "accept": "application/vnd.github.inertia-preview+json" }, + "method": "GET", + "params": { + "project_id": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/projects/:project_id" + }, + "update": { + "method": "PATCH", + "params": { + "description": { "type": "string" }, + "name": { "required": true, "type": "string" }, + "parent_team_id": { "type": "integer" }, + "permission": { "enum": ["pull", "push", "admin"], "type": "string" }, + "privacy": { "enum": ["secret", "closed"], "type": "string" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id" + }, + "updateDiscussion": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "PATCH", + "params": { + "body": { "type": "string" }, + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" }, + "title": { "type": "string" } + }, + "url": "/teams/:team_id/discussions/:discussion_number" + }, + "updateDiscussionComment": { + "headers": { "accept": "application/vnd.github.echo-preview+json" }, + "method": "PATCH", + "params": { + "body": { "required": true, "type": "string" }, + "comment_number": { "required": true, "type": "integer" }, + "discussion_number": { "required": true, "type": "integer" }, + "team_id": { "required": true, "type": "integer" } + }, + "url": "/teams/:team_id/discussions/:discussion_number/comments/:comment_number" + } + }, + "users": { + "addEmails": { + "method": "POST", + "params": { "emails": { "required": true, "type": "string[]" } }, + "url": "/user/emails" + }, + "block": { + "method": "PUT", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/user/blocks/:username" + }, + "checkBlocked": { + "method": "GET", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/user/blocks/:username" + }, + "checkFollowing": { + "method": "GET", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/user/following/:username" + }, + "checkFollowingForUser": { + "method": "GET", + "params": { + "target_user": { "required": true, "type": "string" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/following/:target_user" + }, + "createGpgKey": { + "method": "POST", + "params": { "armored_public_key": { "type": "string" } }, + "url": "/user/gpg_keys" + }, + "createPublicKey": { + "method": "POST", + "params": { "key": { "type": "string" }, "title": { "type": "string" } }, + "url": "/user/keys" + }, + "deleteEmails": { + "method": "DELETE", + "params": { "emails": { "required": true, "type": "string[]" } }, + "url": "/user/emails" + }, + "deleteGpgKey": { + "method": "DELETE", + "params": { "gpg_key_id": { "required": true, "type": "integer" } }, + "url": "/user/gpg_keys/:gpg_key_id" + }, + "deletePublicKey": { + "method": "DELETE", + "params": { "key_id": { "required": true, "type": "integer" } }, + "url": "/user/keys/:key_id" + }, + "follow": { + "method": "PUT", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/user/following/:username" + }, + "getAuthenticated": { "method": "GET", "params": {}, "url": "/user" }, + "getByUsername": { + "method": "GET", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/users/:username" + }, + "getContextForUser": { + "headers": { "accept": "application/vnd.github.hagar-preview+json" }, + "method": "GET", + "params": { + "subject_id": { "type": "string" }, + "subject_type": { + "enum": ["organization", "repository", "issue", "pull_request"], + "type": "string" + }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/hovercard" + }, + "getGpgKey": { + "method": "GET", + "params": { "gpg_key_id": { "required": true, "type": "integer" } }, + "url": "/user/gpg_keys/:gpg_key_id" + }, + "getPublicKey": { + "method": "GET", + "params": { "key_id": { "required": true, "type": "integer" } }, + "url": "/user/keys/:key_id" + }, + "list": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "since": { "type": "string" } + }, + "url": "/users" + }, + "listBlocked": { "method": "GET", "params": {}, "url": "/user/blocks" }, + "listEmails": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/emails" + }, + "listFollowersForAuthenticatedUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/followers" + }, + "listFollowersForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/followers" + }, + "listFollowingForAuthenticatedUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/following" + }, + "listFollowingForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/following" + }, + "listGpgKeys": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/gpg_keys" + }, + "listGpgKeysForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/gpg_keys" + }, + "listPublicEmails": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/public_emails" + }, + "listPublicKeys": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" } + }, + "url": "/user/keys" + }, + "listPublicKeysForUser": { + "method": "GET", + "params": { + "page": { "type": "integer" }, + "per_page": { "type": "integer" }, + "username": { "required": true, "type": "string" } + }, + "url": "/users/:username/keys" + }, + "togglePrimaryEmailVisibility": { + "method": "PATCH", + "params": { + "email": { "required": true, "type": "string" }, + "visibility": { "required": true, "type": "string" } + }, + "url": "/user/email/visibility" + }, + "unblock": { + "method": "DELETE", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/user/blocks/:username" + }, + "unfollow": { + "method": "DELETE", + "params": { "username": { "required": true, "type": "string" } }, + "url": "/user/following/:username" + }, + "updateAuthenticated": { + "method": "PATCH", + "params": { + "bio": { "type": "string" }, + "blog": { "type": "string" }, + "company": { "type": "string" }, + "email": { "type": "string" }, + "hireable": { "type": "boolean" }, + "location": { "type": "string" }, + "name": { "type": "string" } + }, + "url": "/user" + } + } +} diff --git a/node_modules/@octokit/rest/plugins/validate/index.js b/node_modules/@octokit/rest/plugins/validate/index.js new file mode 100644 index 0000000..9954751 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/validate/index.js @@ -0,0 +1,7 @@ +module.exports = octokitValidate; + +const validate = require("./validate"); + +function octokitValidate(octokit) { + octokit.hook.before("request", validate.bind(null, octokit)); +} diff --git a/node_modules/@octokit/rest/plugins/validate/validate.js b/node_modules/@octokit/rest/plugins/validate/validate.js new file mode 100644 index 0000000..00b3008 --- /dev/null +++ b/node_modules/@octokit/rest/plugins/validate/validate.js @@ -0,0 +1,151 @@ +"use strict"; + +module.exports = validate; + +const { RequestError } = require("@octokit/request-error"); +const get = require("lodash.get"); +const set = require("lodash.set"); + +function validate(octokit, options) { + if (!options.request.validate) { + return; + } + const { validate: params } = options.request; + + Object.keys(params).forEach(parameterName => { + const parameter = get(params, parameterName); + + const expectedType = parameter.type; + let parentParameterName; + let parentValue; + let parentParamIsPresent = true; + let parentParameterIsArray = false; + + if (/\./.test(parameterName)) { + parentParameterName = parameterName.replace(/\.[^.]+$/, ""); + parentParameterIsArray = parentParameterName.slice(-2) === "[]"; + if (parentParameterIsArray) { + parentParameterName = parentParameterName.slice(0, -2); + } + parentValue = get(options, parentParameterName); + parentParamIsPresent = + parentParameterName === "headers" || + (typeof parentValue === "object" && parentValue !== null); + } + + const values = parentParameterIsArray + ? (get(options, parentParameterName) || []).map( + value => value[parameterName.split(/\./).pop()] + ) + : [get(options, parameterName)]; + + values.forEach((value, i) => { + const valueIsPresent = typeof value !== "undefined"; + const valueIsNull = value === null; + const currentParameterName = parentParameterIsArray + ? parameterName.replace(/\[\]/, `[${i}]`) + : parameterName; + + if (!parameter.required && !valueIsPresent) { + return; + } + + // if the parent parameter is of type object but allows null + // then the child parameters can be ignored + if (!parentParamIsPresent) { + return; + } + + if (parameter.allowNull && valueIsNull) { + return; + } + + if (!parameter.allowNull && valueIsNull) { + throw new RequestError( + `'${currentParameterName}' cannot be null`, + 400, + { + request: options + } + ); + } + + if (parameter.required && !valueIsPresent) { + throw new RequestError( + `Empty value for parameter '${currentParameterName}': ${JSON.stringify( + value + )}`, + 400, + { + request: options + } + ); + } + + // parse to integer before checking for enum + // so that string "1" will match enum with number 1 + if (expectedType === "integer") { + const unparsedValue = value; + value = parseInt(value, 10); + if (isNaN(value)) { + throw new RequestError( + `Invalid value for parameter '${currentParameterName}': ${JSON.stringify( + unparsedValue + )} is NaN`, + 400, + { + request: options + } + ); + } + } + + if (parameter.enum && parameter.enum.indexOf(String(value)) === -1) { + throw new RequestError( + `Invalid value for parameter '${currentParameterName}': ${JSON.stringify( + value + )}`, + 400, + { + request: options + } + ); + } + + if (parameter.validation) { + const regex = new RegExp(parameter.validation); + if (!regex.test(value)) { + throw new RequestError( + `Invalid value for parameter '${currentParameterName}': ${JSON.stringify( + value + )}`, + 400, + { + request: options + } + ); + } + } + + if (expectedType === "object" && typeof value === "string") { + try { + value = JSON.parse(value); + } catch (exception) { + throw new RequestError( + `JSON parse error of value for parameter '${currentParameterName}': ${JSON.stringify( + value + )}`, + 400, + { + request: options + } + ); + } + } + + set(options, parameter.mapTo || currentParameterName, value); + }); + }); + + return options; +} diff --git a/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/01_help.md b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/01_help.md new file mode 100644 index 0000000..b518515 --- /dev/null +++ b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/01_help.md @@ -0,0 +1,5 @@ +--- +name: "🆘 Help" +about: "How does this even work 🤷‍♂️" +labels: support +--- diff --git a/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/02_bug.md b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/02_bug.md new file mode 100644 index 0000000..d7e8325 --- /dev/null +++ b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/02_bug.md @@ -0,0 +1,19 @@ +--- +name: "🐛 Bug Report" +about: "If something isn't working as expected 🤔" +labels: bug +--- + + + +**What happened?** + + + +**What did you expect to happen?** + + + +**What the problem might be** + + diff --git a/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/03_feature_request.md b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/03_feature_request.md new file mode 100644 index 0000000..89a5481 --- /dev/null +++ b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/03_feature_request.md @@ -0,0 +1,19 @@ +--- +name: "🧚‍♂️ Feature Request" +about: "Wouldn’t it be nice if 💭" +labels: feature +--- + + + +**What’s missing?** + + + +**Why?** + + + +**Alternatives you tried** + + diff --git a/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/04_thanks.md b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/04_thanks.md new file mode 100644 index 0000000..c67ce83 --- /dev/null +++ b/node_modules/@octokit/types/.github/ISSUE_TEMPLATE/04_thanks.md @@ -0,0 +1,19 @@ +--- +name: "💝 Thank you" +about: "@octokit/types is awesome 🙌" +labels: thanks +--- + + + +**How do you use @octokit/types?** + + + +**What do you love about it?** + + + +**How did you learn about it?** + + diff --git a/node_modules/@octokit/types/.github/workflows/release.yml b/node_modules/@octokit/types/.github/workflows/release.yml new file mode 100644 index 0000000..b315607 --- /dev/null +++ b/node_modules/@octokit/types/.github/workflows/release.yml @@ -0,0 +1,28 @@ +name: Release +on: + push: + branches: + - master + +jobs: + release: + name: release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses: actions/setup-node@v1 + with: + node-version: "12.x" + - run: npm ci + - run: npx semantic-release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + - run: npm run docs + env: + # workaround "Failed to replace env in config: ${NPM_TOKEN}" error + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + - uses: maxheld83/ghpages@master + env: + BUILD_DIR: docs/ + GH_PAT: ${{ secrets.OCTOKIT_PAT }} diff --git a/node_modules/@octokit/types/.github/workflows/routes-update.yml b/node_modules/@octokit/types/.github/workflows/routes-update.yml new file mode 100644 index 0000000..38d841d --- /dev/null +++ b/node_modules/@octokit/types/.github/workflows/routes-update.yml @@ -0,0 +1,39 @@ +name: octokit/routes update +on: + repository_dispatch: + types: [octokit-routes-release] + +jobs: + update_routes: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses: actions/setup-node@v1 + with: + node-version: "12.x" + # try checking out routes-update branch. Ignore error if it does not exist + - run: git checkout routes-update || true + - run: npm ci + - run: npm run update-endpoints + env: + VERSION: ${{ github.event.client_payload.version }} + - name: Create Pull Request + uses: gr2m/create-or-update-pull-request-action@v1.x + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + title: "🚧 GitHub REST Endpoints changed" + body: | + See what changed at https://github.com/octokit/routes/releases/latest. + + Make sure to update the commits so that the merge results in helpful release notes, see [Merging the Pull Request & releasing a new version](https://github.com/octokit/rest.js/blob/master/CONTRIBUTING.md#merging-the-pull-request--releasing-a-new-version). + + In general + + - Avoid breaking changes at all costs + - If there are no typescript or code changes, use a `docs` prefix + - If there are typescript changes but no code changes, use `fix(typescript)` prefix + - If there are code changes, use `fix` if a problem was resolved, `feat` if new endpoints / parameters were added, and `feat(deprecation)` if a method was deprecated. + branch: "routes-update" + commit-message: "WIP octokit/routes updated" + author: "Octokit Bot <33075676+octokitbot@users.noreply.github.com>" diff --git a/node_modules/@octokit/types/.github/workflows/test.yml b/node_modules/@octokit/types/.github/workflows/test.yml new file mode 100644 index 0000000..702220f --- /dev/null +++ b/node_modules/@octokit/types/.github/workflows/test.yml @@ -0,0 +1,19 @@ +name: Test +on: + push: + branches: + - master + - "greenkeeper/*" + pull_request: + types: [opened, synchronize] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - uses: actions/setup-node@v1 + with: + node-version: 12 + - run: npm ci + - run: npm test diff --git a/node_modules/@octokit/types/CODE_OF_CONDUCT.md b/node_modules/@octokit/types/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..8392e63 --- /dev/null +++ b/node_modules/@octokit/types/CODE_OF_CONDUCT.md @@ -0,0 +1,75 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at opensource+octokit@github.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [https://contributor-covenant.org/version/1/4][version] + +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/4/ + diff --git a/node_modules/@octokit/types/CONTRIBUTING.md b/node_modules/@octokit/types/CONTRIBUTING.md new file mode 100644 index 0000000..6b27599 --- /dev/null +++ b/node_modules/@octokit/types/CONTRIBUTING.md @@ -0,0 +1,59 @@ +# How to contribute + +Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). +By participating in this project you agree to abide by its terms. + +## Creating an Issue + +Before you create a new Issue: + +1. Please make sure there is no [open issue](https://github.com/octokit/plugin-paginate-rest/issues?utf8=%E2%9C%93&q=is%3Aissue) yet. +2. If it is a bug report, include the steps to reproduce the issue and please create a reproducible test case on [runkit.com](https://runkit.com/). Example: https://runkit.com/gr2m/5aa034f1440b420012a6eebf +3. If it is a feature request, please share the motivation for the new feature, what alternatives you tried, and how you would implement it. +4. Please include links to the corresponding github documentation. + +## Setup the repository locally + +First, fork the repository. + +Setup the repository locally. Replace `` with the name of the account you forked to. + +```shell +git clone https://github.com//plugin-paginate-rest.js.git +cd plugin-paginate-rest.js +npm install +``` + +Run the tests before making changes to make sure the local setup is working as expected + +```shell +npm test +``` + +## Submitting the Pull Request + +- Create a new branch locally. +- Make your changes in that branch to your fork repository +- Submit a pull request from your topic branch to the master branch on the `octokit/plugin-paginate-rest.js` repository. +- Be sure to tag any issues your pull request is taking care of / contributing to. Adding "Closes #123" to a pull request description will automatically close the issue once the pull request is merged in. + +## Testing a pull request from github repo locally: + +You can install `@octokit/plugin-paginate-rest` from each pull request. Replace `[PULL REQUEST NUMBER]` + +Once you are done testing, you can revert back to the default module `@octokit/plugin-paginate-rest` from npm with `npm install @octokit/plugin-paginate-rest` + +## Merging the Pull Request & releasing a new version + +Releases are automated using [semantic-release](https://github.com/semantic-release/semantic-release). +The following commit message conventions determine which version is released: + +1. `fix: ...` or `fix(scope name): ...` prefix in subject: bumps fix version, e.g. `1.2.3` → `1.2.4` +2. `feat: ...` or `feat(scope name): ...` prefix in subject: bumps feature version, e.g. `1.2.3` → `1.3.0` +3. `BREAKING CHANGE:` in body: bumps breaking version, e.g. `1.2.3` → `2.0.0` + +Only one version number is bumped at a time, the highest version change trumps the others. +Besides publishing a new version to npm, semantic-release also creates a git tag and release +on GitHub, generates changelogs from the commit messages and puts them into the release notes. +s +If the pull request looks good but does not follow the commit conventions, use the Squash & merge button. diff --git a/node_modules/@octokit/types/LICENSE b/node_modules/@octokit/types/LICENSE new file mode 100644 index 0000000..57bee5f --- /dev/null +++ b/node_modules/@octokit/types/LICENSE @@ -0,0 +1,7 @@ +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@octokit/types/README.md b/node_modules/@octokit/types/README.md new file mode 100644 index 0000000..482dae0 --- /dev/null +++ b/node_modules/@octokit/types/README.md @@ -0,0 +1,19 @@ +# types.ts + +> Shared TypeScript definitions for Octokit projects + +[![@latest](https://img.shields.io/npm/v/@octokit/types.svg)](https://www.npmjs.com/package/@octokit/types) +[![Build Status](https://github.com/octokit/types.ts/workflows/Test/badge.svg)](https://github.com/octokit/types.ts/actions?workflow=Test) +[![Greenkeeper](https://badges.greenkeeper.io/octokit/types.ts.svg)](https://greenkeeper.io/) + +## Usage + +See https://octokit.github.io/types.ts for all exported types + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) + +## License + +[MIT](LICENSE) diff --git a/node_modules/@octokit/types/package.json b/node_modules/@octokit/types/package.json new file mode 100644 index 0000000..f3625ab --- /dev/null +++ b/node_modules/@octokit/types/package.json @@ -0,0 +1,62 @@ +{ + "name": "@octokit/types", + "version": "2.0.2", + "publishConfig": { + "access": "public" + }, + "description": "Shared TypeScript definitions for Octokit projects", + "main": "src/index.ts", + "scripts": { + "docs": "typedoc --module commonjs --readme none --out docs src/", + "lint": "prettier --check '{src,test}/**/*' README.md package.json !src/generated/*", + "lint:fix": "prettier --write '{src,test}/**/*' README.md package.json !src/generated/*", + "pretest": "npm run -s lint", + "test": "./node_modules/.bin/tsc --noEmit --declaration src/index.ts", + "update-endpoints": "npm-run-all update-endpoints:*", + "update-endpoints:fetch-json": "node scripts/update-endpoints/fetch-json", + "update-endpoints:typescript": "node scripts/update-endpoints/typescript" + }, + "repository": "https://github.com/octokit/types.ts", + "keywords": [ + "github", + "api", + "sdk", + "toolkit", + "typescript" + ], + "author": "Gregor Martynus (https://twitter.com/gr2m)", + "license": "MIT", + "devDependencies": { + "@octokit/graphql": "^4.2.2", + "handlebars": "^4.4.5", + "lodash.set": "^4.3.2", + "npm-run-all": "^4.1.5", + "pascal-case": "^2.0.1", + "prettier": "^1.18.2", + "semantic-release": "^15.13.24", + "semantic-release-plugin-update-version-in-files": "^1.0.0", + "sort-keys": "^4.0.0", + "string-to-jsdoc-comment": "^1.0.0", + "typedoc": "^0.15.0", + "typescript": "^3.6.4" + }, + "release": { + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + "@semantic-release/github", + "@semantic-release/npm", + [ + "semantic-release-plugin-update-version-in-files", + { + "files": [ + "src/VERSION.ts" + ] + } + ] + ] + }, + "dependencies": { + "@types/node": ">= 8" + } +} diff --git a/node_modules/@octokit/types/scripts/update-endpoints/fetch-json.js b/node_modules/@octokit/types/scripts/update-endpoints/fetch-json.js new file mode 100644 index 0000000..309a312 --- /dev/null +++ b/node_modules/@octokit/types/scripts/update-endpoints/fetch-json.js @@ -0,0 +1,46 @@ +const { writeFileSync } = require("fs"); +const path = require("path"); + +const { graphql } = require("@octokit/graphql"); +const prettier = require("prettier"); + +if (!process.env.VERSION) { + throw new Error(`VERSION environment variable must be set`); +} + +const QUERY = ` + query ($version: String) { + endpoints(version: $version) { + name + scope(format: CAMELCASE) + id(format: CAMELCASE) + method + url + parameters { + alias + allowNull + deprecated + description + enum + name + type + required + } + } + }`; + +main(); + +async function main() { + const { endpoints } = await graphql(QUERY, { + url: "https://octokit-routes-graphql-server.now.sh/", + version: process.env.VERSION + }); + + writeFileSync( + path.resolve(__dirname, "generated", "endpoints.json"), + prettier.format(JSON.stringify(endpoints), { + parser: "json" + }) + ); +} diff --git a/node_modules/@octokit/types/scripts/update-endpoints/generated/README.md b/node_modules/@octokit/types/scripts/update-endpoints/generated/README.md new file mode 100644 index 0000000..6beaf58 --- /dev/null +++ b/node_modules/@octokit/types/scripts/update-endpoints/generated/README.md @@ -0,0 +1,3 @@ +# DO NOT EDIT FILES IN THIS DIRECTORY + +All files are generated automatically and will be overwritten next time [octokit/routes](https://github.com/octokit/routes/) has a new release. If you find a problem, please file an issue. diff --git a/node_modules/@octokit/types/scripts/update-endpoints/generated/endpoints.json b/node_modules/@octokit/types/scripts/update-endpoints/generated/endpoints.json new file mode 100644 index 0000000..6c3d62a --- /dev/null +++ b/node_modules/@octokit/types/scripts/update-endpoints/generated/endpoints.json @@ -0,0 +1,25258 @@ +[ + { + "name": "Get the authenticated GitHub App", + "scope": "apps", + "id": "getAuthenticated", + "method": "GET", + "url": "/app", + "parameters": [] + }, + { + "name": "Create a GitHub App from a manifest", + "scope": "apps", + "id": "createFromManifest", + "method": "POST", + "url": "/app-manifests/{code}/conversions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "code parameter", + "enum": null, + "name": "code", + "type": "string", + "required": true + } + ] + }, + { + "name": "List installations", + "scope": "apps", + "id": "listInstallations", + "method": "GET", + "url": "/app/installations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get an installation", + "scope": "apps", + "id": "getInstallation", + "method": "GET", + "url": "/app/installations/{installation_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "installation_id parameter", + "enum": null, + "name": "installation_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Delete an installation", + "scope": "apps", + "id": "deleteInstallation", + "method": "DELETE", + "url": "/app/installations/{installation_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "installation_id parameter", + "enum": null, + "name": "installation_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Create a new installation token", + "scope": "apps", + "id": "createInstallationToken", + "method": "POST", + "url": "/app/installations/{installation_id}/access_tokens", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "installation_id parameter", + "enum": null, + "name": "installation_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The `id`s of the repositories that the installation token can access. Providing repository `id`s restricts the access of an installation token to specific repositories. You can use the \"[List repositories](https://developer.github.com/v3/apps/installations/#list-repositories)\" endpoint to get the `id` of all repositories that an installation can access. For example, you can select specific repositories when creating an installation token to restrict the number of repositories that can be cloned using the token.", + "enum": null, + "name": "repository_ids", + "type": "integer[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The permissions granted to the access token. The permissions object includes the permission names and their access type. For a complete list of permissions and allowable values, see \"[GitHub App permissions](https://developer.github.com/apps/building-github-apps/creating-github-apps-using-url-parameters/#github-app-permissions).\"", + "enum": null, + "name": "permissions", + "type": "object", + "required": false + } + ] + }, + { + "name": "List your grants", + "scope": "oauthAuthorizations", + "id": "listGrants", + "method": "GET", + "url": "/applications/grants", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single grant", + "scope": "oauthAuthorizations", + "id": "getGrant", + "method": "GET", + "url": "/applications/grants/{grant_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "grant_id parameter", + "enum": null, + "name": "grant_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Delete a grant", + "scope": "oauthAuthorizations", + "id": "deleteGrant", + "method": "DELETE", + "url": "/applications/grants/{grant_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "grant_id parameter", + "enum": null, + "name": "grant_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Revoke a grant for an application", + "scope": "oauthAuthorizations", + "id": "revokeGrantForApplication", + "method": "DELETE", + "url": "/applications/{client_id}/grants/{access_token}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "client_id parameter", + "enum": null, + "name": "client_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "access_token parameter", + "enum": null, + "name": "access_token", + "type": "string", + "required": true + } + ] + }, + { + "name": "Check an authorization", + "scope": "oauthAuthorizations", + "id": "checkAuthorization", + "method": "GET", + "url": "/applications/{client_id}/tokens/{access_token}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "client_id parameter", + "enum": null, + "name": "client_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "access_token parameter", + "enum": null, + "name": "access_token", + "type": "string", + "required": true + } + ] + }, + { + "name": "Reset an authorization", + "scope": "oauthAuthorizations", + "id": "resetAuthorization", + "method": "POST", + "url": "/applications/{client_id}/tokens/{access_token}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "client_id parameter", + "enum": null, + "name": "client_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "access_token parameter", + "enum": null, + "name": "access_token", + "type": "string", + "required": true + } + ] + }, + { + "name": "Revoke an authorization for an application", + "scope": "oauthAuthorizations", + "id": "revokeAuthorizationForApplication", + "method": "DELETE", + "url": "/applications/{client_id}/tokens/{access_token}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "client_id parameter", + "enum": null, + "name": "client_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "access_token parameter", + "enum": null, + "name": "access_token", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a single GitHub App", + "scope": "apps", + "id": "getBySlug", + "method": "GET", + "url": "/apps/{app_slug}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "app_slug parameter", + "enum": null, + "name": "app_slug", + "type": "string", + "required": true + } + ] + }, + { + "name": "List your authorizations", + "scope": "oauthAuthorizations", + "id": "listAuthorizations", + "method": "GET", + "url": "/authorizations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a new authorization", + "scope": "oauthAuthorizations", + "id": "createAuthorization", + "method": "POST", + "url": "/authorizations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of scopes that this authorization is in.", + "enum": null, + "name": "scopes", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note.", + "enum": null, + "name": "note", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL to remind you what app the OAuth token is for.", + "enum": null, + "name": "note_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The 20 character OAuth app client key for which to create the token.", + "enum": null, + "name": "client_id", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The 40 character OAuth app client secret for which to create the token.", + "enum": null, + "name": "client_secret", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", + "enum": null, + "name": "fingerprint", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get-or-create an authorization for a specific app", + "scope": "oauthAuthorizations", + "id": "getOrCreateAuthorizationForApp", + "method": "PUT", + "url": "/authorizations/clients/{client_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "client_id parameter", + "enum": null, + "name": "client_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The 40 character OAuth app client secret associated with the client ID specified in the URL.", + "enum": null, + "name": "client_secret", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of scopes that this authorization is in.", + "enum": null, + "name": "scopes", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A note to remind you what the OAuth token is for.", + "enum": null, + "name": "note", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL to remind you what app the OAuth token is for.", + "enum": null, + "name": "note_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A unique string to distinguish an authorization from others created for the same client and user. If provided, this API is functionally equivalent to [Get-or-create an authorization for a specific app and fingerprint](https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint).", + "enum": null, + "name": "fingerprint", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get-or-create an authorization for a specific app and fingerprint", + "scope": "oauthAuthorizations", + "id": "getOrCreateAuthorizationForAppAndFingerprint", + "method": "PUT", + "url": "/authorizations/clients/{client_id}/{fingerprint}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "client_id parameter", + "enum": null, + "name": "client_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "fingerprint parameter", + "enum": null, + "name": "fingerprint", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The 40 character OAuth app client secret associated with the client ID specified in the URL.", + "enum": null, + "name": "client_secret", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of scopes that this authorization is in.", + "enum": null, + "name": "scopes", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A note to remind you what the OAuth token is for.", + "enum": null, + "name": "note", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL to remind you what app the OAuth token is for.", + "enum": null, + "name": "note_url", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get-or-create an authorization for a specific app and fingerprint", + "scope": "oauthAuthorizations", + "id": "getOrCreateAuthorizationForAppFingerprint", + "method": "PUT", + "url": "/authorizations/clients/{client_id}/{fingerprint}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "client_id parameter", + "enum": null, + "name": "client_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "fingerprint parameter", + "enum": null, + "name": "fingerprint", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The 40 character OAuth app client secret associated with the client ID specified in the URL.", + "enum": null, + "name": "client_secret", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of scopes that this authorization is in.", + "enum": null, + "name": "scopes", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A note to remind you what the OAuth token is for.", + "enum": null, + "name": "note", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL to remind you what app the OAuth token is for.", + "enum": null, + "name": "note_url", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a single authorization", + "scope": "oauthAuthorizations", + "id": "getAuthorization", + "method": "GET", + "url": "/authorizations/{authorization_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "authorization_id parameter", + "enum": null, + "name": "authorization_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Update an existing authorization", + "scope": "oauthAuthorizations", + "id": "updateAuthorization", + "method": "PATCH", + "url": "/authorizations/{authorization_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "authorization_id parameter", + "enum": null, + "name": "authorization_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Replaces the authorization scopes with these.", + "enum": null, + "name": "scopes", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of scopes to add to this authorization.", + "enum": null, + "name": "add_scopes", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of scopes to remove from this authorization.", + "enum": null, + "name": "remove_scopes", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note.", + "enum": null, + "name": "note", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL to remind you what app the OAuth token is for.", + "enum": null, + "name": "note_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A unique string to distinguish an authorization from others created for the same client ID and user.", + "enum": null, + "name": "fingerprint", + "type": "string", + "required": false + } + ] + }, + { + "name": "Delete an authorization", + "scope": "oauthAuthorizations", + "id": "deleteAuthorization", + "method": "DELETE", + "url": "/authorizations/{authorization_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "authorization_id parameter", + "enum": null, + "name": "authorization_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List all codes of conduct", + "scope": "codesOfConduct", + "id": "listConductCodes", + "method": "GET", + "url": "/codes_of_conduct", + "parameters": [] + }, + { + "name": "Get an individual code of conduct", + "scope": "codesOfConduct", + "id": "getConductCode", + "method": "GET", + "url": "/codes_of_conduct/{key}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "key parameter", + "enum": null, + "name": "key", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create a content attachment", + "scope": "apps", + "id": "createContentAttachment", + "method": "POST", + "url": "/content_references/{content_reference_id}/attachments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "content_reference_id parameter", + "enum": null, + "name": "content_reference_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the content attachment displayed in the body or comment of an issue or pull request.", + "enum": null, + "name": "title", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The body text of the content attachment displayed in the body or comment of an issue or pull request. This parameter supports markdown.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get", + "scope": "emojis", + "id": "get", + "method": "GET", + "url": "/emojis", + "parameters": [] + }, + { + "name": "List public events", + "scope": "activity", + "id": "listPublicEvents", + "method": "GET", + "url": "/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List feeds", + "scope": "activity", + "id": "listFeeds", + "method": "GET", + "url": "/feeds", + "parameters": [] + }, + { + "name": "List the authenticated user's gists or if called anonymously, this will return all public gists", + "scope": "gists", + "id": "list", + "method": "GET", + "url": "/gists", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a gist", + "scope": "gists", + "id": "create", + "method": "POST", + "url": "/gists", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The filenames and content of each file in the gist. The keys in the `files` object represent the filename and have the type `string`.", + "enum": null, + "name": "files", + "type": "object", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The content of the file.", + "enum": null, + "name": "files.content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A descriptive name for this gist.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "When `true`, the gist will be public and available for anyone to see.", + "enum": null, + "name": "public", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "List all public gists", + "scope": "gists", + "id": "listPublic", + "method": "GET", + "url": "/gists/public", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List starred gists", + "scope": "gists", + "id": "listStarred", + "method": "GET", + "url": "/gists/starred", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single gist", + "scope": "gists", + "id": "get", + "method": "GET", + "url": "/gists/{gist_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + } + ] + }, + { + "name": "Edit a gist", + "scope": "gists", + "id": "update", + "method": "PATCH", + "url": "/gists/{gist_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A descriptive name for this gist.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The filenames and content that make up this gist.", + "enum": null, + "name": "files", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The updated content of the file.", + "enum": null, + "name": "files.content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new name for this file. To delete a file, set the value of the filename to `null`.", + "enum": null, + "name": "files.filename", + "type": "string", + "required": false + } + ] + }, + { + "name": "Delete a gist", + "scope": "gists", + "id": "delete", + "method": "DELETE", + "url": "/gists/{gist_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + } + ] + }, + { + "name": "List comments on a gist", + "scope": "gists", + "id": "listComments", + "method": "GET", + "url": "/gists/{gist_id}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a comment", + "scope": "gists", + "id": "createComment", + "method": "POST", + "url": "/gists/{gist_id}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The comment text.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a single comment", + "scope": "gists", + "id": "getComment", + "method": "GET", + "url": "/gists/{gist_id}/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a comment", + "scope": "gists", + "id": "updateComment", + "method": "PATCH", + "url": "/gists/{gist_id}/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The comment text.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Delete a comment", + "scope": "gists", + "id": "deleteComment", + "method": "DELETE", + "url": "/gists/{gist_id}/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List gist commits", + "scope": "gists", + "id": "listCommits", + "method": "GET", + "url": "/gists/{gist_id}/commits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Fork a gist", + "scope": "gists", + "id": "fork", + "method": "POST", + "url": "/gists/{gist_id}/forks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + } + ] + }, + { + "name": "List gist forks", + "scope": "gists", + "id": "listForks", + "method": "GET", + "url": "/gists/{gist_id}/forks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Star a gist", + "scope": "gists", + "id": "star", + "method": "PUT", + "url": "/gists/{gist_id}/star", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + } + ] + }, + { + "name": "Unstar a gist", + "scope": "gists", + "id": "unstar", + "method": "DELETE", + "url": "/gists/{gist_id}/star", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + } + ] + }, + { + "name": "Check if a gist is starred", + "scope": "gists", + "id": "checkIsStarred", + "method": "GET", + "url": "/gists/{gist_id}/star", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a specific revision of a gist", + "scope": "gists", + "id": "getRevision", + "method": "GET", + "url": "/gists/{gist_id}/{sha}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gist_id parameter", + "enum": null, + "name": "gist_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "sha parameter", + "enum": null, + "name": "sha", + "type": "string", + "required": true + } + ] + }, + { + "name": "Listing available templates", + "scope": "gitignore", + "id": "listTemplates", + "method": "GET", + "url": "/gitignore/templates", + "parameters": [] + }, + { + "name": "Get a single template", + "scope": "gitignore", + "id": "getTemplate", + "method": "GET", + "url": "/gitignore/templates/{name}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "name parameter", + "enum": null, + "name": "name", + "type": "string", + "required": true + } + ] + }, + { + "name": "List repositories", + "scope": "apps", + "id": "listRepos", + "method": "GET", + "url": "/installation/repositories", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List all issues assigned to the authenticated user across all visible repositories including owned repositories, member repositories, and organization repositories", + "scope": "issues", + "id": "list", + "method": "GET", + "url": "/issues", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all`: All issues the authenticated user can see, regardless of participation or creation", + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "name": "filter", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of comma separated label names. Example: `bug,ui,@high`", + "enum": null, + "name": "labels", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "enum": ["created", "updated", "comments"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The direction of the sort. Can be either `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Search issues", + "scope": "search", + "id": "issuesLegacy", + "method": "GET", + "url": "/legacy/issues/search/{owner}/{repository}/{state}/{keyword}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repository parameter", + "enum": null, + "name": "repository", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the issues to return. Can be either `open` or `closed`.", + "enum": ["open", "closed"], + "name": "state", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The search term.", + "enum": null, + "name": "keyword", + "type": "string", + "required": true + } + ] + }, + { + "name": "Search repositories", + "scope": "search", + "id": "reposLegacy", + "method": "GET", + "url": "/legacy/repos/search/{keyword}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The search term.", + "enum": null, + "name": "keyword", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filter results by language.", + "enum": null, + "name": "language", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The page number to fetch.", + "enum": null, + "name": "start_page", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The sort field. One of `stars`, `forks`, or `updated`. Default: results are sorted by best match.", + "enum": ["stars", "forks", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The sort field. if `sort` param is provided. Can be either `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "order", + "type": "string", + "required": false + } + ] + }, + { + "name": "Email search", + "scope": "search", + "id": "emailLegacy", + "method": "GET", + "url": "/legacy/user/email/{email}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email address.", + "enum": null, + "name": "email", + "type": "string", + "required": true + } + ] + }, + { + "name": "Search users", + "scope": "search", + "id": "usersLegacy", + "method": "GET", + "url": "/legacy/user/search/{keyword}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The search term.", + "enum": null, + "name": "keyword", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The page number to fetch.", + "enum": null, + "name": "start_page", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The sort field. One of `stars`, `forks`, or `updated`. Default: results are sorted by best match.", + "enum": ["stars", "forks", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The sort field. if `sort` param is provided. Can be either `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "order", + "type": "string", + "required": false + } + ] + }, + { + "name": "List commonly used licenses", + "scope": "licenses", + "id": "listCommonlyUsed", + "method": "GET", + "url": "/licenses", + "parameters": [] + }, + { + "name": "List commonly used licenses", + "scope": "licenses", + "id": "list", + "method": "GET", + "url": "/licenses", + "parameters": [] + }, + { + "name": "Get an individual license", + "scope": "licenses", + "id": "get", + "method": "GET", + "url": "/licenses/{license}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "license parameter", + "enum": null, + "name": "license", + "type": "string", + "required": true + } + ] + }, + { + "name": "Render an arbitrary Markdown document", + "scope": "markdown", + "id": "render", + "method": "POST", + "url": "/markdown", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The Markdown text to render in HTML. Markdown content must be 400 KB or less.", + "enum": null, + "name": "text", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The rendering mode. Can be either: \n\\* `markdown` to render a document in plain Markdown, just like README.md files are rendered. \n\\* `gfm` to render a document in [GitHub Flavored Markdown](https://github.github.com/gfm/), which creates links for user mentions as well as references to SHA-1 hashes, issues, and pull requests.", + "enum": ["markdown", "gfm"], + "name": "mode", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The repository context to use when creating references in `gfm` mode. Omit this parameter when using `markdown` mode.", + "enum": null, + "name": "context", + "type": "string", + "required": false + } + ] + }, + { + "name": "Render a Markdown document in raw mode", + "scope": "markdown", + "id": "renderRaw", + "method": "POST", + "url": "/markdown/raw", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "data parameter", + "enum": null, + "name": "data", + "type": "string", + "required": true + } + ] + }, + { + "name": "Check if a GitHub account is associated with any Marketplace listing", + "scope": "apps", + "id": "checkAccountIsAssociatedWithAny", + "method": "GET", + "url": "/marketplace_listing/accounts/{account_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "account_id parameter", + "enum": null, + "name": "account_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List all plans for your Marketplace listing", + "scope": "apps", + "id": "listPlans", + "method": "GET", + "url": "/marketplace_listing/plans", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List all GitHub accounts (user or organization) on a specific plan", + "scope": "apps", + "id": "listAccountsUserOrOrgOnPlan", + "method": "GET", + "url": "/marketplace_listing/plans/{plan_id}/accounts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "plan_id parameter", + "enum": null, + "name": "plan_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`.", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check if a GitHub account is associated with any Marketplace listing (stubbed)", + "scope": "apps", + "id": "checkAccountIsAssociatedWithAnyStubbed", + "method": "GET", + "url": "/marketplace_listing/stubbed/accounts/{account_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "account_id parameter", + "enum": null, + "name": "account_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List all plans for your Marketplace listing (stubbed)", + "scope": "apps", + "id": "listPlansStubbed", + "method": "GET", + "url": "/marketplace_listing/stubbed/plans", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List all GitHub accounts (user or organization) on a specific plan (stubbed)", + "scope": "apps", + "id": "listAccountsUserOrOrgOnPlanStubbed", + "method": "GET", + "url": "/marketplace_listing/stubbed/plans/{plan_id}/accounts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "plan_id parameter", + "enum": null, + "name": "plan_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`.", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get", + "scope": "meta", + "id": "get", + "method": "GET", + "url": "/meta", + "parameters": [] + }, + { + "name": "List public events for a network of repositories", + "scope": "activity", + "id": "listPublicEventsForRepoNetwork", + "method": "GET", + "url": "/networks/{owner}/{repo}/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List your notifications", + "scope": "activity", + "id": "listNotifications", + "method": "GET", + "url": "/notifications", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If `true`, show notifications marked as read.", + "enum": null, + "name": "all", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If `true`, only shows notifications in which the user is directly participating or mentioned.", + "enum": null, + "name": "participating", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "before", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Mark as read", + "scope": "activity", + "id": "markAsRead", + "method": "PUT", + "url": "/notifications", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp.", + "enum": null, + "name": "last_read_at", + "type": "string", + "required": false + } + ] + }, + { + "name": "View a single thread", + "scope": "activity", + "id": "getThread", + "method": "GET", + "url": "/notifications/threads/{thread_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "thread_id parameter", + "enum": null, + "name": "thread_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Mark a thread as read", + "scope": "activity", + "id": "markThreadAsRead", + "method": "PATCH", + "url": "/notifications/threads/{thread_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "thread_id parameter", + "enum": null, + "name": "thread_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Get a thread subscription", + "scope": "activity", + "id": "getThreadSubscription", + "method": "GET", + "url": "/notifications/threads/{thread_id}/subscription", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "thread_id parameter", + "enum": null, + "name": "thread_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Set a thread subscription", + "scope": "activity", + "id": "setThreadSubscription", + "method": "PUT", + "url": "/notifications/threads/{thread_id}/subscription", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "thread_id parameter", + "enum": null, + "name": "thread_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Unsubscribes and subscribes you to a conversation. Set `ignored` to `true` to block all notifications from this thread.", + "enum": null, + "name": "ignored", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a thread subscription", + "scope": "activity", + "id": "deleteThreadSubscription", + "method": "DELETE", + "url": "/notifications/threads/{thread_id}/subscription", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "thread_id parameter", + "enum": null, + "name": "thread_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List all organizations", + "scope": "orgs", + "id": "list", + "method": "GET", + "url": "/organizations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The integer ID of the last Organization that you've seen.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get an organization", + "scope": "orgs", + "id": "get", + "method": "GET", + "url": "/orgs/{org}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Edit an organization", + "scope": "orgs", + "id": "update", + "method": "PATCH", + "url": "/orgs/{org}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Billing email address. This address is not publicized.", + "enum": null, + "name": "billing_email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The company name.", + "enum": null, + "name": "company", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The publicly visible email address.", + "enum": null, + "name": "email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The location.", + "enum": null, + "name": "location", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The shorthand name of the company.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The description of the company.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Toggles whether organization projects are enabled for the organization.", + "enum": null, + "name": "has_organization_projects", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Toggles whether repository projects are enabled for repositories that belong to the organization.", + "enum": null, + "name": "has_repository_projects", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Default permission level members have for organization repositories: \n\\* `read` - can pull, but not push to or administer this repository. \n\\* `write` - can pull and push, but not administer this repository. \n\\* `admin` - can pull, push, and administer this repository. \n\\* `none` - no permissions granted by default.", + "enum": ["read", "write", "admin", "none"], + "name": "default_repository_permission", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Toggles the ability of non-admin organization members to create repositories. Can be one of: \n\\* `true` - all organization members can create repositories. \n\\* `false` - only admin members can create repositories. \nDefault: `true` \n**Note:** Another parameter can override the this parameter. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. **Note:** Another parameter can override the this parameter. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details.", + "enum": null, + "name": "members_can_create_repositories", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies which types of repositories non-admin organization members can create. Can be one of: \n\\* `all` - all organization members can create public and private repositories. \n\\* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on [GitHub Business Cloud](https://github.com/pricing/business-cloud). \n\\* `none` - only admin members can create repositories. \n**Note:** Using this parameter will override values set in `members_can_create_repositories`. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details.", + "enum": ["all", "private", "none"], + "name": "members_allowed_repository_creation_type", + "type": "string", + "required": false + } + ] + }, + { + "name": "List blocked users", + "scope": "orgs", + "id": "listBlockedUsers", + "method": "GET", + "url": "/orgs/{org}/blocks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Check whether a user is blocked from an organization", + "scope": "orgs", + "id": "checkBlockedUser", + "method": "GET", + "url": "/orgs/{org}/blocks/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Block a user", + "scope": "orgs", + "id": "blockUser", + "method": "PUT", + "url": "/orgs/{org}/blocks/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Unblock a user", + "scope": "orgs", + "id": "unblockUser", + "method": "DELETE", + "url": "/orgs/{org}/blocks/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List credential authorizations for an organization", + "scope": "orgs", + "id": "listCredentialAuthorizations", + "method": "GET", + "url": "/orgs/{org}/credential-authorizations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove a credential authorization for an organization", + "scope": "orgs", + "id": "removeCredentialAuthorization", + "method": "DELETE", + "url": "/orgs/{org}/credential-authorizations/{credential_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "credential_id parameter", + "enum": null, + "name": "credential_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List public events for an organization", + "scope": "activity", + "id": "listPublicEventsForOrg", + "method": "GET", + "url": "/orgs/{org}/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List hooks", + "scope": "orgs", + "id": "listHooks", + "method": "GET", + "url": "/orgs/{org}/hooks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a hook", + "scope": "orgs", + "id": "createHook", + "method": "POST", + "url": "/orgs/{org}/hooks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Must be passed as \"web\".", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#create-hook-config-params).", + "enum": null, + "name": "config", + "type": "object", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The URL to which the payloads will be delivered.", + "enum": null, + "name": "config.url", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`.", + "enum": null, + "name": "config.content_type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value in the [`X-Hub-Signature`](https://developer.github.com/webhooks/#delivery-headers) header.", + "enum": null, + "name": "config.secret", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.**", + "enum": null, + "name": "config.insecure_ssl", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for.", + "enum": null, + "name": "events", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "enum": null, + "name": "active", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get single hook", + "scope": "orgs", + "id": "getHook", + "method": "GET", + "url": "/orgs/{org}/hooks/{hook_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a hook", + "scope": "orgs", + "id": "updateHook", + "method": "PATCH", + "url": "/orgs/{org}/hooks/{hook_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#update-hook-config-params).", + "enum": null, + "name": "config", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The URL to which the payloads will be delivered.", + "enum": null, + "name": "config.url", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`.", + "enum": null, + "name": "config.content_type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value in the [`X-Hub-Signature`](https://developer.github.com/webhooks/#delivery-headers) header.", + "enum": null, + "name": "config.secret", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.**", + "enum": null, + "name": "config.insecure_ssl", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for.", + "enum": null, + "name": "events", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "enum": null, + "name": "active", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a hook", + "scope": "orgs", + "id": "deleteHook", + "method": "DELETE", + "url": "/orgs/{org}/hooks/{hook_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Ping a hook", + "scope": "orgs", + "id": "pingHook", + "method": "POST", + "url": "/orgs/{org}/hooks/{hook_id}/pings", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Get an organization installation", + "scope": "apps", + "id": "getOrgInstallation", + "method": "GET", + "url": "/orgs/{org}/installation", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get an organization installation", + "scope": "apps", + "id": "findOrgInstallation", + "method": "GET", + "url": "/orgs/{org}/installation", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get interaction restrictions for an organization", + "scope": "interactions", + "id": "getRestrictionsForOrg", + "method": "GET", + "url": "/orgs/{org}/interaction-limits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add or update interaction restrictions for an organization", + "scope": "interactions", + "id": "addOrUpdateRestrictionsForOrg", + "method": "PUT", + "url": "/orgs/{org}/interaction-limits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies the group of GitHub users who can comment, open issues, or create pull requests in public repositories for the given organization. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`.", + "enum": ["existing_users", "contributors_only", "collaborators_only"], + "name": "limit", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove interaction restrictions for an organization", + "scope": "interactions", + "id": "removeRestrictionsForOrg", + "method": "DELETE", + "url": "/orgs/{org}/interaction-limits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "List pending organization invitations", + "scope": "orgs", + "id": "listPendingInvitations", + "method": "GET", + "url": "/orgs/{org}/invitations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create organization invitation", + "scope": "orgs", + "id": "createInvitation", + "method": "POST", + "url": "/orgs/{org}/invitations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required unless you provide `email`**. GitHub user ID for the person you are inviting.", + "enum": null, + "name": "invitee_id", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user.", + "enum": null, + "name": "email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specify role for new member. Can be one of: \n\\* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. \n\\* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. \n\\* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization.", + "enum": ["admin", "direct_member", "billing_manager"], + "name": "role", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specify IDs for the teams you want to invite new members to.", + "enum": null, + "name": "team_ids", + "type": "integer[]", + "required": false + } + ] + }, + { + "name": "List organization invitation teams", + "scope": "orgs", + "id": "listInvitationTeams", + "method": "GET", + "url": "/orgs/{org}/invitations/{invitation_id}/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "invitation_id parameter", + "enum": null, + "name": "invitation_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List all issues for a given organization assigned to the authenticated user", + "scope": "issues", + "id": "listForOrg", + "method": "GET", + "url": "/orgs/{org}/issues", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all`: All issues the authenticated user can see, regardless of participation or creation", + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "name": "filter", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of comma separated label names. Example: `bug,ui,@high`", + "enum": null, + "name": "labels", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "enum": ["created", "updated", "comments"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The direction of the sort. Can be either `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Members list", + "scope": "orgs", + "id": "listMembers", + "method": "GET", + "url": "/orgs/{org}/members", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filter members returned in the list. Can be one of: \n\\* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. \n\\* `all` - All members the authenticated user can see.", + "enum": ["2fa_disabled", "all"], + "name": "filter", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filter members returned by their role. Can be one of: \n\\* `all` - All members of the organization, regardless of role. \n\\* `admin` - Organization owners. \n\\* `member` - Non-owner organization members.", + "enum": ["all", "admin", "member"], + "name": "role", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check membership", + "scope": "orgs", + "id": "checkMembership", + "method": "GET", + "url": "/orgs/{org}/members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove a member", + "scope": "orgs", + "id": "removeMember", + "method": "DELETE", + "url": "/orgs/{org}/members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get organization membership", + "scope": "orgs", + "id": "getMembership", + "method": "GET", + "url": "/orgs/{org}/memberships/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add or update organization membership", + "scope": "orgs", + "id": "addOrUpdateMembership", + "method": "PUT", + "url": "/orgs/{org}/memberships/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The role to give the user in the organization. Can be one of: \n\\* `admin` - The user will become an owner of the organization. \n\\* `member` - The user will become a non-owner member of the organization.", + "enum": ["admin", "member"], + "name": "role", + "type": "string", + "required": false + } + ] + }, + { + "name": "Remove organization membership", + "scope": "orgs", + "id": "removeMembership", + "method": "DELETE", + "url": "/orgs/{org}/memberships/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Start an organization migration", + "scope": "migrations", + "id": "startForOrg", + "method": "POST", + "url": "/orgs/{org}/migrations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of arrays indicating which repositories should be migrated.", + "enum": null, + "name": "repositories", + "type": "string[]", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates whether repositories should be locked (to prevent manipulation) while migrating data.", + "enum": null, + "name": "lock_repositories", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates whether attachments should be excluded from the migration (to reduce migration archive file size).", + "enum": null, + "name": "exclude_attachments", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get a list of organization migrations", + "scope": "migrations", + "id": "listForOrg", + "method": "GET", + "url": "/orgs/{org}/migrations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get the status of an organization migration", + "scope": "migrations", + "id": "getStatusForOrg", + "method": "GET", + "url": "/orgs/{org}/migrations/{migration_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Download an organization migration archive", + "scope": "migrations", + "id": "getArchiveForOrg", + "method": "GET", + "url": "/orgs/{org}/migrations/{migration_id}/archive", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Delete an organization migration archive", + "scope": "migrations", + "id": "deleteArchiveForOrg", + "method": "DELETE", + "url": "/orgs/{org}/migrations/{migration_id}/archive", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Unlock an organization repository", + "scope": "migrations", + "id": "unlockRepoForOrg", + "method": "DELETE", + "url": "/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo_name parameter", + "enum": null, + "name": "repo_name", + "type": "string", + "required": true + } + ] + }, + { + "name": "List outside collaborators", + "scope": "orgs", + "id": "listOutsideCollaborators", + "method": "GET", + "url": "/orgs/{org}/outside_collaborators", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filter the list of outside collaborators. Can be one of: \n\\* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. \n\\* `all`: All outside collaborators.", + "enum": ["2fa_disabled", "all"], + "name": "filter", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Remove outside collaborator", + "scope": "orgs", + "id": "removeOutsideCollaborator", + "method": "DELETE", + "url": "/orgs/{org}/outside_collaborators/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Convert member to outside collaborator", + "scope": "orgs", + "id": "convertMemberToOutsideCollaborator", + "method": "PUT", + "url": "/orgs/{org}/outside_collaborators/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List organization projects", + "scope": "projects", + "id": "listForOrg", + "method": "GET", + "url": "/orgs/{org}/projects", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create an organization project", + "scope": "projects", + "id": "createForOrg", + "method": "POST", + "url": "/orgs/{org}/projects", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the project.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The description of the project.", + "enum": null, + "name": "body", + "type": "string", + "required": false + } + ] + }, + { + "name": "Public members list", + "scope": "orgs", + "id": "listPublicMembers", + "method": "GET", + "url": "/orgs/{org}/public_members", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check public membership", + "scope": "orgs", + "id": "checkPublicMembership", + "method": "GET", + "url": "/orgs/{org}/public_members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Publicize a user's membership", + "scope": "orgs", + "id": "publicizeMembership", + "method": "PUT", + "url": "/orgs/{org}/public_members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Conceal a user's membership", + "scope": "orgs", + "id": "concealMembership", + "method": "DELETE", + "url": "/orgs/{org}/public_members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List organization repositories", + "scope": "repos", + "id": "listForOrg", + "method": "GET", + "url": "/orgs/{org}/repos", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`.", + "enum": ["all", "public", "private", "forks", "sources", "member"], + "name": "type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", + "enum": ["created", "updated", "pushed", "full_name"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc`", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Creates a new repository in the specified organization", + "scope": "repos", + "id": "createInOrg", + "method": "POST", + "url": "/orgs/{org}/repos", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the repository.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the repository.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL with more information about the repository.", + "enum": null, + "name": "homepage", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to create a private repository or `false` to create a public one. Creating private repositories requires a paid GitHub account.", + "enum": null, + "name": "private", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable issues for this repository or `false` to disable them.", + "enum": null, + "name": "has_issues", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", + "enum": null, + "name": "has_projects", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", + "enum": null, + "name": "has_wiki", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", + "enum": null, + "name": "is_template", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.", + "enum": null, + "name": "team_id", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Pass `true` to create an initial commit with empty README.", + "enum": null, + "name": "auto_init", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, \"Haskell\".", + "enum": null, + "name": "gitignore_template", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, \"mit\" or \"mpl-2.0\".", + "enum": null, + "name": "license_template", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "enum": null, + "name": "allow_squash_merge", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "enum": null, + "name": "allow_merge_commit", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "enum": null, + "name": "allow_rebase_merge", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "List IdP groups in an organization", + "scope": "teams", + "id": "listIdPGroupsForOrg", + "method": "GET", + "url": "/orgs/{org}/team-sync/groups", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List teams", + "scope": "teams", + "id": "list", + "method": "GET", + "url": "/orgs/{org}/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create team", + "scope": "teams", + "id": "create", + "method": "POST", + "url": "/orgs/{org}/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the team.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The description of the team.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The logins of organization members to add as maintainers of the team.", + "enum": null, + "name": "maintainers", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The full name (e.g., \"organization-name/repository-name\") of repositories to add the team to.", + "enum": null, + "name": "repo_names", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The level of privacy this team should have. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \nDefault: `secret` \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization. \nDefault for child team: `closed` \n**Note**: You must pass the `hellcat-preview` media type to set privacy default to `closed` for child teams.", + "enum": ["secret", "closed"], + "name": "privacy", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", + "enum": ["pull", "push", "admin"], + "name": "permission", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter.", + "enum": null, + "name": "parent_team_id", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get team by name", + "scope": "teams", + "id": "getByName", + "method": "GET", + "url": "/orgs/{org}/teams/{team_slug}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_slug parameter", + "enum": null, + "name": "team_slug", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a project card", + "scope": "projects", + "id": "getCard", + "method": "GET", + "url": "/projects/columns/cards/{card_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "card_id parameter", + "enum": null, + "name": "card_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Update a project card", + "scope": "projects", + "id": "updateCard", + "method": "PATCH", + "url": "/projects/columns/cards/{card_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "card_id parameter", + "enum": null, + "name": "card_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The card's note content. Only valid for cards without another type of content, so this cannot be specified if the card already has a `content_id` and `content_type`.", + "enum": null, + "name": "note", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Use `true` to archive a project card. Specify `false` if you need to restore a previously archived project card.", + "enum": null, + "name": "archived", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a project card", + "scope": "projects", + "id": "deleteCard", + "method": "DELETE", + "url": "/projects/columns/cards/{card_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "card_id parameter", + "enum": null, + "name": "card_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Move a project card", + "scope": "projects", + "id": "moveCard", + "method": "POST", + "url": "/projects/columns/cards/{card_id}/moves", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "card_id parameter", + "enum": null, + "name": "card_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `top`, `bottom`, or `after:`, where `` is the `id` value of a card in the same column, or in the new column specified by `column_id`.", + "enum": null, + "name": "position", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The `id` value of a column in the same project.", + "enum": null, + "name": "column_id", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a project column", + "scope": "projects", + "id": "getColumn", + "method": "GET", + "url": "/projects/columns/{column_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "column_id parameter", + "enum": null, + "name": "column_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Update a project column", + "scope": "projects", + "id": "updateColumn", + "method": "PATCH", + "url": "/projects/columns/{column_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "column_id parameter", + "enum": null, + "name": "column_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new name of the column.", + "enum": null, + "name": "name", + "type": "string", + "required": true + } + ] + }, + { + "name": "Delete a project column", + "scope": "projects", + "id": "deleteColumn", + "method": "DELETE", + "url": "/projects/columns/{column_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "column_id parameter", + "enum": null, + "name": "column_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List project cards", + "scope": "projects", + "id": "listCards", + "method": "GET", + "url": "/projects/columns/{column_id}/cards", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "column_id parameter", + "enum": null, + "name": "column_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`.", + "enum": ["all", "archived", "not_archived"], + "name": "archived_state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a project card", + "scope": "projects", + "id": "createCard", + "method": "POST", + "url": "/projects/columns/{column_id}/cards", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "column_id parameter", + "enum": null, + "name": "column_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The card's note content. Only valid for cards without another type of content, so you must omit when specifying `content_id` and `content_type`.", + "enum": null, + "name": "note", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The issue or pull request id you want to associate with this card. You can use the [List issues for a repository](https://developer.github.com/v3/issues/#list-issues-for-a-repository) and [List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests) endpoints to find this id. \n**Note:** Depending on whether you use the issue id or pull request id, you will need to specify `Issue` or `PullRequest` as the `content_type`.", + "enum": null, + "name": "content_id", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required if you provide `content_id`**. The type of content you want to associate with this card. Use `Issue` when `content_id` is an issue id and use `PullRequest` when `content_id` is a pull request id.", + "enum": null, + "name": "content_type", + "type": "string", + "required": false + } + ] + }, + { + "name": "Move a project column", + "scope": "projects", + "id": "moveColumn", + "method": "POST", + "url": "/projects/columns/{column_id}/moves", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "column_id parameter", + "enum": null, + "name": "column_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `first`, `last`, or `after:`, where `` is the `id` value of a column in the same project.", + "enum": null, + "name": "position", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a project", + "scope": "projects", + "id": "get", + "method": "GET", + "url": "/projects/{project_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Update a project", + "scope": "projects", + "id": "update", + "method": "PATCH", + "url": "/projects/{project_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the project.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The description of the project.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "State of the project. Either `open` or `closed`.", + "enum": ["open", "closed"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The permission level that determines whether all members of the project's organization can see and/or make changes to the project. Setting `organization_permission` is only available for organization projects. If an organization member belongs to a team with a higher level of access or is a collaborator with a higher level of access, their permission level is not lowered by `organization_permission`. For information on changing access for a team or collaborator, see [Add or update team project](https://developer.github.com/v3/teams/#add-or-update-team-project) or [Add user as a collaborator](https://developer.github.com/v3/projects/collaborators/#add-user-as-a-collaborator). \n \n**Note:** Updating a project's `organization_permission` requires `admin` access to the project. \n \nCan be one of: \n\\* `read` - Organization members can read, but not write to or administer this project. \n\\* `write` - Organization members can read and write, but not administer this project. \n\\* `admin` - Organization members can read, write and administer this project. \n\\* `none` - Organization members can only see this project if it is public.", + "enum": null, + "name": "organization_permission", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sets the visibility of a project board. Setting `private` is only available for organization and user projects. **Note:** Updating a project's visibility requires `admin` access to the project. \n \nCan be one of: \n\\* `false` - Anyone can see the project. \n\\* `true` - Only the user can view a project board created on a user account. Organization members with the appropriate `organization_permission` can see project boards in an organization account.", + "enum": null, + "name": "private", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a project", + "scope": "projects", + "id": "delete", + "method": "DELETE", + "url": "/projects/{project_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List collaborators", + "scope": "projects", + "id": "listCollaborators", + "method": "GET", + "url": "/projects/{project_id}/collaborators", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters the collaborators by their affiliation. Can be one of: \n\\* `outside`: Outside collaborators of a project that are not a member of the project's organization. \n\\* `direct`: Collaborators with permissions to a project, regardless of organization membership status. \n\\* `all`: All collaborators the authenticated user can see.", + "enum": ["outside", "direct", "all"], + "name": "affiliation", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Add user as a collaborator", + "scope": "projects", + "id": "addCollaborator", + "method": "PUT", + "url": "/projects/{project_id}/collaborators/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The permission to grant the collaborator. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://developer.github.com/v3/#http-verbs).\" Can be one of: \n\\* `read` - can read, but not write to or administer this project. \n\\* `write` - can read and write, but not administer this project. \n\\* `admin` - can read, write and administer this project.", + "enum": ["read", "write", "admin"], + "name": "permission", + "type": "string", + "required": false + } + ] + }, + { + "name": "Remove user as a collaborator", + "scope": "projects", + "id": "removeCollaborator", + "method": "DELETE", + "url": "/projects/{project_id}/collaborators/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Review a user's permission level", + "scope": "projects", + "id": "reviewUserPermissionLevel", + "method": "GET", + "url": "/projects/{project_id}/collaborators/{username}/permission", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List project columns", + "scope": "projects", + "id": "listColumns", + "method": "GET", + "url": "/projects/{project_id}/columns", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a project column", + "scope": "projects", + "id": "createColumn", + "method": "POST", + "url": "/projects/{project_id}/columns", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the column.", + "enum": null, + "name": "name", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get your current rate limit status", + "scope": "rateLimit", + "id": "get", + "method": "GET", + "url": "/rate_limit", + "parameters": [] + }, + { + "name": "Delete a reaction", + "scope": "reactions", + "id": "delete", + "method": "DELETE", + "url": "/reactions/{reaction_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "reaction_id parameter", + "enum": null, + "name": "reaction_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Get", + "scope": "repos", + "id": "get", + "method": "GET", + "url": "/repos/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Edit", + "scope": "repos", + "id": "update", + "method": "PATCH", + "url": "/repos/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the repository.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the repository.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL with more information about the repository.", + "enum": null, + "name": "homepage", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to make the repository private or `false` to make it public. Creating private repositories requires a paid GitHub account. Default: `false`. \n**Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private.", + "enum": null, + "name": "private", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable issues for this repository or `false` to disable them.", + "enum": null, + "name": "has_issues", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", + "enum": null, + "name": "has_projects", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", + "enum": null, + "name": "has_wiki", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", + "enum": null, + "name": "is_template", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Updates the default branch for this repository.", + "enum": null, + "name": "default_branch", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "enum": null, + "name": "allow_squash_merge", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "enum": null, + "name": "allow_merge_commit", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "enum": null, + "name": "allow_rebase_merge", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "`true` to archive this repository. **Note**: You cannot unarchive repositories through the API.", + "enum": null, + "name": "archived", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a repository", + "scope": "repos", + "id": "delete", + "method": "DELETE", + "url": "/repos/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List assignees", + "scope": "issues", + "id": "listAssignees", + "method": "GET", + "url": "/repos/{owner}/{repo}/assignees", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check assignee", + "scope": "issues", + "id": "checkAssignee", + "method": "GET", + "url": "/repos/{owner}/{repo}/assignees/{assignee}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "assignee parameter", + "enum": null, + "name": "assignee", + "type": "string", + "required": true + } + ] + }, + { + "name": "Enable automated security fixes", + "scope": "repos", + "id": "enableAutomatedSecurityFixes", + "method": "PUT", + "url": "/repos/{owner}/{repo}/automated-security-fixes", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Disable automated security fixes", + "scope": "repos", + "id": "disableAutomatedSecurityFixes", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/automated-security-fixes", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List branches", + "scope": "repos", + "id": "listBranches", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches.", + "enum": null, + "name": "protected", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get branch", + "scope": "repos", + "id": "getBranch", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get branch protection", + "scope": "repos", + "id": "getBranchProtection", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update branch protection", + "scope": "repos", + "id": "updateBranchProtection", + "method": "PUT", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": true, + "deprecated": null, + "description": "Require status checks to pass before merging. Set to `null` to disable.", + "enum": null, + "name": "required_status_checks", + "type": "object", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Require branches to be up to date before merging.", + "enum": null, + "name": "required_status_checks.strict", + "type": "boolean", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of status checks to require in order to merge into this branch", + "enum": null, + "name": "required_status_checks.contexts", + "type": "string[]", + "required": true + }, + { + "alias": null, + "allowNull": true, + "deprecated": null, + "description": "Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable.", + "enum": null, + "name": "enforce_admins", + "type": "boolean", + "required": true + }, + { + "alias": null, + "allowNull": true, + "deprecated": null, + "description": "Require at least one approving review on a pull request, before merging. Set to `null` to disable.", + "enum": null, + "name": "required_pull_request_reviews", + "type": "object", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", + "enum": null, + "name": "required_pull_request_reviews.dismissal_restrictions", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of user `login`s with dismissal access", + "enum": null, + "name": "required_pull_request_reviews.dismissal_restrictions.users", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of team `slug`s with dismissal access", + "enum": null, + "name": "required_pull_request_reviews.dismissal_restrictions.teams", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit.", + "enum": null, + "name": "required_pull_request_reviews.dismiss_stale_reviews", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) review them.", + "enum": null, + "name": "required_pull_request_reviews.require_code_owner_reviews", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specify the number of reviewers required to approve pull requests. Use a number between 1 and 6.", + "enum": null, + "name": "required_pull_request_reviews.required_approving_review_count", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": true, + "deprecated": null, + "description": "Restrict who can push to this branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable.", + "enum": null, + "name": "restrictions", + "type": "object", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of user `login`s with push access", + "enum": null, + "name": "restrictions.users", + "type": "string[]", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of team `slug`s with push access", + "enum": null, + "name": "restrictions.teams", + "type": "string[]", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of app `slug`s with push access", + "enum": null, + "name": "restrictions.apps", + "type": "string[]", + "required": false + } + ] + }, + { + "name": "Remove branch protection", + "scope": "repos", + "id": "removeBranchProtection", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get admin enforcement of protected branch", + "scope": "repos", + "id": "getProtectedBranchAdminEnforcement", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add admin enforcement of protected branch", + "scope": "repos", + "id": "addProtectedBranchAdminEnforcement", + "method": "POST", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove admin enforcement of protected branch", + "scope": "repos", + "id": "removeProtectedBranchAdminEnforcement", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get pull request review enforcement of protected branch", + "scope": "repos", + "id": "getProtectedBranchPullRequestReviewEnforcement", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update pull request review enforcement of protected branch", + "scope": "repos", + "id": "updateProtectedBranchPullRequestReviewEnforcement", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories.", + "enum": null, + "name": "dismissal_restrictions", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of user `login`s with dismissal access", + "enum": null, + "name": "dismissal_restrictions.users", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of team `slug`s with dismissal access", + "enum": null, + "name": "dismissal_restrictions.teams", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit.", + "enum": null, + "name": "dismiss_stale_reviews", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed.", + "enum": null, + "name": "require_code_owner_reviews", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6.", + "enum": null, + "name": "required_approving_review_count", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Remove pull request review enforcement of protected branch", + "scope": "repos", + "id": "removeProtectedBranchPullRequestReviewEnforcement", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get required signatures of protected branch", + "scope": "repos", + "id": "getProtectedBranchRequiredSignatures", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add required signatures of protected branch", + "scope": "repos", + "id": "addProtectedBranchRequiredSignatures", + "method": "POST", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove required signatures of protected branch", + "scope": "repos", + "id": "removeProtectedBranchRequiredSignatures", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get required status checks of protected branch", + "scope": "repos", + "id": "getProtectedBranchRequiredStatusChecks", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update required status checks of protected branch", + "scope": "repos", + "id": "updateProtectedBranchRequiredStatusChecks", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Require branches to be up to date before merging.", + "enum": null, + "name": "strict", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The list of status checks to require in order to merge into this branch", + "enum": null, + "name": "contexts", + "type": "string[]", + "required": false + } + ] + }, + { + "name": "Remove required status checks of protected branch", + "scope": "repos", + "id": "removeProtectedBranchRequiredStatusChecks", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "List required status checks contexts of protected branch", + "scope": "repos", + "id": "listProtectedBranchRequiredStatusChecksContexts", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Replace required status checks contexts of protected branch", + "scope": "repos", + "id": "replaceProtectedBranchRequiredStatusChecksContexts", + "method": "PUT", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "contexts parameter", + "enum": null, + "name": "contexts", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Add required status checks contexts of protected branch", + "scope": "repos", + "id": "addProtectedBranchRequiredStatusChecksContexts", + "method": "POST", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "contexts parameter", + "enum": null, + "name": "contexts", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Remove required status checks contexts of protected branch", + "scope": "repos", + "id": "removeProtectedBranchRequiredStatusChecksContexts", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "contexts parameter", + "enum": null, + "name": "contexts", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Get restrictions of protected branch", + "scope": "repos", + "id": "getProtectedBranchRestrictions", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove restrictions of protected branch", + "scope": "repos", + "id": "removeProtectedBranchRestrictions", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get apps with access to protected branch", + "scope": "repos", + "id": "getAppsWithAccessToProtectedBranch", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get apps with access to protected branch", + "scope": "repos", + "id": "listAppsWithAccessToProtectedBranch", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Replace app restrictions of protected branch", + "scope": "repos", + "id": "replaceProtectedBranchAppRestrictions", + "method": "PUT", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "apps parameter", + "enum": null, + "name": "apps", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Add app restrictions of protected branch", + "scope": "repos", + "id": "addProtectedBranchAppRestrictions", + "method": "POST", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "apps parameter", + "enum": null, + "name": "apps", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Remove app restrictions of protected branch", + "scope": "repos", + "id": "removeProtectedBranchAppRestrictions", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "apps parameter", + "enum": null, + "name": "apps", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Get teams with access to protected branch", + "scope": "repos", + "id": "getTeamsWithAccessToProtectedBranch", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get teams with access to protected branch", + "scope": "repos", + "id": "listProtectedBranchTeamRestrictions", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get teams with access to protected branch", + "scope": "repos", + "id": "listTeamsWithAccessToProtectedBranch", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Replace team restrictions of protected branch", + "scope": "repos", + "id": "replaceProtectedBranchTeamRestrictions", + "method": "PUT", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "teams parameter", + "enum": null, + "name": "teams", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Add team restrictions of protected branch", + "scope": "repos", + "id": "addProtectedBranchTeamRestrictions", + "method": "POST", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "teams parameter", + "enum": null, + "name": "teams", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Remove team restrictions of protected branch", + "scope": "repos", + "id": "removeProtectedBranchTeamRestrictions", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "teams parameter", + "enum": null, + "name": "teams", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Get users with access to protected branch", + "scope": "repos", + "id": "getUsersWithAccessToProtectedBranch", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get users with access to protected branch", + "scope": "repos", + "id": "listProtectedBranchUserRestrictions", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get users with access to protected branch", + "scope": "repos", + "id": "listUsersWithAccessToProtectedBranch", + "method": "GET", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + } + ] + }, + { + "name": "Replace user restrictions of protected branch", + "scope": "repos", + "id": "replaceProtectedBranchUserRestrictions", + "method": "PUT", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "users parameter", + "enum": null, + "name": "users", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Add user restrictions of protected branch", + "scope": "repos", + "id": "addProtectedBranchUserRestrictions", + "method": "POST", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "users parameter", + "enum": null, + "name": "users", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Remove user restrictions of protected branch", + "scope": "repos", + "id": "removeProtectedBranchUserRestrictions", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "branch parameter", + "enum": null, + "name": "branch", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "users parameter", + "enum": null, + "name": "users", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Create a check run", + "scope": "checks", + "id": "create", + "method": "POST", + "url": "/repos/{owner}/{repo}/check-runs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the check. For example, \"code-coverage\".", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA of the commit.", + "enum": null, + "name": "head_sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The URL of the integrator's site that has the full details of the check.", + "enum": null, + "name": "details_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A reference for the run on the integrator's system.", + "enum": null, + "name": "external_id", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The current status. Can be one of `queued`, `in_progress`, or `completed`.", + "enum": ["queued", "in_progress", "completed"], + "name": "status", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "started_at", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `timed_out`, or `action_required`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`.", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required" + ], + "name": "conclusion", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "completed_at", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object) description.", + "enum": null, + "name": "output", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the check run.", + "enum": null, + "name": "output.title", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The summary of the check run. This parameter supports Markdown.", + "enum": null, + "name": "output.summary", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The details of the check run. This parameter supports Markdown.", + "enum": null, + "name": "output.text", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Adds information from your analysis to specific lines of code. Annotations are visible on GitHub in the **Checks** and **Files changed** tab of the pull request. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://developer.github.com/v3/checks/runs/#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about how you can view annotations on GitHub, see \"[About status checks](https://help.github.com/articles/about-status-checks#checks)\". See the [`annotations` object](https://developer.github.com/v3/checks/runs/#annotations-object) description for details about how to use this parameter.", + "enum": null, + "name": "output.annotations", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`.", + "enum": null, + "name": "output.annotations[].path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The start line of the annotation.", + "enum": null, + "name": "output.annotations[].start_line", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The end line of the annotation.", + "enum": null, + "name": "output.annotations[].end_line", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values.", + "enum": null, + "name": "output.annotations[].start_column", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values.", + "enum": null, + "name": "output.annotations[].end_column", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The level of the annotation. Can be one of `notice`, `warning`, or `failure`.", + "enum": ["notice", "warning", "failure"], + "name": "output.annotations[].annotation_level", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB.", + "enum": null, + "name": "output.annotations[].message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title that represents the annotation. The maximum size is 255 characters.", + "enum": null, + "name": "output.annotations[].title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Details about this annotation. The maximum size is 64 KB.", + "enum": null, + "name": "output.annotations[].raw_details", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://developer.github.com/v3/checks/runs/#images-object) description for details.", + "enum": null, + "name": "output.images", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The alternative text for the image.", + "enum": null, + "name": "output.images[].alt", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The full URL of the image.", + "enum": null, + "name": "output.images[].image_url", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short image description.", + "enum": null, + "name": "output.images[].caption", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://developer.github.com/v3/activity/events/types/#checkrunevent) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions).\" To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions).\"", + "enum": null, + "name": "actions", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters.", + "enum": null, + "name": "actions[].label", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short explanation of what this action would do. The maximum size is 40 characters.", + "enum": null, + "name": "actions[].description", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A reference for the action on the integrator's system. The maximum size is 20 characters.", + "enum": null, + "name": "actions[].identifier", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update a check run", + "scope": "checks", + "id": "update", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/check-runs/{check_run_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "check_run_id parameter", + "enum": null, + "name": "check_run_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the check. For example, \"code-coverage\".", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The URL of the integrator's site that has the full details of the check.", + "enum": null, + "name": "details_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A reference for the run on the integrator's system.", + "enum": null, + "name": "external_id", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "started_at", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The current status. Can be one of `queued`, `in_progress`, or `completed`.", + "enum": ["queued", "in_progress", "completed"], + "name": "status", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `timed_out`, or `action_required`. \n**Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`.", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "timed_out", + "action_required" + ], + "name": "conclusion", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "completed_at", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object-1) description.", + "enum": null, + "name": "output", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required**.", + "enum": null, + "name": "output.title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can contain Markdown.", + "enum": null, + "name": "output.summary", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can contain Markdown.", + "enum": null, + "name": "output.text", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Adds information from your analysis to specific lines of code. Annotations are visible in GitHub's pull request UI. Annotations are visible in GitHub's pull request UI. The Checks API limits the number of annotations to a maximum of 50 per API request. To create more than 50 annotations, you have to make multiple requests to the [Update a check run](https://developer.github.com/v3/checks/runs/#update-a-check-run) endpoint. Each time you update the check run, annotations are appended to the list of annotations that already exist for the check run. For details about annotations in the UI, see \"[About status checks](https://help.github.com/articles/about-status-checks#checks)\". See the [`annotations` object](https://developer.github.com/v3/checks/runs/#annotations-object-1) description for details.", + "enum": null, + "name": "output.annotations", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The path of the file to add an annotation to. For example, `assets/css/main.css`.", + "enum": null, + "name": "output.annotations[].path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The start line of the annotation.", + "enum": null, + "name": "output.annotations[].start_line", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The end line of the annotation.", + "enum": null, + "name": "output.annotations[].end_line", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The start column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values.", + "enum": null, + "name": "output.annotations[].start_column", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The end column of the annotation. Annotations only support `start_column` and `end_column` on the same line. Omit this parameter if `start_line` and `end_line` have different values.", + "enum": null, + "name": "output.annotations[].end_column", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The level of the annotation. Can be one of `notice`, `warning`, or `failure`.", + "enum": ["notice", "warning", "failure"], + "name": "output.annotations[].annotation_level", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the feedback for these lines of code. The maximum size is 64 KB.", + "enum": null, + "name": "output.annotations[].message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title that represents the annotation. The maximum size is 255 characters.", + "enum": null, + "name": "output.annotations[].title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Details about this annotation. The maximum size is 64 KB.", + "enum": null, + "name": "output.annotations[].raw_details", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Adds images to the output displayed in the GitHub pull request UI. See the [`images` object](https://developer.github.com/v3/checks/runs/#annotations-object-1) description for details.", + "enum": null, + "name": "output.images", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The alternative text for the image.", + "enum": null, + "name": "output.images[].alt", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The full URL of the image.", + "enum": null, + "name": "output.images[].image_url", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short image description.", + "enum": null, + "name": "output.images[].caption", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see \"[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions).\"", + "enum": null, + "name": "actions", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The text to be displayed on a button in the web UI. The maximum size is 20 characters.", + "enum": null, + "name": "actions[].label", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short explanation of what this action would do. The maximum size is 40 characters.", + "enum": null, + "name": "actions[].description", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A reference for the action on the integrator's system. The maximum size is 20 characters.", + "enum": null, + "name": "actions[].identifier", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a single check run", + "scope": "checks", + "id": "get", + "method": "GET", + "url": "/repos/{owner}/{repo}/check-runs/{check_run_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "check_run_id parameter", + "enum": null, + "name": "check_run_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List annotations for a check run", + "scope": "checks", + "id": "listAnnotations", + "method": "GET", + "url": "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "check_run_id parameter", + "enum": null, + "name": "check_run_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a check suite", + "scope": "checks", + "id": "createSuite", + "method": "POST", + "url": "/repos/{owner}/{repo}/check-suites", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The sha of the head commit.", + "enum": null, + "name": "head_sha", + "type": "string", + "required": true + } + ] + }, + { + "name": "Set preferences for check suites on a repository", + "scope": "checks", + "id": "setSuitesPreferences", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/check-suites/preferences", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://developer.github.com/v3/checks/suites/#auto_trigger_checks-object) description for details.", + "enum": null, + "name": "auto_trigger_checks", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The `id` of the GitHub App.", + "enum": null, + "name": "auto_trigger_checks[].app_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository, or `false` to disable them.", + "enum": null, + "name": "auto_trigger_checks[].setting", + "type": "boolean", + "required": true + } + ] + }, + { + "name": "Get a single check suite", + "scope": "checks", + "id": "getSuite", + "method": "GET", + "url": "/repos/{owner}/{repo}/check-suites/{check_suite_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "check_suite_id parameter", + "enum": null, + "name": "check_suite_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List check runs in a check suite", + "scope": "checks", + "id": "listForSuite", + "method": "GET", + "url": "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "check_suite_id parameter", + "enum": null, + "name": "check_suite_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns check runs with the specified `name`.", + "enum": null, + "name": "check_name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`.", + "enum": ["queued", "in_progress", "completed"], + "name": "status", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`.", + "enum": ["latest", "all"], + "name": "filter", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Rerequest check suite", + "scope": "checks", + "id": "rerequestSuite", + "method": "POST", + "url": "/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "check_suite_id parameter", + "enum": null, + "name": "check_suite_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List collaborators", + "scope": "repos", + "id": "listCollaborators", + "method": "GET", + "url": "/repos/{owner}/{repo}/collaborators", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filter collaborators returned by their affiliation. Can be one of: \n\\* `outside`: All outside collaborators of an organization-owned repository. \n\\* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. \n\\* `all`: All collaborators the authenticated user can see.", + "enum": ["outside", "direct", "all"], + "name": "affiliation", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check if a user is a collaborator", + "scope": "repos", + "id": "checkCollaborator", + "method": "GET", + "url": "/repos/{owner}/{repo}/collaborators/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add user as a collaborator", + "scope": "repos", + "id": "addCollaborator", + "method": "PUT", + "url": "/repos/{owner}/{repo}/collaborators/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: \n\\* `pull` - can pull, but not push to or administer this repository. \n\\* `push` - can pull and push, but not administer this repository. \n\\* `admin` - can pull, push and administer this repository.", + "enum": ["pull", "push", "admin"], + "name": "permission", + "type": "string", + "required": false + } + ] + }, + { + "name": "Remove user as a collaborator", + "scope": "repos", + "id": "removeCollaborator", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/collaborators/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Review a user's permission level", + "scope": "repos", + "id": "getCollaboratorPermissionLevel", + "method": "GET", + "url": "/repos/{owner}/{repo}/collaborators/{username}/permission", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List commit comments for a repository", + "scope": "repos", + "id": "listCommitComments", + "method": "GET", + "url": "/repos/{owner}/{repo}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single commit comment", + "scope": "repos", + "id": "getCommitComment", + "method": "GET", + "url": "/repos/{owner}/{repo}/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Update a commit comment", + "scope": "repos", + "id": "updateCommitComment", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the comment", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Delete a commit comment", + "scope": "repos", + "id": "deleteCommitComment", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List reactions for a commit comment", + "scope": "reactions", + "id": "listForCommitComment", + "method": "GET", + "url": "/repos/{owner}/{repo}/comments/{comment_id}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a commit comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create reaction for a commit comment", + "scope": "reactions", + "id": "createForCommitComment", + "method": "POST", + "url": "/repos/{owner}/{repo}/comments/{comment_id}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the commit comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": true + } + ] + }, + { + "name": "List commits on a repository", + "scope": "repos", + "id": "listCommits", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`).", + "enum": null, + "name": "sha", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only commits containing this file path will be returned.", + "enum": null, + "name": "path", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "GitHub login or email address by which to filter by commit author.", + "enum": null, + "name": "author", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only commits after this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "until", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List branches for HEAD commit", + "scope": "repos", + "id": "listBranchesForHeadCommit", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "commit_sha parameter", + "enum": null, + "name": "commit_sha", + "type": "string", + "required": true + } + ] + }, + { + "name": "List comments for a single commit", + "scope": "repos", + "id": "listCommentsForCommit", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{commit_sha}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "commit_sha parameter", + "enum": null, + "name": "commit_sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "commit_sha", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "ref", + "type": null, + "required": null + } + ] + }, + { + "name": "Create a commit comment", + "scope": "repos", + "id": "createCommitComment", + "method": "POST", + "url": "/repos/{owner}/{repo}/commits/{commit_sha}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "commit_sha parameter", + "enum": null, + "name": "commit_sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the comment.", + "enum": null, + "name": "body", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Relative path of the file to comment on.", + "enum": null, + "name": "path", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Line index in the diff to comment on.", + "enum": null, + "name": "position", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Deprecated**. Use **position** parameter instead. Line number in the file to comment on.", + "enum": null, + "name": "line", + "type": "integer", + "required": false + }, + { + "alias": "commit_sha", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "sha", + "type": null, + "required": null + } + ] + }, + { + "name": "List pull requests associated with commit", + "scope": "repos", + "id": "listPullRequestsAssociatedWithCommit", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{commit_sha}/pulls", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "commit_sha parameter", + "enum": null, + "name": "commit_sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single commit", + "scope": "repos", + "id": "getCommit", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{ref}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": "ref", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "sha", + "type": null, + "required": null + }, + { + "alias": "ref", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "commit_sha", + "type": null, + "required": null + } + ] + }, + { + "name": "List check runs for a specific ref", + "scope": "checks", + "id": "listForRef", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{ref}/check-runs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns check runs with the specified `name`.", + "enum": null, + "name": "check_name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`.", + "enum": ["queued", "in_progress", "completed"], + "name": "status", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`.", + "enum": ["latest", "all"], + "name": "filter", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List check suites for a specific ref", + "scope": "checks", + "id": "listSuitesForRef", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{ref}/check-suites", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters check suites by GitHub App `id`.", + "enum": null, + "name": "app_id", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters checks suites by the name of the [check run](https://developer.github.com/v3/checks/runs/).", + "enum": null, + "name": "check_name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get the combined status for a specific ref", + "scope": "repos", + "id": "getCombinedStatusForRef", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{ref}/status", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + } + ] + }, + { + "name": "List statuses for a specific ref", + "scope": "repos", + "id": "listStatusesForRef", + "method": "GET", + "url": "/repos/{owner}/{repo}/commits/{ref}/statuses", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get the contents of a repository's code of conduct", + "scope": "codesOfConduct", + "id": "getForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/community/code_of_conduct", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Retrieve community profile metrics", + "scope": "repos", + "id": "retrieveCommunityProfileMetrics", + "method": "GET", + "url": "/repos/{owner}/{repo}/community/profile", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Compare two commits", + "scope": "repos", + "id": "compareCommits", + "method": "GET", + "url": "/repos/{owner}/{repo}/compare/{base}...{head}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "base parameter", + "enum": null, + "name": "base", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "head parameter", + "enum": null, + "name": "head", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get contents", + "scope": "repos", + "id": "getContents", + "method": "GET", + "url": "/repos/{owner}/{repo}/contents/{path}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "path parameter", + "enum": null, + "name": "path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`)", + "enum": null, + "name": "ref", + "type": "string", + "required": false + } + ] + }, + { + "name": "Create or update a file", + "scope": "repos", + "id": "createOrUpdateFile", + "method": "PUT", + "url": "/repos/{owner}/{repo}/contents/{path}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "path parameter", + "enum": null, + "name": "path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The commit message.", + "enum": null, + "name": "message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new file content, using Base64 encoding.", + "enum": null, + "name": "content", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required if you are updating a file**. The blob SHA of the file being replaced.", + "enum": null, + "name": "sha", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The branch name. Default: the repository’s default branch (usually `master`)", + "enum": null, + "name": "branch", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The person that committed the file. Default: the authenticated user.", + "enum": null, + "name": "committer", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "committer.name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "committer.email", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The author of the file. Default: The `committer` or the authenticated user if you omit `committer`.", + "enum": null, + "name": "author", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "author.name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "author.email", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create or update a file", + "scope": "repos", + "id": "createFile", + "method": "PUT", + "url": "/repos/{owner}/{repo}/contents/{path}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "path parameter", + "enum": null, + "name": "path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The commit message.", + "enum": null, + "name": "message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new file content, using Base64 encoding.", + "enum": null, + "name": "content", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required if you are updating a file**. The blob SHA of the file being replaced.", + "enum": null, + "name": "sha", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The branch name. Default: the repository’s default branch (usually `master`)", + "enum": null, + "name": "branch", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The person that committed the file. Default: the authenticated user.", + "enum": null, + "name": "committer", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "committer.name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "committer.email", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The author of the file. Default: The `committer` or the authenticated user if you omit `committer`.", + "enum": null, + "name": "author", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "author.name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "author.email", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create or update a file", + "scope": "repos", + "id": "updateFile", + "method": "PUT", + "url": "/repos/{owner}/{repo}/contents/{path}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "path parameter", + "enum": null, + "name": "path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The commit message.", + "enum": null, + "name": "message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new file content, using Base64 encoding.", + "enum": null, + "name": "content", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required if you are updating a file**. The blob SHA of the file being replaced.", + "enum": null, + "name": "sha", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The branch name. Default: the repository’s default branch (usually `master`)", + "enum": null, + "name": "branch", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The person that committed the file. Default: the authenticated user.", + "enum": null, + "name": "committer", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "committer.name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "committer.email", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The author of the file. Default: The `committer` or the authenticated user if you omit `committer`.", + "enum": null, + "name": "author", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "author.name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author or committer of the commit. You'll receive a `422` status code if `name` is omitted.", + "enum": null, + "name": "author.email", + "type": "string", + "required": true + } + ] + }, + { + "name": "Delete a file", + "scope": "repos", + "id": "deleteFile", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/contents/{path}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "path parameter", + "enum": null, + "name": "path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The commit message.", + "enum": null, + "name": "message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The blob SHA of the file being replaced.", + "enum": null, + "name": "sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The branch name. Default: the repository’s default branch (usually `master`)", + "enum": null, + "name": "branch", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "object containing information about the committer.", + "enum": null, + "name": "committer", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author (or committer) of the commit", + "enum": null, + "name": "committer.name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author (or committer) of the commit", + "enum": null, + "name": "committer.email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "object containing information about the author.", + "enum": null, + "name": "author", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author (or committer) of the commit", + "enum": null, + "name": "author.name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author (or committer) of the commit", + "enum": null, + "name": "author.email", + "type": "string", + "required": false + } + ] + }, + { + "name": "List contributors", + "scope": "repos", + "id": "listContributors", + "method": "GET", + "url": "/repos/{owner}/{repo}/contributors", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Set to `1` or `true` to include anonymous contributors in results.", + "enum": null, + "name": "anon", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List deployments", + "scope": "repos", + "id": "listDeployments", + "method": "GET", + "url": "/repos/{owner}/{repo}/deployments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA recorded at creation time.", + "enum": null, + "name": "sha", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the ref. This can be a branch, tag, or SHA.", + "enum": null, + "name": "ref", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`).", + "enum": null, + "name": "task", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the environment that was deployed to (e.g., `staging` or `production`).", + "enum": null, + "name": "environment", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a deployment", + "scope": "repos", + "id": "createDeployment", + "method": "POST", + "url": "/repos/{owner}/{repo}/deployments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The ref to deploy. This can be a branch, tag, or SHA.", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies a task to execute (e.g., `deploy` or `deploy:migrations`).", + "enum": null, + "name": "task", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch.", + "enum": null, + "name": "auto_merge", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [status](https://developer.github.com/v3/repos/statuses/) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts.", + "enum": null, + "name": "required_contexts", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "JSON payload with extra information about the deployment.", + "enum": null, + "name": "payload", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Name for the target deployment environment (e.g., `production`, `staging`, `qa`).", + "enum": null, + "name": "environment", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Short description of the deployment.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type.", + "enum": null, + "name": "transient_environment", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type.", + "enum": null, + "name": "production_environment", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get a single deployment", + "scope": "repos", + "id": "getDeployment", + "method": "GET", + "url": "/repos/{owner}/{repo}/deployments/{deployment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "deployment_id parameter", + "enum": null, + "name": "deployment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List deployment statuses", + "scope": "repos", + "id": "listDeploymentStatuses", + "method": "GET", + "url": "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "deployment_id parameter", + "enum": null, + "name": "deployment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a deployment status", + "scope": "repos", + "id": "createDeploymentStatus", + "method": "POST", + "url": "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "deployment_id parameter", + "enum": null, + "name": "deployment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type.", + "enum": [ + "error", + "failure", + "inactive", + "in_progress", + "queued", + "pending", + "success" + ], + "name": "state", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`.", + "enum": null, + "name": "target_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `\"\"` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type.", + "enum": null, + "name": "log_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the status. The maximum description length is 140 characters.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type.", + "enum": ["production", "staging", "qa"], + "name": "environment", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sets the URL for accessing your environment. Default: `\"\"` \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type.", + "enum": null, + "name": "environment_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` \n**Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. \n**Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type.", + "enum": null, + "name": "auto_inactive", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get a single deployment status", + "scope": "repos", + "id": "getDeploymentStatus", + "method": "GET", + "url": "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "deployment_id parameter", + "enum": null, + "name": "deployment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "status_id parameter", + "enum": null, + "name": "status_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Create a repository dispatch event", + "scope": "repos", + "id": "createDispatchEvent", + "method": "POST", + "url": "/repos/{owner}/{repo}/dispatches", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required:** A custom webhook event name.", + "enum": null, + "name": "event_type", + "type": "string", + "required": false + } + ] + }, + { + "name": "List downloads for a repository", + "scope": "repos", + "id": "listDownloads", + "method": "GET", + "url": "/repos/{owner}/{repo}/downloads", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single download", + "scope": "repos", + "id": "getDownload", + "method": "GET", + "url": "/repos/{owner}/{repo}/downloads/{download_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "download_id parameter", + "enum": null, + "name": "download_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Delete a download", + "scope": "repos", + "id": "deleteDownload", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/downloads/{download_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "download_id parameter", + "enum": null, + "name": "download_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List repository events", + "scope": "activity", + "id": "listRepoEvents", + "method": "GET", + "url": "/repos/{owner}/{repo}/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List forks", + "scope": "repos", + "id": "listForks", + "method": "GET", + "url": "/repos/{owner}/{repo}/forks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The sort order. Can be either `newest`, `oldest`, or `stargazers`.", + "enum": ["newest", "oldest", "stargazers"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a fork", + "scope": "repos", + "id": "createFork", + "method": "POST", + "url": "/repos/{owner}/{repo}/forks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Optional parameter to specify the organization name if forking into an organization.", + "enum": null, + "name": "organization", + "type": "string", + "required": false + } + ] + }, + { + "name": "Create a blob", + "scope": "git", + "id": "createBlob", + "method": "POST", + "url": "/repos/{owner}/{repo}/git/blobs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new blob's content.", + "enum": null, + "name": "content", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", + "enum": null, + "name": "encoding", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a blob", + "scope": "git", + "id": "getBlob", + "method": "GET", + "url": "/repos/{owner}/{repo}/git/blobs/{file_sha}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "file_sha parameter", + "enum": null, + "name": "file_sha", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create a commit", + "scope": "git", + "id": "createCommit", + "method": "POST", + "url": "/repos/{owner}/{repo}/git/commits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The commit message", + "enum": null, + "name": "message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA of the tree object this commit points to", + "enum": null, + "name": "tree", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided.", + "enum": null, + "name": "parents", + "type": "string[]", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details.", + "enum": null, + "name": "author", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author (or committer) of the commit", + "enum": null, + "name": "author.name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author (or committer) of the commit", + "enum": null, + "name": "author.email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "author.date", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details.", + "enum": null, + "name": "committer", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author (or committer) of the commit", + "enum": null, + "name": "committer.name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author (or committer) of the commit", + "enum": null, + "name": "committer.email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates when this commit was authored (or committed). This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "committer.date", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits.", + "enum": null, + "name": "signature", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a commit", + "scope": "git", + "id": "getCommit", + "method": "GET", + "url": "/repos/{owner}/{repo}/git/commits/{commit_sha}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "commit_sha parameter", + "enum": null, + "name": "commit_sha", + "type": "string", + "required": true + } + ] + }, + { + "name": "List matching references", + "scope": "git", + "id": "listMatchingRefs", + "method": "GET", + "url": "/repos/{owner}/{repo}/git/matching-refs/{ref}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single reference", + "scope": "git", + "id": "getRef", + "method": "GET", + "url": "/repos/{owner}/{repo}/git/ref/{ref}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create a reference", + "scope": "git", + "id": "createRef", + "method": "POST", + "url": "/repos/{owner}/{repo}/git/refs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected.", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA1 value for this reference.", + "enum": null, + "name": "sha", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update a reference", + "scope": "git", + "id": "updateRef", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/git/refs/{ref}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA1 value to set this reference to", + "enum": null, + "name": "sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work.", + "enum": null, + "name": "force", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a reference", + "scope": "git", + "id": "deleteRef", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/git/refs/{ref}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create a tag object", + "scope": "git", + "id": "createTag", + "method": "POST", + "url": "/repos/{owner}/{repo}/git/tags", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The tag's name. This is typically a version (e.g., \"v0.0.1\").", + "enum": null, + "name": "tag", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The tag message.", + "enum": null, + "name": "message", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA of the git object this is tagging.", + "enum": null, + "name": "object", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`.", + "enum": ["commit", "tree", "blob"], + "name": "type", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An object with information about the individual creating the tag.", + "enum": null, + "name": "tagger", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the author of the tag", + "enum": null, + "name": "tagger.name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The email of the author of the tag", + "enum": null, + "name": "tagger.email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "When this object was tagged. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "tagger.date", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a tag", + "scope": "git", + "id": "getTag", + "method": "GET", + "url": "/repos/{owner}/{repo}/git/tags/{tag_sha}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "tag_sha parameter", + "enum": null, + "name": "tag_sha", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create a tree", + "scope": "git", + "id": "createTree", + "method": "POST", + "url": "/repos/{owner}/{repo}/git/trees", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure.", + "enum": null, + "name": "tree", + "type": "object[]", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The file referenced in the tree.", + "enum": null, + "name": "tree[].path", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The file mode; one of `100644` for file (blob), `100755` for executable (blob), `040000` for subdirectory (tree), `160000` for submodule (commit), or `120000` for a blob that specifies the path of a symlink.", + "enum": ["100644", "100755", "040000", "160000", "120000"], + "name": "tree[].mode", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `blob`, `tree`, or `commit`.", + "enum": ["blob", "tree", "commit"], + "name": "tree[].type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA1 checksum ID of the object in the tree. Also called `tree.sha`. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error.", + "enum": null, + "name": "tree[].sha", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The content you want this file to have. GitHub will write this blob out and use that SHA for this entry. Use either this, or `tree.sha`. \n \n**Note:** Use either `tree.sha` or `content` to specify the contents of the entry. Using both `tree.sha` and `content` will return an error.", + "enum": null, + "name": "tree[].content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted.", + "enum": null, + "name": "base_tree", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a tree", + "scope": "git", + "id": "getTree", + "method": "GET", + "url": "/repos/{owner}/{repo}/git/trees/{tree_sha}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "tree_sha parameter", + "enum": null, + "name": "tree_sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "recursive parameter", + "enum": ["1"], + "name": "recursive", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List hooks", + "scope": "repos", + "id": "listHooks", + "method": "GET", + "url": "/repos/{owner}/{repo}/hooks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a hook", + "scope": "repos", + "id": "createHook", + "method": "POST", + "url": "/repos/{owner}/{repo}/hooks", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params).", + "enum": null, + "name": "config", + "type": "object", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The URL to which the payloads will be delivered.", + "enum": null, + "name": "config.url", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`.", + "enum": null, + "name": "config.content_type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value in the [`X-Hub-Signature`](https://developer.github.com/webhooks/#delivery-headers) header.", + "enum": null, + "name": "config.secret", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.**", + "enum": null, + "name": "config.insecure_ssl", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for.", + "enum": null, + "name": "events", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "enum": null, + "name": "active", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get single hook", + "scope": "repos", + "id": "getHook", + "method": "GET", + "url": "/repos/{owner}/{repo}/hooks/{hook_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a hook", + "scope": "repos", + "id": "updateHook", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/hooks/{hook_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params).", + "enum": null, + "name": "config", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The URL to which the payloads will be delivered.", + "enum": null, + "name": "config.url", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The media type used to serialize the payloads. Supported values include `json` and `form`. The default is `form`.", + "enum": null, + "name": "config.content_type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If provided, the `secret` will be used as the `key` to generate the HMAC hex digest value in the [`X-Hub-Signature`](https://developer.github.com/webhooks/#delivery-headers) header.", + "enum": null, + "name": "config.secret", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the SSL certificate of the host for `url` will be verified when delivering payloads. Supported values include `0` (verification is performed) and `1` (verification is not performed). The default is `0`. **We strongly recommend not setting this to `1` as you are subject to man-in-the-middle and other attacks.**", + "enum": null, + "name": "config.insecure_ssl", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. This replaces the entire array of events.", + "enum": null, + "name": "events", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines a list of events to be added to the list of events that the Hook triggers for.", + "enum": null, + "name": "add_events", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines a list of events to be removed from the list of events that the Hook triggers for.", + "enum": null, + "name": "remove_events", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "enum": null, + "name": "active", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a hook", + "scope": "repos", + "id": "deleteHook", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/hooks/{hook_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Ping a hook", + "scope": "repos", + "id": "pingHook", + "method": "POST", + "url": "/repos/{owner}/{repo}/hooks/{hook_id}/pings", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Test a push hook", + "scope": "repos", + "id": "testPushHook", + "method": "POST", + "url": "/repos/{owner}/{repo}/hooks/{hook_id}/tests", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "hook_id parameter", + "enum": null, + "name": "hook_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Start an import", + "scope": "migrations", + "id": "startImport", + "method": "PUT", + "url": "/repos/{owner}/{repo}/import", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The URL of the originating repository.", + "enum": null, + "name": "vcs_url", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response.", + "enum": ["subversion", "git", "mercurial", "tfvc"], + "name": "vcs", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If authentication is required, the username to provide to `vcs_url`.", + "enum": null, + "name": "vcs_username", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If authentication is required, the password to provide to `vcs_url`.", + "enum": null, + "name": "vcs_password", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "For a tfvc import, the name of the project that is being imported.", + "enum": null, + "name": "tfvc_project", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get import progress", + "scope": "migrations", + "id": "getImportProgress", + "method": "GET", + "url": "/repos/{owner}/{repo}/import", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update existing import", + "scope": "migrations", + "id": "updateImport", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/import", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The username to provide to the originating repository.", + "enum": null, + "name": "vcs_username", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The password to provide to the originating repository.", + "enum": null, + "name": "vcs_password", + "type": "string", + "required": false + } + ] + }, + { + "name": "Cancel an import", + "scope": "migrations", + "id": "cancelImport", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/import", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get commit authors", + "scope": "migrations", + "id": "getCommitAuthors", + "method": "GET", + "url": "/repos/{owner}/{repo}/import/authors", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only authors found after this id are returned. Provide the highest author ID you've seen so far. New authors may be added to the list at any point while the importer is performing the `raw` step.", + "enum": null, + "name": "since", + "type": "string", + "required": false + } + ] + }, + { + "name": "Map a commit author", + "scope": "migrations", + "id": "mapCommitAuthor", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/import/authors/{author_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "author_id parameter", + "enum": null, + "name": "author_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new Git author email.", + "enum": null, + "name": "email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new Git author name.", + "enum": null, + "name": "name", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get large files", + "scope": "migrations", + "id": "getLargeFiles", + "method": "GET", + "url": "/repos/{owner}/{repo}/import/large_files", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Set Git LFS preference", + "scope": "migrations", + "id": "setLfsPreference", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/import/lfs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import).", + "enum": ["opt_in", "opt_out"], + "name": "use_lfs", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a repository installation", + "scope": "apps", + "id": "getRepoInstallation", + "method": "GET", + "url": "/repos/{owner}/{repo}/installation", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a repository installation", + "scope": "apps", + "id": "findRepoInstallation", + "method": "GET", + "url": "/repos/{owner}/{repo}/installation", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get interaction restrictions for a repository", + "scope": "interactions", + "id": "getRestrictionsForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/interaction-limits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add or update interaction restrictions for a repository", + "scope": "interactions", + "id": "addOrUpdateRestrictionsForRepo", + "method": "PUT", + "url": "/repos/{owner}/{repo}/interaction-limits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies the group of GitHub users who can comment, open issues, or create pull requests for the given repository. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`.", + "enum": ["existing_users", "contributors_only", "collaborators_only"], + "name": "limit", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove interaction restrictions for a repository", + "scope": "interactions", + "id": "removeRestrictionsForRepo", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/interaction-limits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List invitations for a repository", + "scope": "repos", + "id": "listInvitations", + "method": "GET", + "url": "/repos/{owner}/{repo}/invitations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Delete a repository invitation", + "scope": "repos", + "id": "deleteInvitation", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/invitations/{invitation_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "invitation_id parameter", + "enum": null, + "name": "invitation_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Update a repository invitation", + "scope": "repos", + "id": "updateInvitation", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/invitations/{invitation_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "invitation_id parameter", + "enum": null, + "name": "invitation_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The permissions that the associated user will have on the repository. Valid values are `read`, `write`, and `admin`.", + "enum": ["read", "write", "admin"], + "name": "permissions", + "type": "string", + "required": false + } + ] + }, + { + "name": "List issues for a repository", + "scope": "issues", + "id": "listForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned.", + "enum": null, + "name": "milestone", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user.", + "enum": null, + "name": "assignee", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The user that created the issue.", + "enum": null, + "name": "creator", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A user that's mentioned in the issue.", + "enum": null, + "name": "mentioned", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of comma separated label names. Example: `bug,ui,@high`", + "enum": null, + "name": "labels", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "enum": ["created", "updated", "comments"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The direction of the sort. Can be either `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create an issue", + "scope": "issues", + "id": "create", + "method": "POST", + "url": "/repos/{owner}/{repo}/issues", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the issue.", + "enum": null, + "name": "title", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the issue.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_", + "enum": null, + "name": "assignee", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._", + "enum": null, + "name": "milestone", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._", + "enum": null, + "name": "labels", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._", + "enum": null, + "name": "assignees", + "type": "string[]", + "required": false + } + ] + }, + { + "name": "List comments in a repository", + "scope": "issues", + "id": "listCommentsForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `created` or `updated`.", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `asc` or `desc`. Ignored without the `sort` parameter.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a single comment", + "scope": "issues", + "id": "getComment", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Edit a comment", + "scope": "issues", + "id": "updateComment", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/issues/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the comment.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Delete a comment", + "scope": "issues", + "id": "deleteComment", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/issues/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List reactions for an issue comment", + "scope": "reactions", + "id": "listForIssueComment", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create reaction for an issue comment", + "scope": "reactions", + "id": "createForIssueComment", + "method": "POST", + "url": "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": true + } + ] + }, + { + "name": "List events for a repository", + "scope": "issues", + "id": "listEventsForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single event", + "scope": "issues", + "id": "getEvent", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/events/{event_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "event_id parameter", + "enum": null, + "name": "event_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Get a single issue", + "scope": "issues", + "id": "get", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/{issue_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Edit an issue", + "scope": "issues", + "id": "update", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/issues/{issue_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the issue.", + "enum": null, + "name": "title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the issue.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Login for the user that this issue should be assigned to. **This field is deprecated.**", + "enum": null, + "name": "assignee", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "State of the issue. Either `open` or `closed`.", + "enum": ["open", "closed"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": true, + "deprecated": null, + "description": "The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._", + "enum": null, + "name": "milestone", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._", + "enum": null, + "name": "labels", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._", + "enum": null, + "name": "assignees", + "type": "string[]", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Add assignees to an issue", + "scope": "issues", + "id": "addAssignees", + "method": "POST", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._", + "enum": null, + "name": "assignees", + "type": "string[]", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Remove assignees from an issue", + "scope": "issues", + "id": "removeAssignees", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/assignees", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._", + "enum": null, + "name": "assignees", + "type": "string[]", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List comments on an issue", + "scope": "issues", + "id": "listComments", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Create a comment", + "scope": "issues", + "id": "createComment", + "method": "POST", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the comment.", + "enum": null, + "name": "body", + "type": "string", + "required": true + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List events for an issue", + "scope": "issues", + "id": "listEvents", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List labels on an issue", + "scope": "issues", + "id": "listLabelsOnIssue", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Add labels to an issue", + "scope": "issues", + "id": "addLabels", + "method": "POST", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key.", + "enum": null, + "name": "labels", + "type": "string[]", + "required": true + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Replace all labels for an issue", + "scope": "issues", + "id": "replaceLabels", + "method": "PUT", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key.", + "enum": null, + "name": "labels", + "type": "string[]", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Remove all labels from an issue", + "scope": "issues", + "id": "removeLabels", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Remove a label from an issue", + "scope": "issues", + "id": "removeLabel", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "name parameter", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Lock an issue", + "scope": "issues", + "id": "lock", + "method": "PUT", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/lock", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: \n\\* `off-topic` \n\\* `too heated` \n\\* `resolved` \n\\* `spam`", + "enum": ["off-topic", "too heated", "resolved", "spam"], + "name": "lock_reason", + "type": "string", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Unlock an issue", + "scope": "issues", + "id": "unlock", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/lock", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List reactions for an issue", + "scope": "reactions", + "id": "listForIssue", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Create reaction for an issue", + "scope": "reactions", + "id": "createForIssue", + "method": "POST", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": true + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List events for an issue", + "scope": "issues", + "id": "listEventsForTimeline", + "method": "GET", + "url": "/repos/{owner}/{repo}/issues/{issue_number}/timeline", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "issue_number parameter", + "enum": null, + "name": "issue_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "issue_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List deploy keys", + "scope": "repos", + "id": "listDeployKeys", + "method": "GET", + "url": "/repos/{owner}/{repo}/keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Add a new deploy key", + "scope": "repos", + "id": "addDeployKey", + "method": "POST", + "url": "/repos/{owner}/{repo}/keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A name for the key.", + "enum": null, + "name": "title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the key.", + "enum": null, + "name": "key", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. \n \nDeploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see \"[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)\" and \"[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/).\"", + "enum": null, + "name": "read_only", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get a deploy key", + "scope": "repos", + "id": "getDeployKey", + "method": "GET", + "url": "/repos/{owner}/{repo}/keys/{key_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "key_id parameter", + "enum": null, + "name": "key_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Remove a deploy key", + "scope": "repos", + "id": "removeDeployKey", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/keys/{key_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "key_id parameter", + "enum": null, + "name": "key_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List all labels for this repository", + "scope": "issues", + "id": "listLabelsForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a label", + "scope": "issues", + "id": "createLabel", + "method": "POST", + "url": "/repos/{owner}/{repo}/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/).", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`.", + "enum": null, + "name": "color", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the label.", + "enum": null, + "name": "description", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a single label", + "scope": "issues", + "id": "getLabel", + "method": "GET", + "url": "/repos/{owner}/{repo}/labels/{name}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "name parameter", + "enum": null, + "name": "name", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update a label", + "scope": "issues", + "id": "updateLabel", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/labels/{name}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "name parameter", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png \":strawberry:\"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/).", + "enum": null, + "name": "new_name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`.", + "enum": null, + "name": "color", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the label.", + "enum": null, + "name": "description", + "type": "string", + "required": false + } + ] + }, + { + "name": "Delete a label", + "scope": "issues", + "id": "deleteLabel", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/labels/{name}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "name parameter", + "enum": null, + "name": "name", + "type": "string", + "required": true + } + ] + }, + { + "name": "List languages", + "scope": "repos", + "id": "listLanguages", + "method": "GET", + "url": "/repos/{owner}/{repo}/languages", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get the contents of a repository's license", + "scope": "licenses", + "id": "getForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/license", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Perform a merge", + "scope": "repos", + "id": "merge", + "method": "POST", + "url": "/repos/{owner}/{repo}/merges", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the base branch that the head will be merged into.", + "enum": null, + "name": "base", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The head to merge. This can be a branch name or a commit SHA1.", + "enum": null, + "name": "head", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Commit message to use for the merge commit. If omitted, a default message will be used.", + "enum": null, + "name": "commit_message", + "type": "string", + "required": false + } + ] + }, + { + "name": "List milestones for a repository", + "scope": "issues", + "id": "listMilestonesForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/milestones", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The state of the milestone. Either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "What to sort results by. Either `due_on` or `completeness`.", + "enum": ["due_on", "completeness"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The direction of the sort. Either `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a milestone", + "scope": "issues", + "id": "createMilestone", + "method": "POST", + "url": "/repos/{owner}/{repo}/milestones", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the milestone.", + "enum": null, + "name": "title", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The state of the milestone. Either `open` or `closed`.", + "enum": ["open", "closed"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A description of the milestone.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "due_on", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a single milestone", + "scope": "issues", + "id": "getMilestone", + "method": "GET", + "url": "/repos/{owner}/{repo}/milestones/{milestone_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "milestone_number parameter", + "enum": null, + "name": "milestone_number", + "type": "integer", + "required": true + }, + { + "alias": "milestone_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Update a milestone", + "scope": "issues", + "id": "updateMilestone", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/milestones/{milestone_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "milestone_number parameter", + "enum": null, + "name": "milestone_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the milestone.", + "enum": null, + "name": "title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The state of the milestone. Either `open` or `closed`.", + "enum": ["open", "closed"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A description of the milestone.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "due_on", + "type": "string", + "required": false + }, + { + "alias": "milestone_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Delete a milestone", + "scope": "issues", + "id": "deleteMilestone", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/milestones/{milestone_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "milestone_number parameter", + "enum": null, + "name": "milestone_number", + "type": "integer", + "required": true + }, + { + "alias": "milestone_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Get labels for every issue in a milestone", + "scope": "issues", + "id": "listLabelsForMilestone", + "method": "GET", + "url": "/repos/{owner}/{repo}/milestones/{milestone_number}/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "milestone_number parameter", + "enum": null, + "name": "milestone_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "milestone_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List your notifications in a repository", + "scope": "activity", + "id": "listNotificationsForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/notifications", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If `true`, show notifications marked as read.", + "enum": null, + "name": "all", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "If `true`, only shows notifications in which the user is directly participating or mentioned.", + "enum": null, + "name": "participating", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "before", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Mark notifications as read in a repository", + "scope": "activity", + "id": "markNotificationsAsReadForRepo", + "method": "PUT", + "url": "/repos/{owner}/{repo}/notifications", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp.", + "enum": null, + "name": "last_read_at", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get information about a Pages site", + "scope": "repos", + "id": "getPages", + "method": "GET", + "url": "/repos/{owner}/{repo}/pages", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Enable a Pages site", + "scope": "repos", + "id": "enablePagesSite", + "method": "POST", + "url": "/repos/{owner}/{repo}/pages", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "source parameter", + "enum": null, + "name": "source", + "type": "object", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The repository branch used to publish your [site's source files](https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/). Can be either `master` or `gh-pages`.", + "enum": ["master", "gh-pages"], + "name": "source.branch", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The repository directory that includes the source files for the Pages site. When `branch` is `master`, you can change `path` to `/docs`. When `branch` is `gh-pages`, you are unable to specify a `path` other than `/`.", + "enum": null, + "name": "source.path", + "type": "string", + "required": false + } + ] + }, + { + "name": "Disable a Pages site", + "scope": "repos", + "id": "disablePagesSite", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/pages", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Update information about a Pages site", + "scope": "repos", + "id": "updateInformationAboutPagesSite", + "method": "PUT", + "url": "/repos/{owner}/{repo}/pages", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see \"[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/).\"", + "enum": null, + "name": "cname", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `\"gh-pages\"`, `\"master\"`, and `\"master /docs\"`.", + "enum": ["\"gh-pages\"", "\"master\"", "\"master /docs\""], + "name": "source", + "type": "string", + "required": false + } + ] + }, + { + "name": "Request a page build", + "scope": "repos", + "id": "requestPageBuild", + "method": "POST", + "url": "/repos/{owner}/{repo}/pages/builds", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List Pages builds", + "scope": "repos", + "id": "listPagesBuilds", + "method": "GET", + "url": "/repos/{owner}/{repo}/pages/builds", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get latest Pages build", + "scope": "repos", + "id": "getLatestPagesBuild", + "method": "GET", + "url": "/repos/{owner}/{repo}/pages/builds/latest", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a specific Pages build", + "scope": "repos", + "id": "getPagesBuild", + "method": "GET", + "url": "/repos/{owner}/{repo}/pages/builds/{build_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "build_id parameter", + "enum": null, + "name": "build_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List repository projects", + "scope": "projects", + "id": "listForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/projects", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a repository project", + "scope": "projects", + "id": "createForRepo", + "method": "POST", + "url": "/repos/{owner}/{repo}/projects", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the project.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The description of the project.", + "enum": null, + "name": "body", + "type": "string", + "required": false + } + ] + }, + { + "name": "List pull requests", + "scope": "pulls", + "id": "list", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `open`, `closed`, or `all` to filter by state.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`.", + "enum": null, + "name": "head", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filter pulls by base branch name. Example: `gh-pages`.", + "enum": null, + "name": "base", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month).", + "enum": ["created", "updated", "popularity", "long-running"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a pull request", + "scope": "pulls", + "id": "create", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the new pull request.", + "enum": null, + "name": "title", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`.", + "enum": null, + "name": "head", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository.", + "enum": null, + "name": "base", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the pull request.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request.", + "enum": null, + "name": "maintainer_can_modify", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates whether the pull request is a draft. See \"[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)\" in the GitHub Help documentation to learn more.", + "enum": null, + "name": "draft", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "List comments in a repository", + "scope": "pulls", + "id": "listCommentsForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be either `created` or `updated` comments.", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be either `asc` or `desc`. Ignored without `sort` parameter.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single comment", + "scope": "pulls", + "id": "getComment", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a comment", + "scope": "pulls", + "id": "updateComment", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/pulls/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The text of the reply to the review comment.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Delete a comment", + "scope": "pulls", + "id": "deleteComment", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/pulls/comments/{comment_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List reactions for a pull request review comment", + "scope": "reactions", + "id": "listForPullRequestReviewComment", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a pull request review comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create reaction for a pull request review comment", + "scope": "reactions", + "id": "createForPullRequestReviewComment", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the pull request review comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a single pull request", + "scope": "pulls", + "id": "get", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Update a pull request", + "scope": "pulls", + "id": "update", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The title of the pull request.", + "enum": null, + "name": "title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The contents of the pull request.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "State of this Pull Request. Either `open` or `closed`.", + "enum": ["open", "closed"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository.", + "enum": null, + "name": "base", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request.", + "enum": null, + "name": "maintainer_can_modify", + "type": "boolean", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List comments on a pull request", + "scope": "pulls", + "id": "listComments", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be either `created` or `updated` comments.", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be either `asc` or `desc`. Ignored without `sort` parameter.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Create a comment", + "scope": "pulls", + "id": "createComment", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The text of the review comment.", + "enum": null, + "name": "body", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`.", + "enum": null, + "name": "commit_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The relative path to the file that necessitates a comment.", + "enum": null, + "name": "path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.", + "enum": null, + "name": "position", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see \"[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)\" in the GitHub Help documentation.", + "enum": ["LEFT", "RIGHT"], + "name": "side", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.", + "enum": null, + "name": "line", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation.", + "enum": null, + "name": "start_line", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation. See `side` in this table for additional context.", + "enum": ["LEFT", "RIGHT", "side"], + "name": "start_side", + "type": "string", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + }, + { + "alias": null, + "allowNull": null, + "deprecated": true, + "description": "The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.", + "enum": null, + "name": "in_reply_to", + "type": "integer", + "required": null + } + ] + }, + { + "name": "Create a comment", + "scope": "pulls", + "id": "createCommentReply", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The text of the review comment.", + "enum": null, + "name": "body", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`.", + "enum": null, + "name": "commit_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The relative path to the file that necessitates a comment.", + "enum": null, + "name": "path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.", + "enum": null, + "name": "position", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see \"[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)\" in the GitHub Help documentation.", + "enum": ["LEFT", "RIGHT"], + "name": "side", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.", + "enum": null, + "name": "line", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation.", + "enum": null, + "name": "start_line", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see \"[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)\" in the GitHub Help documentation. See `side` in this table for additional context.", + "enum": ["LEFT", "RIGHT", "side"], + "name": "start_side", + "type": "string", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + }, + { + "alias": null, + "allowNull": null, + "deprecated": true, + "description": "The comment ID to reply to. **Note**: This must be the ID of a top-level comment, not a reply to that comment. Replies to replies are not supported.", + "enum": null, + "name": "in_reply_to", + "type": "integer", + "required": null + } + ] + }, + { + "name": "Create a review comment reply", + "scope": "pulls", + "id": "createReviewCommentReply", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_id parameter", + "enum": null, + "name": "comment_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The text of the review comment.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "List commits on a pull request", + "scope": "pulls", + "id": "listCommits", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/commits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List pull requests files", + "scope": "pulls", + "id": "listFiles", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/files", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Get if a pull request has been merged", + "scope": "pulls", + "id": "checkIfMerged", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/merge", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Merge a pull request (Merge Button)", + "scope": "pulls", + "id": "merge", + "method": "PUT", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/merge", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Title for the automatic commit message.", + "enum": null, + "name": "commit_title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Extra detail to append to automatic commit message.", + "enum": null, + "name": "commit_message", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "SHA that pull request head must match to allow merge.", + "enum": null, + "name": "sha", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "enum": ["merge", "squash", "rebase"], + "name": "merge_method", + "type": "string", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List review requests", + "scope": "pulls", + "id": "listReviewRequests", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Create a review request", + "scope": "pulls", + "id": "createReviewRequest", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An array of user `login`s that will be requested.", + "enum": null, + "name": "reviewers", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An array of team `slug`s that will be requested.", + "enum": null, + "name": "team_reviewers", + "type": "string[]", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Delete a review request", + "scope": "pulls", + "id": "deleteReviewRequest", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An array of user `login`s that will be removed.", + "enum": null, + "name": "reviewers", + "type": "string[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An array of team `slug`s that will be removed.", + "enum": null, + "name": "team_reviewers", + "type": "string[]", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "List reviews on a pull request", + "scope": "pulls", + "id": "listReviews", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Create a pull request review", + "scope": "pulls", + "id": "createReview", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value.", + "enum": null, + "name": "commit_id", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review) when you are ready.", + "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"], + "name": "event", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Use the following table to specify the location, destination, and contents of the draft review comment.", + "enum": null, + "name": "comments", + "type": "object[]", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The relative path to the file that necessitates a review comment.", + "enum": null, + "name": "comments[].path", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note below.", + "enum": null, + "name": "comments[].position", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Text of the review comment.", + "enum": null, + "name": "comments[].body", + "type": "string", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Get a single review", + "scope": "pulls", + "id": "getReview", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "review_id parameter", + "enum": null, + "name": "review_id", + "type": "integer", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Delete a pending review", + "scope": "pulls", + "id": "deletePendingReview", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "review_id parameter", + "enum": null, + "name": "review_id", + "type": "integer", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Update a pull request review", + "scope": "pulls", + "id": "updateReview", + "method": "PUT", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "review_id parameter", + "enum": null, + "name": "review_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The body text of the pull request review.", + "enum": null, + "name": "body", + "type": "string", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Get comments for a single review", + "scope": "pulls", + "id": "getCommentsForReview", + "method": "GET", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "review_id parameter", + "enum": null, + "name": "review_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Dismiss a pull request review", + "scope": "pulls", + "id": "dismissReview", + "method": "PUT", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "review_id parameter", + "enum": null, + "name": "review_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The message for the pull request review dismissal", + "enum": null, + "name": "message", + "type": "string", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Submit a pull request review", + "scope": "pulls", + "id": "submitReview", + "method": "POST", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "review_id parameter", + "enum": null, + "name": "review_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The body text of the pull request review", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action.", + "enum": ["APPROVE", "REQUEST_CHANGES", "COMMENT"], + "name": "event", + "type": "string", + "required": true + }, + { + "alias": "pull_number", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "number", + "type": null, + "required": null + } + ] + }, + { + "name": "Update a pull request branch", + "scope": "pulls", + "id": "updateBranch", + "method": "PUT", + "url": "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "pull_number parameter", + "enum": null, + "name": "pull_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the \"[List commits on a repository](https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository)\" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref.", + "enum": null, + "name": "expected_head_sha", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get the README", + "scope": "repos", + "id": "getReadme", + "method": "GET", + "url": "/repos/{owner}/{repo}/readme", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`)", + "enum": null, + "name": "ref", + "type": "string", + "required": false + } + ] + }, + { + "name": "List releases for a repository", + "scope": "repos", + "id": "listReleases", + "method": "GET", + "url": "/repos/{owner}/{repo}/releases", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a release", + "scope": "repos", + "id": "createRelease", + "method": "POST", + "url": "/repos/{owner}/{repo}/releases", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the tag.", + "enum": null, + "name": "tag_name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`).", + "enum": null, + "name": "target_commitish", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the release.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Text describing the contents of the tag.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "`true` to create a draft (unpublished) release, `false` to create a published one.", + "enum": null, + "name": "draft", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "`true` to identify the release as a prerelease. `false` to identify the release as a full release.", + "enum": null, + "name": "prerelease", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get a single release asset", + "scope": "repos", + "id": "getReleaseAsset", + "method": "GET", + "url": "/repos/{owner}/{repo}/releases/assets/{asset_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "asset_id parameter", + "enum": null, + "name": "asset_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a release asset", + "scope": "repos", + "id": "updateReleaseAsset", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/releases/assets/{asset_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "asset_id parameter", + "enum": null, + "name": "asset_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The file name of the asset.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An alternate short description of the asset. Used in place of the filename.", + "enum": null, + "name": "label", + "type": "string", + "required": false + } + ] + }, + { + "name": "Delete a release asset", + "scope": "repos", + "id": "deleteReleaseAsset", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/releases/assets/{asset_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "asset_id parameter", + "enum": null, + "name": "asset_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Get the latest release", + "scope": "repos", + "id": "getLatestRelease", + "method": "GET", + "url": "/repos/{owner}/{repo}/releases/latest", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a release by tag name", + "scope": "repos", + "id": "getReleaseByTag", + "method": "GET", + "url": "/repos/{owner}/{repo}/releases/tags/{tag}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "tag parameter", + "enum": null, + "name": "tag", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a single release", + "scope": "repos", + "id": "getRelease", + "method": "GET", + "url": "/repos/{owner}/{repo}/releases/{release_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "release_id parameter", + "enum": null, + "name": "release_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a release", + "scope": "repos", + "id": "updateRelease", + "method": "PATCH", + "url": "/repos/{owner}/{repo}/releases/{release_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "release_id parameter", + "enum": null, + "name": "release_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the tag.", + "enum": null, + "name": "tag_name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`).", + "enum": null, + "name": "target_commitish", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the release.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Text describing the contents of the tag.", + "enum": null, + "name": "body", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "`true` makes the release a draft, and `false` publishes the release.", + "enum": null, + "name": "draft", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "`true` to identify the release as a prerelease, `false` to identify the release as a full release.", + "enum": null, + "name": "prerelease", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a release", + "scope": "repos", + "id": "deleteRelease", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/releases/{release_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "release_id parameter", + "enum": null, + "name": "release_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List assets for a release", + "scope": "repos", + "id": "listAssetsForRelease", + "method": "GET", + "url": "/repos/{owner}/{repo}/releases/{release_id}/assets", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "release_id parameter", + "enum": null, + "name": "release_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List Stargazers", + "scope": "activity", + "id": "listStargazersForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/stargazers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get the number of additions and deletions per week", + "scope": "repos", + "id": "getCodeFrequencyStats", + "method": "GET", + "url": "/repos/{owner}/{repo}/stats/code_frequency", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get the last year of commit activity data", + "scope": "repos", + "id": "getCommitActivityStats", + "method": "GET", + "url": "/repos/{owner}/{repo}/stats/commit_activity", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get contributors list with additions, deletions, and commit counts", + "scope": "repos", + "id": "getContributorsStats", + "method": "GET", + "url": "/repos/{owner}/{repo}/stats/contributors", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get the weekly commit count for the repository owner and everyone else", + "scope": "repos", + "id": "getParticipationStats", + "method": "GET", + "url": "/repos/{owner}/{repo}/stats/participation", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get the number of commits per hour in each day", + "scope": "repos", + "id": "getPunchCardStats", + "method": "GET", + "url": "/repos/{owner}/{repo}/stats/punch_card", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create a status", + "scope": "repos", + "id": "createStatus", + "method": "POST", + "url": "/repos/{owner}/{repo}/statuses/{sha}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "sha parameter", + "enum": null, + "name": "sha", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The state of the status. Can be one of `error`, `failure`, `pending`, or `success`.", + "enum": ["error", "failure", "pending", "success"], + "name": "state", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. \nFor example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: \n`http://ci.example.com/user/repo/build/sha`", + "enum": null, + "name": "target_url", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the status.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A string label to differentiate this status from the status of other systems.", + "enum": null, + "name": "context", + "type": "string", + "required": false + } + ] + }, + { + "name": "List watchers", + "scope": "activity", + "id": "listWatchersForRepo", + "method": "GET", + "url": "/repos/{owner}/{repo}/subscribers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a Repository Subscription", + "scope": "activity", + "id": "getRepoSubscription", + "method": "GET", + "url": "/repos/{owner}/{repo}/subscription", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Set a Repository Subscription", + "scope": "activity", + "id": "setRepoSubscription", + "method": "PUT", + "url": "/repos/{owner}/{repo}/subscription", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines if notifications should be received from this repository.", + "enum": null, + "name": "subscribed", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines if all notifications should be blocked from this repository.", + "enum": null, + "name": "ignored", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Delete a Repository Subscription", + "scope": "activity", + "id": "deleteRepoSubscription", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/subscription", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List tags", + "scope": "repos", + "id": "listTags", + "method": "GET", + "url": "/repos/{owner}/{repo}/tags", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List teams", + "scope": "repos", + "id": "listTeams", + "method": "GET", + "url": "/repos/{owner}/{repo}/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List all topics for a repository", + "scope": "repos", + "id": "listTopics", + "method": "GET", + "url": "/repos/{owner}/{repo}/topics", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Replace all topics for a repository", + "scope": "repos", + "id": "replaceTopics", + "method": "PUT", + "url": "/repos/{owner}/{repo}/topics", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters.", + "enum": null, + "name": "names", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Clones", + "scope": "repos", + "id": "getClones", + "method": "GET", + "url": "/repos/{owner}/{repo}/traffic/clones", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Must be one of: `day`, `week`.", + "enum": ["day", "week"], + "name": "per", + "type": "string", + "required": false + } + ] + }, + { + "name": "List paths", + "scope": "repos", + "id": "getTopPaths", + "method": "GET", + "url": "/repos/{owner}/{repo}/traffic/popular/paths", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List referrers", + "scope": "repos", + "id": "getTopReferrers", + "method": "GET", + "url": "/repos/{owner}/{repo}/traffic/popular/referrers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Views", + "scope": "repos", + "id": "getViews", + "method": "GET", + "url": "/repos/{owner}/{repo}/traffic/views", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Must be one of: `day`, `week`.", + "enum": ["day", "week"], + "name": "per", + "type": "string", + "required": false + } + ] + }, + { + "name": "Transfer a repository", + "scope": "repos", + "id": "transfer", + "method": "POST", + "url": "/repos/{owner}/{repo}/transfer", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Required:** The username or organization name the repository will be transferred to.", + "enum": null, + "name": "new_owner", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.", + "enum": null, + "name": "team_ids", + "type": "integer[]", + "required": false + } + ] + }, + { + "name": "Check if vulnerability alerts are enabled for a repository", + "scope": "repos", + "id": "checkVulnerabilityAlerts", + "method": "GET", + "url": "/repos/{owner}/{repo}/vulnerability-alerts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Enable vulnerability alerts", + "scope": "repos", + "id": "enableVulnerabilityAlerts", + "method": "PUT", + "url": "/repos/{owner}/{repo}/vulnerability-alerts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Disable vulnerability alerts", + "scope": "repos", + "id": "disableVulnerabilityAlerts", + "method": "DELETE", + "url": "/repos/{owner}/{repo}/vulnerability-alerts", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get archive link", + "scope": "repos", + "id": "getArchiveLink", + "method": "GET", + "url": "/repos/{owner}/{repo}/{archive_format}/{ref}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "archive_format parameter", + "enum": null, + "name": "archive_format", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ref parameter", + "enum": null, + "name": "ref", + "type": "string", + "required": true + } + ] + }, + { + "name": "Create repository using a repository template", + "scope": "repos", + "id": "createUsingTemplate", + "method": "POST", + "url": "/repos/{template_owner}/{template_repo}/generate", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "template_owner parameter", + "enum": null, + "name": "template_owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "template_repo parameter", + "enum": null, + "name": "template_repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization.", + "enum": null, + "name": "owner", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the new repository.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the new repository.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to create a new private repository or `false` to create a new public one.", + "enum": null, + "name": "private", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "List all public repositories", + "scope": "repos", + "id": "listPublic", + "method": "GET", + "url": "/repositories", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The integer ID of the last Repository that you've seen.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a list of provisioned identities", + "scope": "scim", + "id": "listProvisionedIdentities", + "method": "GET", + "url": "/scim/v2/organizations/{org}/Users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Used for pagination: the index of the first result to return.", + "enum": null, + "name": "startIndex", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Used for pagination: the number of results to return.", + "enum": null, + "name": "count", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query: `?filter=userName%20eq%20\\\"Octocat\\\"`.", + "enum": null, + "name": "filter", + "type": "string", + "required": false + } + ] + }, + { + "name": "Provision and invite users", + "scope": "scim", + "id": "provisionAndInviteUsers", + "method": "POST", + "url": "/scim/v2/organizations/{org}/Users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Provision and invite users", + "scope": "scim", + "id": "provisionInviteUsers", + "method": "POST", + "url": "/scim/v2/organizations/{org}/Users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get provisioning details for a single user", + "scope": "scim", + "id": "getProvisioningDetailsForUser", + "method": "GET", + "url": "/scim/v2/organizations/{org}/Users/{scim_user_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "scim_user_id parameter", + "enum": null, + "name": "scim_user_id", + "type": "integer", + "required": true + }, + { + "alias": "scim_user_id", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "external_identity_guid", + "type": null, + "required": null + } + ] + }, + { + "name": "Replace a provisioned user's information", + "scope": "scim", + "id": "replaceProvisionedUserInformation", + "method": "PUT", + "url": "/scim/v2/organizations/{org}/Users/{scim_user_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "scim_user_id parameter", + "enum": null, + "name": "scim_user_id", + "type": "integer", + "required": true + }, + { + "alias": "scim_user_id", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "external_identity_guid", + "type": null, + "required": null + } + ] + }, + { + "name": "Replace a provisioned user's information", + "scope": "scim", + "id": "updateProvisionedOrgMembership", + "method": "PUT", + "url": "/scim/v2/organizations/{org}/Users/{scim_user_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "scim_user_id parameter", + "enum": null, + "name": "scim_user_id", + "type": "integer", + "required": true + }, + { + "alias": "scim_user_id", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "external_identity_guid", + "type": null, + "required": null + } + ] + }, + { + "name": "Update a user attribute", + "scope": "scim", + "id": "updateUserAttribute", + "method": "PATCH", + "url": "/scim/v2/organizations/{org}/Users/{scim_user_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "scim_user_id parameter", + "enum": null, + "name": "scim_user_id", + "type": "integer", + "required": true + }, + { + "alias": "scim_user_id", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "external_identity_guid", + "type": null, + "required": null + } + ] + }, + { + "name": "Remove a user from the organization", + "scope": "scim", + "id": "removeUserFromOrg", + "method": "DELETE", + "url": "/scim/v2/organizations/{org}/Users/{scim_user_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "scim_user_id parameter", + "enum": null, + "name": "scim_user_id", + "type": "integer", + "required": true + }, + { + "alias": "scim_user_id", + "allowNull": null, + "deprecated": true, + "description": null, + "enum": null, + "name": "external_identity_guid", + "type": null, + "required": null + } + ] + }, + { + "name": "Search code", + "scope": "search", + "id": "code", + "method": "GET", + "url": "/search/code", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See \"[Searching code](https://help.github.com/articles/searching-code/)\" for a detailed list of qualifiers.", + "enum": null, + "name": "q", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results)", + "enum": ["indexed"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "enum": ["desc", "asc"], + "name": "order", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Search commits", + "scope": "search", + "id": "commits", + "method": "GET", + "url": "/search/commits", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See \"[Searching commits](https://help.github.com/articles/searching-commits/)\" for a detailed list of qualifiers.", + "enum": null, + "name": "q", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results)", + "enum": ["author-date", "committer-date"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "enum": ["desc", "asc"], + "name": "order", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Search issues and pull requests", + "scope": "search", + "id": "issuesAndPullRequests", + "method": "GET", + "url": "/search/issues", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See \"[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)\" for a detailed list of qualifiers.", + "enum": null, + "name": "q", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results)", + "enum": [ + "comments", + "reactions", + "reactions-+1", + "reactions--1", + "reactions-smile", + "reactions-thinking_face", + "reactions-heart", + "reactions-tada", + "interactions", + "created", + "updated" + ], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "enum": ["desc", "asc"], + "name": "order", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Search issues and pull requests", + "scope": "search", + "id": "issues", + "method": "GET", + "url": "/search/issues", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See \"[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)\" for a detailed list of qualifiers.", + "enum": null, + "name": "q", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results)", + "enum": [ + "comments", + "reactions", + "reactions-+1", + "reactions--1", + "reactions-smile", + "reactions-thinking_face", + "reactions-heart", + "reactions-tada", + "interactions", + "created", + "updated" + ], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "enum": ["desc", "asc"], + "name": "order", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Search labels", + "scope": "search", + "id": "labels", + "method": "GET", + "url": "/search/labels", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The id of the repository.", + "enum": null, + "name": "repository_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query).", + "enum": null, + "name": "q", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results)", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "enum": ["desc", "asc"], + "name": "order", + "type": "string", + "required": false + } + ] + }, + { + "name": "Search repositories", + "scope": "search", + "id": "repos", + "method": "GET", + "url": "/search/repositories", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See \"[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)\" for a detailed list of qualifiers.", + "enum": null, + "name": "q", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results)", + "enum": ["stars", "forks", "help-wanted-issues", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "enum": ["desc", "asc"], + "name": "order", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Search topics", + "scope": "search", + "id": "topics", + "method": "GET", + "url": "/search/topics", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query).", + "enum": null, + "name": "q", + "type": "string", + "required": true + } + ] + }, + { + "name": "Search users", + "scope": "search", + "id": "users", + "method": "GET", + "url": "/search/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See \"[Searching users](https://help.github.com/articles/searching-users/)\" for a detailed list of qualifiers.", + "enum": null, + "name": "q", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results)", + "enum": ["followers", "repositories", "joined"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`.", + "enum": ["desc", "asc"], + "name": "order", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get team", + "scope": "teams", + "id": "get", + "method": "GET", + "url": "/teams/{team_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit team", + "scope": "teams", + "id": "update", + "method": "PATCH", + "url": "/teams/{team_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the team.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The description of the team.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: \n**For a non-nested team:** \n\\* `secret` - only visible to organization owners and members of this team. \n\\* `closed` - visible to all members of this organization. \n**For a parent or child team:** \n\\* `closed` - visible to all members of this organization.", + "enum": ["secret", "closed"], + "name": "privacy", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "**Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer newly-added repositories. \n\\* `push` - team members can pull and push, but not administer newly-added repositories. \n\\* `admin` - team members can pull, push and administer newly-added repositories.", + "enum": ["pull", "push", "admin"], + "name": "permission", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter.", + "enum": null, + "name": "parent_team_id", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Delete team", + "scope": "teams", + "id": "delete", + "method": "DELETE", + "url": "/teams/{team_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List discussions", + "scope": "teams", + "id": "listDiscussions", + "method": "GET", + "url": "/teams/{team_id}/discussions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a discussion", + "scope": "teams", + "id": "createDiscussion", + "method": "POST", + "url": "/teams/{team_id}/discussions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The discussion post's title.", + "enum": null, + "name": "title", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The discussion post's body text.", + "enum": null, + "name": "body", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post.", + "enum": null, + "name": "private", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get a single discussion", + "scope": "teams", + "id": "getDiscussion", + "method": "GET", + "url": "/teams/{team_id}/discussions/{discussion_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a discussion", + "scope": "teams", + "id": "updateDiscussion", + "method": "PATCH", + "url": "/teams/{team_id}/discussions/{discussion_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The discussion post's title.", + "enum": null, + "name": "title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The discussion post's body text.", + "enum": null, + "name": "body", + "type": "string", + "required": false + } + ] + }, + { + "name": "Delete a discussion", + "scope": "teams", + "id": "deleteDiscussion", + "method": "DELETE", + "url": "/teams/{team_id}/discussions/{discussion_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List comments", + "scope": "teams", + "id": "listDiscussionComments", + "method": "GET", + "url": "/teams/{team_id}/discussions/{discussion_number}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a comment", + "scope": "teams", + "id": "createDiscussionComment", + "method": "POST", + "url": "/teams/{team_id}/discussions/{discussion_number}/comments", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The discussion comment's body text.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a single comment", + "scope": "teams", + "id": "getDiscussionComment", + "method": "GET", + "url": "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_number parameter", + "enum": null, + "name": "comment_number", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Edit a comment", + "scope": "teams", + "id": "updateDiscussionComment", + "method": "PATCH", + "url": "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_number parameter", + "enum": null, + "name": "comment_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The discussion comment's body text.", + "enum": null, + "name": "body", + "type": "string", + "required": true + } + ] + }, + { + "name": "Delete a comment", + "scope": "teams", + "id": "deleteDiscussionComment", + "method": "DELETE", + "url": "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_number parameter", + "enum": null, + "name": "comment_number", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List reactions for a team discussion comment", + "scope": "reactions", + "id": "listForTeamDiscussionComment", + "method": "GET", + "url": "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_number parameter", + "enum": null, + "name": "comment_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create reaction for a team discussion comment", + "scope": "reactions", + "id": "createForTeamDiscussionComment", + "method": "POST", + "url": "/teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "comment_number parameter", + "enum": null, + "name": "comment_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion comment.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": true + } + ] + }, + { + "name": "List reactions for a team discussion", + "scope": "reactions", + "id": "listForTeamDiscussion", + "method": "GET", + "url": "/teams/{team_id}/discussions/{discussion_number}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create reaction for a team discussion", + "scope": "reactions", + "id": "createForTeamDiscussion", + "method": "POST", + "url": "/teams/{team_id}/discussions/{discussion_number}/reactions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "discussion_number parameter", + "enum": null, + "name": "discussion_number", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion.", + "enum": [ + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ], + "name": "content", + "type": "string", + "required": true + } + ] + }, + { + "name": "List pending team invitations", + "scope": "teams", + "id": "listPendingInvitations", + "method": "GET", + "url": "/teams/{team_id}/invitations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List team members", + "scope": "teams", + "id": "listMembers", + "method": "GET", + "url": "/teams/{team_id}/members", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Filters members returned by their role in the team. Can be one of: \n\\* `member` - normal members of the team. \n\\* `maintainer` - team maintainers. \n\\* `all` - all members of the team.", + "enum": ["member", "maintainer", "all"], + "name": "role", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get team member", + "scope": "teams", + "id": "getMember", + "method": "GET", + "url": "/teams/{team_id}/members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add team member", + "scope": "teams", + "id": "addMember", + "method": "PUT", + "url": "/teams/{team_id}/members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Remove team member", + "scope": "teams", + "id": "removeMember", + "method": "DELETE", + "url": "/teams/{team_id}/members/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get team membership", + "scope": "teams", + "id": "getMembership", + "method": "GET", + "url": "/teams/{team_id}/memberships/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add or update team membership", + "scope": "teams", + "id": "addOrUpdateMembership", + "method": "PUT", + "url": "/teams/{team_id}/memberships/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The role that this user should have in the team. Can be one of: \n\\* `member` - a normal member of the team. \n\\* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description.", + "enum": ["member", "maintainer"], + "name": "role", + "type": "string", + "required": false + } + ] + }, + { + "name": "Remove team membership", + "scope": "teams", + "id": "removeMembership", + "method": "DELETE", + "url": "/teams/{team_id}/memberships/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List team projects", + "scope": "teams", + "id": "listProjects", + "method": "GET", + "url": "/teams/{team_id}/projects", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Review a team project", + "scope": "teams", + "id": "reviewProject", + "method": "GET", + "url": "/teams/{team_id}/projects/{project_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Add or update team project", + "scope": "teams", + "id": "addOrUpdateProject", + "method": "PUT", + "url": "/teams/{team_id}/projects/{project_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The permission to grant to the team for this project. Can be one of: \n\\* `read` - team members can read, but not write to or administer this project. \n\\* `write` - team members can read and write, but not administer this project. \n\\* `admin` - team members can read, write and administer this project. \nDefault: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see \"[HTTP verbs](https://developer.github.com/v3/#http-verbs).\" \n**Note**: If you pass the `hellcat-preview` media type, you can promote—but not demote—a `permission` attribute inherited from a parent team.", + "enum": ["read", "write", "admin"], + "name": "permission", + "type": "string", + "required": false + } + ] + }, + { + "name": "Remove team project", + "scope": "teams", + "id": "removeProject", + "method": "DELETE", + "url": "/teams/{team_id}/projects/{project_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "project_id parameter", + "enum": null, + "name": "project_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List team repos", + "scope": "teams", + "id": "listRepos", + "method": "GET", + "url": "/teams/{team_id}/repos", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check if a team manages a repository", + "scope": "teams", + "id": "checkManagesRepo", + "method": "GET", + "url": "/teams/{team_id}/repos/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Add or update team repository", + "scope": "teams", + "id": "addOrUpdateRepo", + "method": "PUT", + "url": "/teams/{team_id}/repos/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The permission to grant the team on this repository. Can be one of: \n\\* `pull` - team members can pull, but not push to or administer this repository. \n\\* `push` - team members can pull and push, but not administer this repository. \n\\* `admin` - team members can pull, push and administer this repository. \n \nIf no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. \n**Note**: If you pass the `hellcat-preview` media type, you can promote—but not demote—a `permission` attribute inherited through a parent team.", + "enum": ["pull", "push", "admin"], + "name": "permission", + "type": "string", + "required": false + } + ] + }, + { + "name": "Remove team repository", + "scope": "teams", + "id": "removeRepo", + "method": "DELETE", + "url": "/teams/{team_id}/repos/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List IdP groups for a team", + "scope": "teams", + "id": "listIdPGroups", + "method": "GET", + "url": "/teams/{team_id}/team-sync/group-mappings", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Create or update IdP group connections", + "scope": "teams", + "id": "createOrUpdateIdPGroupConnections", + "method": "PATCH", + "url": "/teams/{team_id}/team-sync/group-mappings", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove.", + "enum": null, + "name": "groups", + "type": "object[]", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "ID of the IdP group.", + "enum": null, + "name": "groups[].group_id", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Name of the IdP group.", + "enum": null, + "name": "groups[].group_name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Description of the IdP group.", + "enum": null, + "name": "groups[].group_description", + "type": "string", + "required": true + } + ] + }, + { + "name": "List child teams", + "scope": "teams", + "id": "listChild", + "method": "GET", + "url": "/teams/{team_id}/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "team_id parameter", + "enum": null, + "name": "team_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get the authenticated user", + "scope": "users", + "id": "getAuthenticated", + "method": "GET", + "url": "/user", + "parameters": [] + }, + { + "name": "Update the authenticated user", + "scope": "users", + "id": "updateAuthenticated", + "method": "PATCH", + "url": "/user", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new name of the user.", + "enum": null, + "name": "name", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The publicly visible email address of the user.", + "enum": null, + "name": "email", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new blog URL of the user.", + "enum": null, + "name": "blog", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new company of the user.", + "enum": null, + "name": "company", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new location of the user.", + "enum": null, + "name": "location", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new hiring availability of the user.", + "enum": null, + "name": "hireable", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The new short biography of the user.", + "enum": null, + "name": "bio", + "type": "string", + "required": false + } + ] + }, + { + "name": "List blocked users", + "scope": "users", + "id": "listBlocked", + "method": "GET", + "url": "/user/blocks", + "parameters": [] + }, + { + "name": "Check whether you've blocked a user", + "scope": "users", + "id": "checkBlocked", + "method": "GET", + "url": "/user/blocks/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Block a user", + "scope": "users", + "id": "block", + "method": "PUT", + "url": "/user/blocks/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Unblock a user", + "scope": "users", + "id": "unblock", + "method": "DELETE", + "url": "/user/blocks/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Toggle primary email visibility", + "scope": "users", + "id": "togglePrimaryEmailVisibility", + "method": "PATCH", + "url": "/user/email/visibility", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Specify the _primary_ email address that needs a visibility change.", + "enum": null, + "name": "email", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Use `public` to enable an authenticated user to view the specified email address, or use `private` so this primary email address cannot be seen publicly.", + "enum": null, + "name": "visibility", + "type": "string", + "required": true + } + ] + }, + { + "name": "List email addresses for a user", + "scope": "users", + "id": "listEmails", + "method": "GET", + "url": "/user/emails", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Add email address(es)", + "scope": "users", + "id": "addEmails", + "method": "POST", + "url": "/user/emails", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", + "enum": null, + "name": "emails", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "Delete email address(es)", + "scope": "users", + "id": "deleteEmails", + "method": "DELETE", + "url": "/user/emails", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key.", + "enum": null, + "name": "emails", + "type": "string[]", + "required": true + } + ] + }, + { + "name": "List the authenticated user's followers", + "scope": "users", + "id": "listFollowersForAuthenticatedUser", + "method": "GET", + "url": "/user/followers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List who the authenticated user is following", + "scope": "users", + "id": "listFollowingForAuthenticatedUser", + "method": "GET", + "url": "/user/following", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check if you are following a user", + "scope": "users", + "id": "checkFollowing", + "method": "GET", + "url": "/user/following/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Follow a user", + "scope": "users", + "id": "follow", + "method": "PUT", + "url": "/user/following/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Unfollow a user", + "scope": "users", + "id": "unfollow", + "method": "DELETE", + "url": "/user/following/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List your GPG keys", + "scope": "users", + "id": "listGpgKeys", + "method": "GET", + "url": "/user/gpg_keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a GPG key", + "scope": "users", + "id": "createGpgKey", + "method": "POST", + "url": "/user/gpg_keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Your GPG key, generated in ASCII-armored format. See \"[Generating a new GPG key](https://help.github.com/articles/generating-a-new-gpg-key/)\" for help creating a GPG key.", + "enum": null, + "name": "armored_public_key", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a single GPG key", + "scope": "users", + "id": "getGpgKey", + "method": "GET", + "url": "/user/gpg_keys/{gpg_key_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gpg_key_id parameter", + "enum": null, + "name": "gpg_key_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Delete a GPG key", + "scope": "users", + "id": "deleteGpgKey", + "method": "DELETE", + "url": "/user/gpg_keys/{gpg_key_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "gpg_key_id parameter", + "enum": null, + "name": "gpg_key_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List installations for a user", + "scope": "apps", + "id": "listInstallationsForAuthenticatedUser", + "method": "GET", + "url": "/user/installations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List repositories accessible to the user for an installation", + "scope": "apps", + "id": "listInstallationReposForAuthenticatedUser", + "method": "GET", + "url": "/user/installations/{installation_id}/repositories", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "installation_id parameter", + "enum": null, + "name": "installation_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Add repository to installation", + "scope": "apps", + "id": "addRepoToInstallation", + "method": "PUT", + "url": "/user/installations/{installation_id}/repositories/{repository_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "installation_id parameter", + "enum": null, + "name": "installation_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repository_id parameter", + "enum": null, + "name": "repository_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Remove repository from installation", + "scope": "apps", + "id": "removeRepoFromInstallation", + "method": "DELETE", + "url": "/user/installations/{installation_id}/repositories/{repository_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "installation_id parameter", + "enum": null, + "name": "installation_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repository_id parameter", + "enum": null, + "name": "repository_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List all issues across owned and member repositories assigned to the authenticated user", + "scope": "issues", + "id": "listForAuthenticatedUser", + "method": "GET", + "url": "/user/issues", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates which sorts of issues to return. Can be one of: \n\\* `assigned`: Issues assigned to you \n\\* `created`: Issues created by you \n\\* `mentioned`: Issues mentioning you \n\\* `subscribed`: Issues you're subscribed to updates for \n\\* `all`: All issues the authenticated user can see, regardless of participation or creation", + "enum": ["assigned", "created", "mentioned", "subscribed", "all"], + "name": "filter", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A list of comma separated label names. Example: `bug,ui,@high`", + "enum": null, + "name": "labels", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "What to sort results by. Can be either `created`, `updated`, `comments`.", + "enum": ["created", "updated", "comments"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The direction of the sort. Can be either `asc` or `desc`.", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List your public keys", + "scope": "users", + "id": "listPublicKeys", + "method": "GET", + "url": "/user/keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a public key", + "scope": "users", + "id": "createPublicKey", + "method": "POST", + "url": "/user/keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A descriptive name for the new key. Use a name that will help you recognize this key in your GitHub account. For example, if you're using a personal Mac, you might call this key \"Personal MacBook Air\".", + "enum": null, + "name": "title", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The public SSH key to add to your GitHub account. See \"[Generating a new SSH key](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/)\" for guidance on how to create a public SSH key.", + "enum": null, + "name": "key", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a single public key", + "scope": "users", + "id": "getPublicKey", + "method": "GET", + "url": "/user/keys/{key_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "key_id parameter", + "enum": null, + "name": "key_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Delete a public key", + "scope": "users", + "id": "deletePublicKey", + "method": "DELETE", + "url": "/user/keys/{key_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "key_id parameter", + "enum": null, + "name": "key_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Get a user's Marketplace purchases", + "scope": "apps", + "id": "listMarketplacePurchasesForAuthenticatedUser", + "method": "GET", + "url": "/user/marketplace_purchases", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a user's Marketplace purchases (stubbed)", + "scope": "apps", + "id": "listMarketplacePurchasesForAuthenticatedUserStubbed", + "method": "GET", + "url": "/user/marketplace_purchases/stubbed", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List your organization memberships", + "scope": "orgs", + "id": "listMemberships", + "method": "GET", + "url": "/user/memberships/orgs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships.", + "enum": ["active", "pending"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get your organization membership", + "scope": "orgs", + "id": "getMembershipForAuthenticatedUser", + "method": "GET", + "url": "/user/memberships/orgs/{org}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + } + ] + }, + { + "name": "Edit your organization membership", + "scope": "orgs", + "id": "updateMembership", + "method": "PATCH", + "url": "/user/memberships/orgs/{org}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The state that the membership should be in. Only `\"active\"` will be accepted.", + "enum": ["active"], + "name": "state", + "type": "string", + "required": true + } + ] + }, + { + "name": "Start a user migration", + "scope": "migrations", + "id": "startForAuthenticatedUser", + "method": "POST", + "url": "/user/migrations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "An array of repositories to include in the migration.", + "enum": null, + "name": "repositories", + "type": "string[]", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Locks the `repositories` to prevent changes during the migration when set to `true`.", + "enum": null, + "name": "lock_repositories", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Does not include attachments uploaded to GitHub.com in the migration data when set to `true`. Excluding attachments will reduce the migration archive file size.", + "enum": null, + "name": "exclude_attachments", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "Get a list of user migrations", + "scope": "migrations", + "id": "listForAuthenticatedUser", + "method": "GET", + "url": "/user/migrations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get the status of a user migration", + "scope": "migrations", + "id": "getStatusForAuthenticatedUser", + "method": "GET", + "url": "/user/migrations/{migration_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Download a user migration archive", + "scope": "migrations", + "id": "getArchiveForAuthenticatedUser", + "method": "GET", + "url": "/user/migrations/{migration_id}/archive", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Delete a user migration archive", + "scope": "migrations", + "id": "deleteArchiveForAuthenticatedUser", + "method": "DELETE", + "url": "/user/migrations/{migration_id}/archive", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Unlock a user repository", + "scope": "migrations", + "id": "unlockRepoForAuthenticatedUser", + "method": "DELETE", + "url": "/user/migrations/{migration_id}/repos/{repo_name}/lock", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "migration_id parameter", + "enum": null, + "name": "migration_id", + "type": "integer", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo_name parameter", + "enum": null, + "name": "repo_name", + "type": "string", + "required": true + } + ] + }, + { + "name": "List your organizations", + "scope": "orgs", + "id": "listForAuthenticatedUser", + "method": "GET", + "url": "/user/orgs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Create a user project", + "scope": "projects", + "id": "createForAuthenticatedUser", + "method": "POST", + "url": "/user/projects", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the project.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The description of the project.", + "enum": null, + "name": "body", + "type": "string", + "required": false + } + ] + }, + { + "name": "List public email addresses for a user", + "scope": "users", + "id": "listPublicEmails", + "method": "GET", + "url": "/user/public_emails", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List your repositories", + "scope": "repos", + "id": "list", + "method": "GET", + "url": "/user/repos", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `all`, `public`, or `private`.", + "enum": ["all", "public", "private"], + "name": "visibility", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Comma-separated list of values. Can include: \n\\* `owner`: Repositories that are owned by the authenticated user. \n\\* `collaborator`: Repositories that the user has been added to as a collaborator. \n\\* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on.", + "enum": null, + "name": "affiliation", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `all`, `owner`, `public`, `private`, `member`. Default: `all` \n \nWill cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**.", + "enum": ["all", "owner", "public", "private", "member"], + "name": "type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", + "enum": ["created", "updated", "pushed", "full_name"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc`", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Creates a new repository for the authenticated user", + "scope": "repos", + "id": "createForAuthenticatedUser", + "method": "POST", + "url": "/user/repos", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The name of the repository.", + "enum": null, + "name": "name", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A short description of the repository.", + "enum": null, + "name": "description", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "A URL with more information about the repository.", + "enum": null, + "name": "homepage", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to create a private repository or `false` to create a public one. Creating private repositories requires a paid GitHub account.", + "enum": null, + "name": "private", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable issues for this repository or `false` to disable them.", + "enum": null, + "name": "has_issues", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error.", + "enum": null, + "name": "has_projects", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to enable the wiki for this repository or `false` to disable it.", + "enum": null, + "name": "has_wiki", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to make this repo available as a template repository or `false` to prevent it.", + "enum": null, + "name": "is_template", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization.", + "enum": null, + "name": "team_id", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Pass `true` to create an initial commit with empty README.", + "enum": null, + "name": "auto_init", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, \"Haskell\".", + "enum": null, + "name": "gitignore_template", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, \"mit\" or \"mpl-2.0\".", + "enum": null, + "name": "license_template", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging.", + "enum": null, + "name": "allow_squash_merge", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits.", + "enum": null, + "name": "allow_merge_commit", + "type": "boolean", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging.", + "enum": null, + "name": "allow_rebase_merge", + "type": "boolean", + "required": false + } + ] + }, + { + "name": "List a user's repository invitations", + "scope": "repos", + "id": "listInvitationsForAuthenticatedUser", + "method": "GET", + "url": "/user/repository_invitations", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Accept a repository invitation", + "scope": "repos", + "id": "acceptInvitation", + "method": "PATCH", + "url": "/user/repository_invitations/{invitation_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "invitation_id parameter", + "enum": null, + "name": "invitation_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "Decline a repository invitation", + "scope": "repos", + "id": "declineInvitation", + "method": "DELETE", + "url": "/user/repository_invitations/{invitation_id}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "invitation_id parameter", + "enum": null, + "name": "invitation_id", + "type": "integer", + "required": true + } + ] + }, + { + "name": "List repositories being starred by the authenticated user", + "scope": "activity", + "id": "listReposStarredByAuthenticatedUser", + "method": "GET", + "url": "/user/starred", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "One of `created` (when the repository was starred) or `updated` (when it was last pushed to).", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "One of `asc` (ascending) or `desc` (descending).", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check if you are starring a repository", + "scope": "activity", + "id": "checkStarringRepo", + "method": "GET", + "url": "/user/starred/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Star a repository", + "scope": "activity", + "id": "starRepo", + "method": "PUT", + "url": "/user/starred/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Unstar a repository", + "scope": "activity", + "id": "unstarRepo", + "method": "DELETE", + "url": "/user/starred/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List repositories being watched by the authenticated user", + "scope": "activity", + "id": "listWatchedReposForAuthenticatedUser", + "method": "GET", + "url": "/user/subscriptions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check if you are watching a repository (LEGACY)", + "scope": "activity", + "id": "checkWatchingRepoLegacy", + "method": "GET", + "url": "/user/subscriptions/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Watch a repository (LEGACY)", + "scope": "activity", + "id": "watchRepoLegacy", + "method": "PUT", + "url": "/user/subscriptions/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "Stop watching a repository (LEGACY)", + "scope": "activity", + "id": "stopWatchingRepoLegacy", + "method": "DELETE", + "url": "/user/subscriptions/{owner}/{repo}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "owner parameter", + "enum": null, + "name": "owner", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "repo parameter", + "enum": null, + "name": "repo", + "type": "string", + "required": true + } + ] + }, + { + "name": "List user teams", + "scope": "teams", + "id": "listForAuthenticatedUser", + "method": "GET", + "url": "/user/teams", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get all users", + "scope": "users", + "id": "list", + "method": "GET", + "url": "/users", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "The integer ID of the last User that you've seen.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get a single user", + "scope": "users", + "id": "getByUsername", + "method": "GET", + "url": "/users/{username}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List events performed by a user", + "scope": "activity", + "id": "listEventsForUser", + "method": "GET", + "url": "/users/{username}/events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List events for an organization", + "scope": "activity", + "id": "listEventsForOrg", + "method": "GET", + "url": "/users/{username}/events/orgs/{org}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "org parameter", + "enum": null, + "name": "org", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List public events performed by a user", + "scope": "activity", + "id": "listPublicEventsForUser", + "method": "GET", + "url": "/users/{username}/events/public", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List a user's followers", + "scope": "users", + "id": "listFollowersForUser", + "method": "GET", + "url": "/users/{username}/followers", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List who a user is following", + "scope": "users", + "id": "listFollowingForUser", + "method": "GET", + "url": "/users/{username}/following", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Check if one user follows another", + "scope": "users", + "id": "checkFollowingForUser", + "method": "GET", + "url": "/users/{username}/following/{target_user}", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "target_user parameter", + "enum": null, + "name": "target_user", + "type": "string", + "required": true + } + ] + }, + { + "name": "List public gists for the specified user", + "scope": "gists", + "id": "listPublicForUser", + "method": "GET", + "url": "/users/{username}/gists", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned.", + "enum": null, + "name": "since", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List GPG keys for a user", + "scope": "users", + "id": "listGpgKeysForUser", + "method": "GET", + "url": "/users/{username}/gpg_keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "Get contextual information about a user", + "scope": "users", + "id": "getContextForUser", + "method": "GET", + "url": "/users/{username}/hovercard", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`.", + "enum": ["organization", "repository", "issue", "pull_request"], + "name": "subject_type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`.", + "enum": null, + "name": "subject_id", + "type": "string", + "required": false + } + ] + }, + { + "name": "Get a user installation", + "scope": "apps", + "id": "getUserInstallation", + "method": "GET", + "url": "/users/{username}/installation", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "Get a user installation", + "scope": "apps", + "id": "findUserInstallation", + "method": "GET", + "url": "/users/{username}/installation", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + } + ] + }, + { + "name": "List public keys for a user", + "scope": "users", + "id": "listPublicKeysForUser", + "method": "GET", + "url": "/users/{username}/keys", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List user organizations", + "scope": "orgs", + "id": "listForUser", + "method": "GET", + "url": "/users/{username}/orgs", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List user projects", + "scope": "projects", + "id": "listForUser", + "method": "GET", + "url": "/users/{username}/projects", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`.", + "enum": ["open", "closed", "all"], + "name": "state", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List events that a user has received", + "scope": "activity", + "id": "listReceivedEventsForUser", + "method": "GET", + "url": "/users/{username}/received_events", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List public events that a user has received", + "scope": "activity", + "id": "listReceivedPublicEventsForUser", + "method": "GET", + "url": "/users/{username}/received_events/public", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List user repositories", + "scope": "repos", + "id": "listForUser", + "method": "GET", + "url": "/users/{username}/repos", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `all`, `owner`, `member`.", + "enum": ["all", "owner", "member"], + "name": "type", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `created`, `updated`, `pushed`, `full_name`.", + "enum": ["created", "updated", "pushed", "full_name"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc`", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List repositories being starred by a user", + "scope": "activity", + "id": "listReposStarredByUser", + "method": "GET", + "url": "/users/{username}/starred", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "One of `created` (when the repository was starred) or `updated` (when it was last pushed to).", + "enum": ["created", "updated"], + "name": "sort", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "One of `asc` (ascending) or `desc` (descending).", + "enum": ["asc", "desc"], + "name": "direction", + "type": "string", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + }, + { + "name": "List repositories being watched by a user", + "scope": "activity", + "id": "listReposWatchedByUser", + "method": "GET", + "url": "/users/{username}/subscriptions", + "parameters": [ + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "username parameter", + "enum": null, + "name": "username", + "type": "string", + "required": true + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Results per page (max 100)", + "enum": null, + "name": "per_page", + "type": "integer", + "required": false + }, + { + "alias": null, + "allowNull": false, + "deprecated": null, + "description": "Page number of the results to fetch.", + "enum": null, + "name": "page", + "type": "integer", + "required": false + } + ] + } +] diff --git a/node_modules/@octokit/types/scripts/update-endpoints/templates/endpoints.ts.template b/node_modules/@octokit/types/scripts/update-endpoints/templates/endpoints.ts.template new file mode 100644 index 0000000..2eceb2f --- /dev/null +++ b/node_modules/@octokit/types/scripts/update-endpoints/templates/endpoints.ts.template @@ -0,0 +1,33 @@ +// DO NOT EDIT THIS FILE +import { RequestHeaders } from "../RequestHeaders"; +import { RequestRequestOptions } from "../RequestRequestOptions"; +import { Url } from "../Url"; + +export interface Endpoints { + {{#each endpointsByRoute}} + "{{@key}}": [{{union this "optionsTypeName"}}, {{union this "requestOptionsTypeName"}}] + {{/each}} +} + +{{#each options}} +type {{in.name}} = { +{{#each in.parameters}} + {{&jsdoc}} + {{{name this}}}: {{{type this}}} +{{/each}} +} +type {{out.name}} = { + method: "{{out.method}}", + url: Url, + headers: RequestHeaders, + request: RequestRequestOptions +} +{{/each}} + +{{#childParams}} +export type {{paramTypeName}} = { +{{#params}} + {{{name this}}}: {{{type this}}} +{{/params}} +}; +{{/childParams}} \ No newline at end of file diff --git a/node_modules/@octokit/types/scripts/update-endpoints/typescript.js b/node_modules/@octokit/types/scripts/update-endpoints/typescript.js new file mode 100644 index 0000000..2095c6c --- /dev/null +++ b/node_modules/@octokit/types/scripts/update-endpoints/typescript.js @@ -0,0 +1,179 @@ +const { readFileSync, writeFileSync } = require("fs"); +const { resolve } = require("path"); + +const Handlebars = require("handlebars"); +const set = require("lodash.set"); +const pascalCase = require("pascal-case"); +const prettier = require("prettier"); +const { stringToJsdocComment } = require("string-to-jsdoc-comment"); +const sortKeys = require("sort-keys"); + +const ENDPOINTS = require("./generated/Endpoints.json"); +const ENDPOINTS_PATH = resolve( + process.cwd(), + "src", + "generated", + "Endpoints.ts" +); +const ENDPOINTS_TEMPLATE_PATH = resolve( + process.cwd(), + "scripts", + "update-endpoints", + "templates", + "endpoints.ts.template" +); + +Handlebars.registerHelper("union", function(endpoints, key) { + return endpoints.map(endpoint => endpoint[key]).join(" | "); +}); +Handlebars.registerHelper("name", function(parameter) { + let name = parameter.key; + + if (/[.\[]/.test(name)) { + name = `"${name}"`; + } + + if (parameter.required) { + return name; + } + + return `${name}?`; +}); + +Handlebars.registerHelper("type", function(parameter) { + const type = typeMap[parameter.type] || parameter.type; + + if (parameter.allowNull) { + return `${type} | null`; + } + + return type; +}); +const template = Handlebars.compile( + readFileSync(ENDPOINTS_TEMPLATE_PATH, "utf8") +); + +const endpointsByRoute = {}; + +const typeMap = { + integer: "number", + "integer[]": "number[]" +}; + +for (const endpoint of ENDPOINTS) { + const route = `${endpoint.method} ${endpoint.url.replace( + /\{([^}]+)}/g, + ":$1" + )}`; + + if (!endpointsByRoute[route]) { + endpointsByRoute[route] = []; + } + + endpointsByRoute[route].push({ + optionsTypeName: + pascalCase(`${endpoint.scope} ${endpoint.id}`) + "Endpoint", + requestOptionsTypeName: + pascalCase(`${endpoint.scope} ${endpoint.id}`) + "RequestOptions" + }); +} + +const options = []; +const childParams = {}; + +for (const endpoint of ENDPOINTS) { + const { method, parameters } = endpoint; + + const optionsTypeName = + pascalCase(`${endpoint.scope} ${endpoint.id}`) + "Endpoint"; + const requestOptionsTypeName = + pascalCase(`${endpoint.scope} ${endpoint.id}`) + "RequestOptions"; + + options.push({ + in: { + name: optionsTypeName, + parameters: parameters + .map(parameterize) + // handle "object" & "object[]" types + .map(parameter => { + if (parameter.deprecated) { + return; + } + + const namespacedParamsName = pascalCase( + `${endpoint.scope}.${endpoint.id}.Params` + ); + + if (parameter.type === "object" || parameter.type === "object[]") { + const childParamsName = pascalCase( + `${namespacedParamsName}.${parameter.key}` + ); + + parameter.type = parameter.type.replace("object", childParamsName); + + if (!childParams[childParamsName]) { + childParams[childParamsName] = {}; + } + } + + if (!/\./.test(parameter.key)) { + return parameter; + } + + const childKey = parameter.key.split(".").pop(); + const parentKey = parameter.key.replace(/\.[^.]+$/, ""); + + parameter.key = childKey; + + const childParamsName = pascalCase( + `${namespacedParamsName}.${parentKey}` + ); + set(childParams, `${childParamsName}.${childKey}`, parameter); + }) + .filter(Boolean) + }, + out: { + name: requestOptionsTypeName, + method + } + }); +} + +const result = template({ + endpointsByRoute: sortKeys(endpointsByRoute, { deep: true }), + options, + childParams: Object.keys(childParams).map(key => { + if (key === "GistsCreateParamsFiles") { + debugger; + } + return { + paramTypeName: key, + params: Object.values(childParams[key]) + }; + }) +}); + +writeFileSync( + ENDPOINTS_PATH, + prettier.format(result, { parser: "typescript" }) +); +console.log(`${ENDPOINTS_PATH} updated.`); + +function parameterize(parameter) { + const key = parameter.name; + const type = typeMap[parameter.type] || parameter.type; + const enums = parameter.enum + ? parameter.enum.map(JSON.stringify).join("|") + : null; + + return { + name: pascalCase(key), + key: key, + required: parameter.required, + type: enums || type, + alias: parameter.alias, + deprecated: parameter.deprecated, + allowNull: parameter.allowNull, + jsdoc: stringToJsdocComment(parameter.description) + }; +} diff --git a/node_modules/@octokit/types/src/AuthInterface.ts b/node_modules/@octokit/types/src/AuthInterface.ts new file mode 100644 index 0000000..8f58743 --- /dev/null +++ b/node_modules/@octokit/types/src/AuthInterface.ts @@ -0,0 +1,43 @@ +import { EndpointOptions } from "./EndpointOptions"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestInterface } from "./RequestInterface"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; + +/** + * Interface to implement complex authentication strategies for Octokit. + * An object Implementing the AuthInterface can directly be passed as the + * `auth` option in the Octokit constructor. + * + * For the official implementations of the most common authentication + * strategies, see https://github.com/octokit/auth.js + */ +export interface AuthInterface< + AuthOptions extends any[], + Authentication extends any +> { + (...args: AuthOptions): Promise; + + hook: { + /** + * Sends a request using the passed `request` instance + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (request: RequestInterface, options: EndpointOptions): Promise< + OctokitResponse + >; + + /** + * Sends a request using the passed `request` instance + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + ( + request: RequestInterface, + route: Route, + parameters?: RequestParameters + ): Promise>; + }; +} diff --git a/node_modules/@octokit/types/src/EndpointDefaults.ts b/node_modules/@octokit/types/src/EndpointDefaults.ts new file mode 100644 index 0000000..024f6eb --- /dev/null +++ b/node_modules/@octokit/types/src/EndpointDefaults.ts @@ -0,0 +1,22 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestParameters } from "./RequestParameters"; +import { Url } from "./Url"; + +/** + * The `.endpoint()` method is guaranteed to set all keys defined by RequestParameters + * as well as the method property. + */ +export type EndpointDefaults = RequestParameters & { + baseUrl: Url; + method: RequestMethod; + url?: Url; + headers: RequestHeaders & { + accept: string; + "user-agent": string; + }; + mediaType: { + format: string; + previews: string[]; + }; +}; diff --git a/node_modules/@octokit/types/src/EndpointInterface.ts b/node_modules/@octokit/types/src/EndpointInterface.ts new file mode 100644 index 0000000..fee78d6 --- /dev/null +++ b/node_modules/@octokit/types/src/EndpointInterface.ts @@ -0,0 +1,74 @@ +import { EndpointDefaults } from "./EndpointDefaults"; +import { EndpointOptions } from "./EndpointOptions"; +import { RequestOptions } from "./RequestOptions"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; + +import { Endpoints } from "./generated/Endpoints"; + +export interface EndpointInterface { + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: EndpointOptions): RequestOptions; + + /** + * Transforms a GitHub REST API endpoint into generic request options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + ( + route: keyof Endpoints | R, + options?: R extends keyof Endpoints + ? Endpoints[R][0] & RequestParameters + : RequestParameters + ): R extends keyof Endpoints ? Endpoints[R][1] : RequestOptions; + + /** + * Object with current default route and parameters + */ + DEFAULTS: EndpointDefaults; + + /** + * Returns a new `endpoint` with updated route and parameters + */ + defaults: (newDefaults: RequestParameters) => EndpointInterface; + + merge: { + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + * + */ + (route: Route, parameters?: RequestParameters): EndpointDefaults; + + /** + * Merges current endpoint defaults with passed route and parameters, + * without transforming them into request options. + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: RequestParameters): EndpointDefaults; + + /** + * Returns current default options. + * + * @deprecated use endpoint.DEFAULTS instead + */ + (): EndpointDefaults; + }; + + /** + * Stateless method to turn endpoint options into request options. + * Calling `endpoint(options)` is the same as calling `endpoint.parse(endpoint.merge(options))`. + * + * @param {object} options `method`, `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + parse: (options: EndpointDefaults) => RequestOptions; +} diff --git a/node_modules/@octokit/types/src/EndpointOptions.ts b/node_modules/@octokit/types/src/EndpointOptions.ts new file mode 100644 index 0000000..0170604 --- /dev/null +++ b/node_modules/@octokit/types/src/EndpointOptions.ts @@ -0,0 +1,8 @@ +import { RequestMethod } from "./RequestMethod"; +import { Url } from "./Url"; +import { RequestParameters } from "./RequestParameters"; + +export type EndpointOptions = RequestParameters & { + method: RequestMethod; + url: Url; +}; diff --git a/node_modules/@octokit/types/src/Fetch.ts b/node_modules/@octokit/types/src/Fetch.ts new file mode 100644 index 0000000..983c79b --- /dev/null +++ b/node_modules/@octokit/types/src/Fetch.ts @@ -0,0 +1,4 @@ +/** + * Browser's fetch method (or compatible such as fetch-mock) + */ +export type Fetch = any; diff --git a/node_modules/@octokit/types/src/OctokitResponse.ts b/node_modules/@octokit/types/src/OctokitResponse.ts new file mode 100644 index 0000000..4cec20d --- /dev/null +++ b/node_modules/@octokit/types/src/OctokitResponse.ts @@ -0,0 +1,18 @@ +import { ResponseHeaders } from "./ResponseHeaders"; +import { Url } from "./Url"; + +export type OctokitResponse = { + headers: ResponseHeaders; + /** + * http response code + */ + status: number; + /** + * URL of response after all redirects + */ + url: Url; + /** + * This is the data you would see in https://developer.Octokit.com/v3/ + */ + data: T; +}; diff --git a/node_modules/@octokit/types/src/RequestHeaders.ts b/node_modules/@octokit/types/src/RequestHeaders.ts new file mode 100644 index 0000000..0df6636 --- /dev/null +++ b/node_modules/@octokit/types/src/RequestHeaders.ts @@ -0,0 +1,15 @@ +export type RequestHeaders = { + /** + * Avoid setting `headers.accept`, use `mediaType.{format|previews}` option instead. + */ + accept?: string; + /** + * Use `authorization` to send authenticated request, remember `token ` / `bearer ` prefixes. Example: `token 1234567890abcdef1234567890abcdef12345678` + */ + authorization?: string; + /** + * `user-agent` is set do a default and can be overwritten as needed. + */ + "user-agent"?: string; + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/types/src/RequestInterface.ts b/node_modules/@octokit/types/src/RequestInterface.ts new file mode 100644 index 0000000..bc4c74f --- /dev/null +++ b/node_modules/@octokit/types/src/RequestInterface.ts @@ -0,0 +1,34 @@ +import { EndpointInterface } from "./EndpointInterface"; +import { EndpointOptions } from "./EndpointOptions"; +import { OctokitResponse } from "./OctokitResponse"; +import { RequestParameters } from "./RequestParameters"; +import { Route } from "./Route"; + +export interface RequestInterface { + /** + * Sends a request based on endpoint options + * + * @param {object} endpoint Must set `method` and `url`. Plus URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (options: EndpointOptions): Promise>; + + /** + * Sends a request based on endpoint options + * + * @param {string} route Request method + URL. Example: `'GET /orgs/:org'` + * @param {object} [parameters] URL, query or body parameters, as well as `headers`, `mediaType.{format|previews}`, `request`, or `baseUrl`. + */ + (route: Route, parameters?: RequestParameters): Promise< + OctokitResponse + >; + + /** + * Returns a new `endpoint` with updated route and parameters + */ + defaults: (newDefaults: RequestParameters) => RequestInterface; + + /** + * Octokit endpoint API, see {@link https://github.com/octokit/endpoint.js|@octokit/endpoint} + */ + endpoint: EndpointInterface; +} diff --git a/node_modules/@octokit/types/src/RequestMethod.ts b/node_modules/@octokit/types/src/RequestMethod.ts new file mode 100644 index 0000000..2910435 --- /dev/null +++ b/node_modules/@octokit/types/src/RequestMethod.ts @@ -0,0 +1,10 @@ +/** + * HTTP Verb supported by GitHub's REST API + */ +export type RequestMethod = + | "DELETE" + | "GET" + | "HEAD" + | "PATCH" + | "POST" + | "PUT"; diff --git a/node_modules/@octokit/types/src/RequestOptions.ts b/node_modules/@octokit/types/src/RequestOptions.ts new file mode 100644 index 0000000..4d765c0 --- /dev/null +++ b/node_modules/@octokit/types/src/RequestOptions.ts @@ -0,0 +1,15 @@ +import { RequestHeaders } from "./RequestHeaders"; +import { RequestMethod } from "./RequestMethod"; +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { Url } from "./Url"; + +/** + * Generic request options as they are returned by the `endpoint()` method + */ +export type RequestOptions = { + method: RequestMethod; + url: Url; + headers: RequestHeaders; + body?: any; + request?: RequestRequestOptions; +}; diff --git a/node_modules/@octokit/types/src/RequestParameters.ts b/node_modules/@octokit/types/src/RequestParameters.ts new file mode 100644 index 0000000..9766be0 --- /dev/null +++ b/node_modules/@octokit/types/src/RequestParameters.ts @@ -0,0 +1,46 @@ +import { RequestRequestOptions } from "./RequestRequestOptions"; +import { RequestHeaders } from "./RequestHeaders"; +import { Url } from "./Url"; + +/** + * Parameters that can be passed into `request(route, parameters)` or `endpoint(route, parameters)` methods + */ +export type RequestParameters = { + /** + * Base URL to be used when a relative URL is passed, such as `/orgs/:org`. + * If `baseUrl` is `https://enterprise.acme-inc.com/api/v3`, then the request + * will be sent to `https://enterprise.acme-inc.com/api/v3/orgs/:org`. + */ + baseUrl?: Url; + /** + * HTTP headers. Use lowercase keys. + */ + headers?: RequestHeaders; + /** + * Media type options, see {@link https://developer.github.com/v3/media/|GitHub Developer Guide} + */ + mediaType?: { + /** + * `json` by default. Can be `raw`, `text`, `html`, `full`, `diff`, `patch`, `sha`, `base64`. Depending on endpoint + */ + format?: string; + /** + * Custom media type names of {@link https://developer.github.com/v3/media/|API Previews} without the `-preview` suffix. + * Example for single preview: `['squirrel-girl']`. + * Example for multiple previews: `['squirrel-girl', 'mister-fantastic']`. + */ + previews?: string[]; + }; + /** + * Pass custom meta information for the request. The `request` object will be returned as is. + */ + request?: RequestRequestOptions; + /** + * Any additional parameter will be passed as follows + * 1. URL parameter if `':parameter'` or `{parameter}` is part of `url` + * 2. Query parameter if `method` is `'GET'` or `'HEAD'` + * 3. Request body if `parameter` is `'data'` + * 4. JSON in the request body in the form of `body[parameter]` unless `parameter` key is `'data'` + */ + [parameter: string]: any; +}; diff --git a/node_modules/@octokit/types/src/RequestRequestOptions.ts b/node_modules/@octokit/types/src/RequestRequestOptions.ts new file mode 100644 index 0000000..028d6f7 --- /dev/null +++ b/node_modules/@octokit/types/src/RequestRequestOptions.ts @@ -0,0 +1,27 @@ +import { Agent } from "http"; +import { Fetch } from "./Fetch"; +import { Signal } from "./Signal"; + +/** + * Octokit-specific request options which are ignored for the actual request, but can be used by Octokit or plugins to manipulate how the request is sent or how a response is handled + */ +export type RequestRequestOptions = { + /** + * Node only. Useful for custom proxy, certificate, or dns lookup. + */ + agent?: Agent; + /** + * Custom replacement for built-in fetch method. Useful for testing or request hooks. + */ + fetch?: Fetch; + /** + * Use an `AbortController` instance to cancel a request. In node you can only cancel streamed requests. + */ + signal?: Signal; + /** + * Node only. Request/response timeout in ms, it resets on redirect. 0 to disable (OS limit applies). `options.request.signal` is recommended instead. + */ + timeout?: number; + + [option: string]: any; +}; diff --git a/node_modules/@octokit/types/src/ResponseHeaders.ts b/node_modules/@octokit/types/src/ResponseHeaders.ts new file mode 100644 index 0000000..17267b6 --- /dev/null +++ b/node_modules/@octokit/types/src/ResponseHeaders.ts @@ -0,0 +1,21 @@ +export type ResponseHeaders = { + "cache-control"?: string; + "content-length"?: number; + "content-type"?: string; + date?: string; + etag?: string; + "last-modified"?: string; + link?: string; + location?: string; + server?: string; + status?: string; + vary?: string; + "x-github-mediatype"?: string; + "x-github-request-id"?: string; + "x-oauth-scopes"?: string; + "x-ratelimit-limit"?: string; + "x-ratelimit-remaining"?: string; + "x-ratelimit-reset"?: string; + + [header: string]: string | number | undefined; +}; diff --git a/node_modules/@octokit/types/src/Route.ts b/node_modules/@octokit/types/src/Route.ts new file mode 100644 index 0000000..c5229a8 --- /dev/null +++ b/node_modules/@octokit/types/src/Route.ts @@ -0,0 +1,4 @@ +/** + * String consisting of an optional HTTP method and relative path or absolute URL. Examples: `'/orgs/:org'`, `'PUT /orgs/:org'`, `GET https://example.com/foo/bar` + */ +export type Route = string; diff --git a/node_modules/@octokit/types/src/Signal.ts b/node_modules/@octokit/types/src/Signal.ts new file mode 100644 index 0000000..bdf9700 --- /dev/null +++ b/node_modules/@octokit/types/src/Signal.ts @@ -0,0 +1,6 @@ +/** + * Abort signal + * + * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal + */ +export type Signal = any; diff --git a/node_modules/@octokit/types/src/StrategyInterface.ts b/node_modules/@octokit/types/src/StrategyInterface.ts new file mode 100644 index 0000000..60a55ad --- /dev/null +++ b/node_modules/@octokit/types/src/StrategyInterface.ts @@ -0,0 +1,9 @@ +import { AuthInterface } from "./AuthInterface"; + +export interface StrategyInterface< + StrategyOptions extends any[], + AuthOptions extends any[], + Authentication extends object +> { + (...args: StrategyOptions): AuthInterface; +} diff --git a/node_modules/@octokit/types/src/Url.ts b/node_modules/@octokit/types/src/Url.ts new file mode 100644 index 0000000..9d228cb --- /dev/null +++ b/node_modules/@octokit/types/src/Url.ts @@ -0,0 +1,4 @@ +/** + * Relative or absolute URL. Examples: `'/orgs/:org'`, `https://example.com/foo/bar` + */ +export type Url = string; diff --git a/node_modules/@octokit/types/src/VERSION.ts b/node_modules/@octokit/types/src/VERSION.ts new file mode 100644 index 0000000..6c49faf --- /dev/null +++ b/node_modules/@octokit/types/src/VERSION.ts @@ -0,0 +1 @@ +export const VERSION = "2.0.2"; diff --git a/node_modules/@octokit/types/src/generated/Endpoints.ts b/node_modules/@octokit/types/src/generated/Endpoints.ts new file mode 100644 index 0000000..3aec914 --- /dev/null +++ b/node_modules/@octokit/types/src/generated/Endpoints.ts @@ -0,0 +1,14190 @@ +// DO NOT EDIT THIS FILE +import { RequestHeaders } from "../RequestHeaders"; +import { RequestRequestOptions } from "../RequestRequestOptions"; +import { Url } from "../Url"; + +export interface Endpoints { + "DELETE /app/installations/:installation_id": [ + AppsDeleteInstallationEndpoint, + AppsDeleteInstallationRequestOptions + ]; + "DELETE /applications/:client_id/grants/:access_token": [ + OauthAuthorizationsRevokeGrantForApplicationEndpoint, + OauthAuthorizationsRevokeGrantForApplicationRequestOptions + ]; + "DELETE /applications/:client_id/tokens/:access_token": [ + OauthAuthorizationsRevokeAuthorizationForApplicationEndpoint, + OauthAuthorizationsRevokeAuthorizationForApplicationRequestOptions + ]; + "DELETE /applications/grants/:grant_id": [ + OauthAuthorizationsDeleteGrantEndpoint, + OauthAuthorizationsDeleteGrantRequestOptions + ]; + "DELETE /authorizations/:authorization_id": [ + OauthAuthorizationsDeleteAuthorizationEndpoint, + OauthAuthorizationsDeleteAuthorizationRequestOptions + ]; + "DELETE /gists/:gist_id": [GistsDeleteEndpoint, GistsDeleteRequestOptions]; + "DELETE /gists/:gist_id/comments/:comment_id": [ + GistsDeleteCommentEndpoint, + GistsDeleteCommentRequestOptions + ]; + "DELETE /gists/:gist_id/star": [ + GistsUnstarEndpoint, + GistsUnstarRequestOptions + ]; + "DELETE /notifications/threads/:thread_id/subscription": [ + ActivityDeleteThreadSubscriptionEndpoint, + ActivityDeleteThreadSubscriptionRequestOptions + ]; + "DELETE /orgs/:org/blocks/:username": [ + OrgsUnblockUserEndpoint, + OrgsUnblockUserRequestOptions + ]; + "DELETE /orgs/:org/credential-authorizations/:credential_id": [ + OrgsRemoveCredentialAuthorizationEndpoint, + OrgsRemoveCredentialAuthorizationRequestOptions + ]; + "DELETE /orgs/:org/hooks/:hook_id": [ + OrgsDeleteHookEndpoint, + OrgsDeleteHookRequestOptions + ]; + "DELETE /orgs/:org/interaction-limits": [ + InteractionsRemoveRestrictionsForOrgEndpoint, + InteractionsRemoveRestrictionsForOrgRequestOptions + ]; + "DELETE /orgs/:org/members/:username": [ + OrgsRemoveMemberEndpoint, + OrgsRemoveMemberRequestOptions + ]; + "DELETE /orgs/:org/memberships/:username": [ + OrgsRemoveMembershipEndpoint, + OrgsRemoveMembershipRequestOptions + ]; + "DELETE /orgs/:org/migrations/:migration_id/archive": [ + MigrationsDeleteArchiveForOrgEndpoint, + MigrationsDeleteArchiveForOrgRequestOptions + ]; + "DELETE /orgs/:org/migrations/:migration_id/repos/:repo_name/lock": [ + MigrationsUnlockRepoForOrgEndpoint, + MigrationsUnlockRepoForOrgRequestOptions + ]; + "DELETE /orgs/:org/outside_collaborators/:username": [ + OrgsRemoveOutsideCollaboratorEndpoint, + OrgsRemoveOutsideCollaboratorRequestOptions + ]; + "DELETE /orgs/:org/public_members/:username": [ + OrgsConcealMembershipEndpoint, + OrgsConcealMembershipRequestOptions + ]; + "DELETE /projects/:project_id": [ + ProjectsDeleteEndpoint, + ProjectsDeleteRequestOptions + ]; + "DELETE /projects/:project_id/collaborators/:username": [ + ProjectsRemoveCollaboratorEndpoint, + ProjectsRemoveCollaboratorRequestOptions + ]; + "DELETE /projects/columns/:column_id": [ + ProjectsDeleteColumnEndpoint, + ProjectsDeleteColumnRequestOptions + ]; + "DELETE /projects/columns/cards/:card_id": [ + ProjectsDeleteCardEndpoint, + ProjectsDeleteCardRequestOptions + ]; + "DELETE /reactions/:reaction_id": [ + ReactionsDeleteEndpoint, + ReactionsDeleteRequestOptions + ]; + "DELETE /repos/:owner/:repo": [ + ReposDeleteEndpoint, + ReposDeleteRequestOptions + ]; + "DELETE /repos/:owner/:repo/automated-security-fixes": [ + ReposDisableAutomatedSecurityFixesEndpoint, + ReposDisableAutomatedSecurityFixesRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection": [ + ReposRemoveBranchProtectionEndpoint, + ReposRemoveBranchProtectionRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/enforce_admins": [ + ReposRemoveProtectedBranchAdminEnforcementEndpoint, + ReposRemoveProtectedBranchAdminEnforcementRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": [ + ReposRemoveProtectedBranchPullRequestReviewEnforcementEndpoint, + ReposRemoveProtectedBranchPullRequestReviewEnforcementRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_signatures": [ + ReposRemoveProtectedBranchRequiredSignaturesEndpoint, + ReposRemoveProtectedBranchRequiredSignaturesRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks": [ + ReposRemoveProtectedBranchRequiredStatusChecksEndpoint, + ReposRemoveProtectedBranchRequiredStatusChecksRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": [ + ReposRemoveProtectedBranchRequiredStatusChecksContextsEndpoint, + ReposRemoveProtectedBranchRequiredStatusChecksContextsRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions": [ + ReposRemoveProtectedBranchRestrictionsEndpoint, + ReposRemoveProtectedBranchRestrictionsRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": [ + ReposRemoveProtectedBranchAppRestrictionsEndpoint, + ReposRemoveProtectedBranchAppRestrictionsRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": [ + ReposRemoveProtectedBranchTeamRestrictionsEndpoint, + ReposRemoveProtectedBranchTeamRestrictionsRequestOptions + ]; + "DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions/users": [ + ReposRemoveProtectedBranchUserRestrictionsEndpoint, + ReposRemoveProtectedBranchUserRestrictionsRequestOptions + ]; + "DELETE /repos/:owner/:repo/collaborators/:username": [ + ReposRemoveCollaboratorEndpoint, + ReposRemoveCollaboratorRequestOptions + ]; + "DELETE /repos/:owner/:repo/comments/:comment_id": [ + ReposDeleteCommitCommentEndpoint, + ReposDeleteCommitCommentRequestOptions + ]; + "DELETE /repos/:owner/:repo/contents/:path": [ + ReposDeleteFileEndpoint, + ReposDeleteFileRequestOptions + ]; + "DELETE /repos/:owner/:repo/downloads/:download_id": [ + ReposDeleteDownloadEndpoint, + ReposDeleteDownloadRequestOptions + ]; + "DELETE /repos/:owner/:repo/git/refs/:ref": [ + GitDeleteRefEndpoint, + GitDeleteRefRequestOptions + ]; + "DELETE /repos/:owner/:repo/hooks/:hook_id": [ + ReposDeleteHookEndpoint, + ReposDeleteHookRequestOptions + ]; + "DELETE /repos/:owner/:repo/import": [ + MigrationsCancelImportEndpoint, + MigrationsCancelImportRequestOptions + ]; + "DELETE /repos/:owner/:repo/interaction-limits": [ + InteractionsRemoveRestrictionsForRepoEndpoint, + InteractionsRemoveRestrictionsForRepoRequestOptions + ]; + "DELETE /repos/:owner/:repo/invitations/:invitation_id": [ + ReposDeleteInvitationEndpoint, + ReposDeleteInvitationRequestOptions + ]; + "DELETE /repos/:owner/:repo/issues/:issue_number/assignees": [ + IssuesRemoveAssigneesEndpoint, + IssuesRemoveAssigneesRequestOptions + ]; + "DELETE /repos/:owner/:repo/issues/:issue_number/labels": [ + IssuesRemoveLabelsEndpoint, + IssuesRemoveLabelsRequestOptions + ]; + "DELETE /repos/:owner/:repo/issues/:issue_number/labels/:name": [ + IssuesRemoveLabelEndpoint, + IssuesRemoveLabelRequestOptions + ]; + "DELETE /repos/:owner/:repo/issues/:issue_number/lock": [ + IssuesUnlockEndpoint, + IssuesUnlockRequestOptions + ]; + "DELETE /repos/:owner/:repo/issues/comments/:comment_id": [ + IssuesDeleteCommentEndpoint, + IssuesDeleteCommentRequestOptions + ]; + "DELETE /repos/:owner/:repo/keys/:key_id": [ + ReposRemoveDeployKeyEndpoint, + ReposRemoveDeployKeyRequestOptions + ]; + "DELETE /repos/:owner/:repo/labels/:name": [ + IssuesDeleteLabelEndpoint, + IssuesDeleteLabelRequestOptions + ]; + "DELETE /repos/:owner/:repo/milestones/:milestone_number": [ + IssuesDeleteMilestoneEndpoint, + IssuesDeleteMilestoneRequestOptions + ]; + "DELETE /repos/:owner/:repo/pages": [ + ReposDisablePagesSiteEndpoint, + ReposDisablePagesSiteRequestOptions + ]; + "DELETE /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": [ + PullsDeleteReviewRequestEndpoint, + PullsDeleteReviewRequestRequestOptions + ]; + "DELETE /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": [ + PullsDeletePendingReviewEndpoint, + PullsDeletePendingReviewRequestOptions + ]; + "DELETE /repos/:owner/:repo/pulls/comments/:comment_id": [ + PullsDeleteCommentEndpoint, + PullsDeleteCommentRequestOptions + ]; + "DELETE /repos/:owner/:repo/releases/:release_id": [ + ReposDeleteReleaseEndpoint, + ReposDeleteReleaseRequestOptions + ]; + "DELETE /repos/:owner/:repo/releases/assets/:asset_id": [ + ReposDeleteReleaseAssetEndpoint, + ReposDeleteReleaseAssetRequestOptions + ]; + "DELETE /repos/:owner/:repo/subscription": [ + ActivityDeleteRepoSubscriptionEndpoint, + ActivityDeleteRepoSubscriptionRequestOptions + ]; + "DELETE /repos/:owner/:repo/vulnerability-alerts": [ + ReposDisableVulnerabilityAlertsEndpoint, + ReposDisableVulnerabilityAlertsRequestOptions + ]; + "DELETE /scim/v2/organizations/:org/Users/:scim_user_id": [ + ScimRemoveUserFromOrgEndpoint, + ScimRemoveUserFromOrgRequestOptions + ]; + "DELETE /teams/:team_id": [TeamsDeleteEndpoint, TeamsDeleteRequestOptions]; + "DELETE /teams/:team_id/discussions/:discussion_number": [ + TeamsDeleteDiscussionEndpoint, + TeamsDeleteDiscussionRequestOptions + ]; + "DELETE /teams/:team_id/discussions/:discussion_number/comments/:comment_number": [ + TeamsDeleteDiscussionCommentEndpoint, + TeamsDeleteDiscussionCommentRequestOptions + ]; + "DELETE /teams/:team_id/members/:username": [ + TeamsRemoveMemberEndpoint, + TeamsRemoveMemberRequestOptions + ]; + "DELETE /teams/:team_id/memberships/:username": [ + TeamsRemoveMembershipEndpoint, + TeamsRemoveMembershipRequestOptions + ]; + "DELETE /teams/:team_id/projects/:project_id": [ + TeamsRemoveProjectEndpoint, + TeamsRemoveProjectRequestOptions + ]; + "DELETE /teams/:team_id/repos/:owner/:repo": [ + TeamsRemoveRepoEndpoint, + TeamsRemoveRepoRequestOptions + ]; + "DELETE /user/blocks/:username": [ + UsersUnblockEndpoint, + UsersUnblockRequestOptions + ]; + "DELETE /user/emails": [ + UsersDeleteEmailsEndpoint, + UsersDeleteEmailsRequestOptions + ]; + "DELETE /user/following/:username": [ + UsersUnfollowEndpoint, + UsersUnfollowRequestOptions + ]; + "DELETE /user/gpg_keys/:gpg_key_id": [ + UsersDeleteGpgKeyEndpoint, + UsersDeleteGpgKeyRequestOptions + ]; + "DELETE /user/installations/:installation_id/repositories/:repository_id": [ + AppsRemoveRepoFromInstallationEndpoint, + AppsRemoveRepoFromInstallationRequestOptions + ]; + "DELETE /user/keys/:key_id": [ + UsersDeletePublicKeyEndpoint, + UsersDeletePublicKeyRequestOptions + ]; + "DELETE /user/migrations/:migration_id/archive": [ + MigrationsDeleteArchiveForAuthenticatedUserEndpoint, + MigrationsDeleteArchiveForAuthenticatedUserRequestOptions + ]; + "DELETE /user/migrations/:migration_id/repos/:repo_name/lock": [ + MigrationsUnlockRepoForAuthenticatedUserEndpoint, + MigrationsUnlockRepoForAuthenticatedUserRequestOptions + ]; + "DELETE /user/repository_invitations/:invitation_id": [ + ReposDeclineInvitationEndpoint, + ReposDeclineInvitationRequestOptions + ]; + "DELETE /user/starred/:owner/:repo": [ + ActivityUnstarRepoEndpoint, + ActivityUnstarRepoRequestOptions + ]; + "DELETE /user/subscriptions/:owner/:repo": [ + ActivityStopWatchingRepoLegacyEndpoint, + ActivityStopWatchingRepoLegacyRequestOptions + ]; + "GET /app": [ + AppsGetAuthenticatedEndpoint, + AppsGetAuthenticatedRequestOptions + ]; + "GET /app/installations": [ + AppsListInstallationsEndpoint, + AppsListInstallationsRequestOptions + ]; + "GET /app/installations/:installation_id": [ + AppsGetInstallationEndpoint, + AppsGetInstallationRequestOptions + ]; + "GET /applications/:client_id/tokens/:access_token": [ + OauthAuthorizationsCheckAuthorizationEndpoint, + OauthAuthorizationsCheckAuthorizationRequestOptions + ]; + "GET /applications/grants": [ + OauthAuthorizationsListGrantsEndpoint, + OauthAuthorizationsListGrantsRequestOptions + ]; + "GET /applications/grants/:grant_id": [ + OauthAuthorizationsGetGrantEndpoint, + OauthAuthorizationsGetGrantRequestOptions + ]; + "GET /apps/:app_slug": [AppsGetBySlugEndpoint, AppsGetBySlugRequestOptions]; + "GET /authorizations": [ + OauthAuthorizationsListAuthorizationsEndpoint, + OauthAuthorizationsListAuthorizationsRequestOptions + ]; + "GET /authorizations/:authorization_id": [ + OauthAuthorizationsGetAuthorizationEndpoint, + OauthAuthorizationsGetAuthorizationRequestOptions + ]; + "GET /codes_of_conduct": [ + CodesOfConductListConductCodesEndpoint, + CodesOfConductListConductCodesRequestOptions + ]; + "GET /codes_of_conduct/:key": [ + CodesOfConductGetConductCodeEndpoint, + CodesOfConductGetConductCodeRequestOptions + ]; + "GET /emojis": [EmojisGetEndpoint, EmojisGetRequestOptions]; + "GET /events": [ + ActivityListPublicEventsEndpoint, + ActivityListPublicEventsRequestOptions + ]; + "GET /feeds": [ActivityListFeedsEndpoint, ActivityListFeedsRequestOptions]; + "GET /gists": [GistsListEndpoint, GistsListRequestOptions]; + "GET /gists/:gist_id": [GistsGetEndpoint, GistsGetRequestOptions]; + "GET /gists/:gist_id/:sha": [ + GistsGetRevisionEndpoint, + GistsGetRevisionRequestOptions + ]; + "GET /gists/:gist_id/comments": [ + GistsListCommentsEndpoint, + GistsListCommentsRequestOptions + ]; + "GET /gists/:gist_id/comments/:comment_id": [ + GistsGetCommentEndpoint, + GistsGetCommentRequestOptions + ]; + "GET /gists/:gist_id/commits": [ + GistsListCommitsEndpoint, + GistsListCommitsRequestOptions + ]; + "GET /gists/:gist_id/forks": [ + GistsListForksEndpoint, + GistsListForksRequestOptions + ]; + "GET /gists/:gist_id/star": [ + GistsCheckIsStarredEndpoint, + GistsCheckIsStarredRequestOptions + ]; + "GET /gists/public": [GistsListPublicEndpoint, GistsListPublicRequestOptions]; + "GET /gists/starred": [ + GistsListStarredEndpoint, + GistsListStarredRequestOptions + ]; + "GET /gitignore/templates": [ + GitignoreListTemplatesEndpoint, + GitignoreListTemplatesRequestOptions + ]; + "GET /gitignore/templates/:name": [ + GitignoreGetTemplateEndpoint, + GitignoreGetTemplateRequestOptions + ]; + "GET /installation/repositories": [ + AppsListReposEndpoint, + AppsListReposRequestOptions + ]; + "GET /issues": [IssuesListEndpoint, IssuesListRequestOptions]; + "GET /legacy/issues/search/:owner/:repository/:state/:keyword": [ + SearchIssuesLegacyEndpoint, + SearchIssuesLegacyRequestOptions + ]; + "GET /legacy/repos/search/:keyword": [ + SearchReposLegacyEndpoint, + SearchReposLegacyRequestOptions + ]; + "GET /legacy/user/email/:email": [ + SearchEmailLegacyEndpoint, + SearchEmailLegacyRequestOptions + ]; + "GET /legacy/user/search/:keyword": [ + SearchUsersLegacyEndpoint, + SearchUsersLegacyRequestOptions + ]; + "GET /licenses": [ + LicensesListCommonlyUsedEndpoint | LicensesListEndpoint, + LicensesListCommonlyUsedRequestOptions | LicensesListRequestOptions + ]; + "GET /licenses/:license": [LicensesGetEndpoint, LicensesGetRequestOptions]; + "GET /marketplace_listing/accounts/:account_id": [ + AppsCheckAccountIsAssociatedWithAnyEndpoint, + AppsCheckAccountIsAssociatedWithAnyRequestOptions + ]; + "GET /marketplace_listing/plans": [ + AppsListPlansEndpoint, + AppsListPlansRequestOptions + ]; + "GET /marketplace_listing/plans/:plan_id/accounts": [ + AppsListAccountsUserOrOrgOnPlanEndpoint, + AppsListAccountsUserOrOrgOnPlanRequestOptions + ]; + "GET /marketplace_listing/stubbed/accounts/:account_id": [ + AppsCheckAccountIsAssociatedWithAnyStubbedEndpoint, + AppsCheckAccountIsAssociatedWithAnyStubbedRequestOptions + ]; + "GET /marketplace_listing/stubbed/plans": [ + AppsListPlansStubbedEndpoint, + AppsListPlansStubbedRequestOptions + ]; + "GET /marketplace_listing/stubbed/plans/:plan_id/accounts": [ + AppsListAccountsUserOrOrgOnPlanStubbedEndpoint, + AppsListAccountsUserOrOrgOnPlanStubbedRequestOptions + ]; + "GET /meta": [MetaGetEndpoint, MetaGetRequestOptions]; + "GET /networks/:owner/:repo/events": [ + ActivityListPublicEventsForRepoNetworkEndpoint, + ActivityListPublicEventsForRepoNetworkRequestOptions + ]; + "GET /notifications": [ + ActivityListNotificationsEndpoint, + ActivityListNotificationsRequestOptions + ]; + "GET /notifications/threads/:thread_id": [ + ActivityGetThreadEndpoint, + ActivityGetThreadRequestOptions + ]; + "GET /notifications/threads/:thread_id/subscription": [ + ActivityGetThreadSubscriptionEndpoint, + ActivityGetThreadSubscriptionRequestOptions + ]; + "GET /organizations": [OrgsListEndpoint, OrgsListRequestOptions]; + "GET /orgs/:org": [OrgsGetEndpoint, OrgsGetRequestOptions]; + "GET /orgs/:org/blocks": [ + OrgsListBlockedUsersEndpoint, + OrgsListBlockedUsersRequestOptions + ]; + "GET /orgs/:org/blocks/:username": [ + OrgsCheckBlockedUserEndpoint, + OrgsCheckBlockedUserRequestOptions + ]; + "GET /orgs/:org/credential-authorizations": [ + OrgsListCredentialAuthorizationsEndpoint, + OrgsListCredentialAuthorizationsRequestOptions + ]; + "GET /orgs/:org/events": [ + ActivityListPublicEventsForOrgEndpoint, + ActivityListPublicEventsForOrgRequestOptions + ]; + "GET /orgs/:org/hooks": [OrgsListHooksEndpoint, OrgsListHooksRequestOptions]; + "GET /orgs/:org/hooks/:hook_id": [ + OrgsGetHookEndpoint, + OrgsGetHookRequestOptions + ]; + "GET /orgs/:org/installation": [ + AppsGetOrgInstallationEndpoint | AppsFindOrgInstallationEndpoint, + AppsGetOrgInstallationRequestOptions | AppsFindOrgInstallationRequestOptions + ]; + "GET /orgs/:org/interaction-limits": [ + InteractionsGetRestrictionsForOrgEndpoint, + InteractionsGetRestrictionsForOrgRequestOptions + ]; + "GET /orgs/:org/invitations": [ + OrgsListPendingInvitationsEndpoint, + OrgsListPendingInvitationsRequestOptions + ]; + "GET /orgs/:org/invitations/:invitation_id/teams": [ + OrgsListInvitationTeamsEndpoint, + OrgsListInvitationTeamsRequestOptions + ]; + "GET /orgs/:org/issues": [ + IssuesListForOrgEndpoint, + IssuesListForOrgRequestOptions + ]; + "GET /orgs/:org/members": [ + OrgsListMembersEndpoint, + OrgsListMembersRequestOptions + ]; + "GET /orgs/:org/members/:username": [ + OrgsCheckMembershipEndpoint, + OrgsCheckMembershipRequestOptions + ]; + "GET /orgs/:org/memberships/:username": [ + OrgsGetMembershipEndpoint, + OrgsGetMembershipRequestOptions + ]; + "GET /orgs/:org/migrations": [ + MigrationsListForOrgEndpoint, + MigrationsListForOrgRequestOptions + ]; + "GET /orgs/:org/migrations/:migration_id": [ + MigrationsGetStatusForOrgEndpoint, + MigrationsGetStatusForOrgRequestOptions + ]; + "GET /orgs/:org/migrations/:migration_id/archive": [ + MigrationsGetArchiveForOrgEndpoint, + MigrationsGetArchiveForOrgRequestOptions + ]; + "GET /orgs/:org/outside_collaborators": [ + OrgsListOutsideCollaboratorsEndpoint, + OrgsListOutsideCollaboratorsRequestOptions + ]; + "GET /orgs/:org/projects": [ + ProjectsListForOrgEndpoint, + ProjectsListForOrgRequestOptions + ]; + "GET /orgs/:org/public_members": [ + OrgsListPublicMembersEndpoint, + OrgsListPublicMembersRequestOptions + ]; + "GET /orgs/:org/public_members/:username": [ + OrgsCheckPublicMembershipEndpoint, + OrgsCheckPublicMembershipRequestOptions + ]; + "GET /orgs/:org/repos": [ + ReposListForOrgEndpoint, + ReposListForOrgRequestOptions + ]; + "GET /orgs/:org/team-sync/groups": [ + TeamsListIdPGroupsForOrgEndpoint, + TeamsListIdPGroupsForOrgRequestOptions + ]; + "GET /orgs/:org/teams": [TeamsListEndpoint, TeamsListRequestOptions]; + "GET /orgs/:org/teams/:team_slug": [ + TeamsGetByNameEndpoint, + TeamsGetByNameRequestOptions + ]; + "GET /projects/:project_id": [ProjectsGetEndpoint, ProjectsGetRequestOptions]; + "GET /projects/:project_id/collaborators": [ + ProjectsListCollaboratorsEndpoint, + ProjectsListCollaboratorsRequestOptions + ]; + "GET /projects/:project_id/collaborators/:username/permission": [ + ProjectsReviewUserPermissionLevelEndpoint, + ProjectsReviewUserPermissionLevelRequestOptions + ]; + "GET /projects/:project_id/columns": [ + ProjectsListColumnsEndpoint, + ProjectsListColumnsRequestOptions + ]; + "GET /projects/columns/:column_id": [ + ProjectsGetColumnEndpoint, + ProjectsGetColumnRequestOptions + ]; + "GET /projects/columns/:column_id/cards": [ + ProjectsListCardsEndpoint, + ProjectsListCardsRequestOptions + ]; + "GET /projects/columns/cards/:card_id": [ + ProjectsGetCardEndpoint, + ProjectsGetCardRequestOptions + ]; + "GET /rate_limit": [RateLimitGetEndpoint, RateLimitGetRequestOptions]; + "GET /repos/:owner/:repo": [ReposGetEndpoint, ReposGetRequestOptions]; + "GET /repos/:owner/:repo/:archive_format/:ref": [ + ReposGetArchiveLinkEndpoint, + ReposGetArchiveLinkRequestOptions + ]; + "GET /repos/:owner/:repo/assignees": [ + IssuesListAssigneesEndpoint, + IssuesListAssigneesRequestOptions + ]; + "GET /repos/:owner/:repo/assignees/:assignee": [ + IssuesCheckAssigneeEndpoint, + IssuesCheckAssigneeRequestOptions + ]; + "GET /repos/:owner/:repo/branches": [ + ReposListBranchesEndpoint, + ReposListBranchesRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch": [ + ReposGetBranchEndpoint, + ReposGetBranchRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection": [ + ReposGetBranchProtectionEndpoint, + ReposGetBranchProtectionRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/enforce_admins": [ + ReposGetProtectedBranchAdminEnforcementEndpoint, + ReposGetProtectedBranchAdminEnforcementRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": [ + ReposGetProtectedBranchPullRequestReviewEnforcementEndpoint, + ReposGetProtectedBranchPullRequestReviewEnforcementRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/required_signatures": [ + ReposGetProtectedBranchRequiredSignaturesEndpoint, + ReposGetProtectedBranchRequiredSignaturesRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks": [ + ReposGetProtectedBranchRequiredStatusChecksEndpoint, + ReposGetProtectedBranchRequiredStatusChecksRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": [ + ReposListProtectedBranchRequiredStatusChecksContextsEndpoint, + ReposListProtectedBranchRequiredStatusChecksContextsRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions": [ + ReposGetProtectedBranchRestrictionsEndpoint, + ReposGetProtectedBranchRestrictionsRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": [ + + | ReposGetAppsWithAccessToProtectedBranchEndpoint + | ReposListAppsWithAccessToProtectedBranchEndpoint, + + | ReposGetAppsWithAccessToProtectedBranchRequestOptions + | ReposListAppsWithAccessToProtectedBranchRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": [ + + | ReposGetTeamsWithAccessToProtectedBranchEndpoint + | ReposListProtectedBranchTeamRestrictionsEndpoint + | ReposListTeamsWithAccessToProtectedBranchEndpoint, + + | ReposGetTeamsWithAccessToProtectedBranchRequestOptions + | ReposListProtectedBranchTeamRestrictionsRequestOptions + | ReposListTeamsWithAccessToProtectedBranchRequestOptions + ]; + "GET /repos/:owner/:repo/branches/:branch/protection/restrictions/users": [ + + | ReposGetUsersWithAccessToProtectedBranchEndpoint + | ReposListProtectedBranchUserRestrictionsEndpoint + | ReposListUsersWithAccessToProtectedBranchEndpoint, + + | ReposGetUsersWithAccessToProtectedBranchRequestOptions + | ReposListProtectedBranchUserRestrictionsRequestOptions + | ReposListUsersWithAccessToProtectedBranchRequestOptions + ]; + "GET /repos/:owner/:repo/check-runs/:check_run_id": [ + ChecksGetEndpoint, + ChecksGetRequestOptions + ]; + "GET /repos/:owner/:repo/check-runs/:check_run_id/annotations": [ + ChecksListAnnotationsEndpoint, + ChecksListAnnotationsRequestOptions + ]; + "GET /repos/:owner/:repo/check-suites/:check_suite_id": [ + ChecksGetSuiteEndpoint, + ChecksGetSuiteRequestOptions + ]; + "GET /repos/:owner/:repo/check-suites/:check_suite_id/check-runs": [ + ChecksListForSuiteEndpoint, + ChecksListForSuiteRequestOptions + ]; + "GET /repos/:owner/:repo/collaborators": [ + ReposListCollaboratorsEndpoint, + ReposListCollaboratorsRequestOptions + ]; + "GET /repos/:owner/:repo/collaborators/:username": [ + ReposCheckCollaboratorEndpoint, + ReposCheckCollaboratorRequestOptions + ]; + "GET /repos/:owner/:repo/collaborators/:username/permission": [ + ReposGetCollaboratorPermissionLevelEndpoint, + ReposGetCollaboratorPermissionLevelRequestOptions + ]; + "GET /repos/:owner/:repo/comments": [ + ReposListCommitCommentsEndpoint, + ReposListCommitCommentsRequestOptions + ]; + "GET /repos/:owner/:repo/comments/:comment_id": [ + ReposGetCommitCommentEndpoint, + ReposGetCommitCommentRequestOptions + ]; + "GET /repos/:owner/:repo/comments/:comment_id/reactions": [ + ReactionsListForCommitCommentEndpoint, + ReactionsListForCommitCommentRequestOptions + ]; + "GET /repos/:owner/:repo/commits": [ + ReposListCommitsEndpoint, + ReposListCommitsRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:commit_sha/branches-where-head": [ + ReposListBranchesForHeadCommitEndpoint, + ReposListBranchesForHeadCommitRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:commit_sha/comments": [ + ReposListCommentsForCommitEndpoint, + ReposListCommentsForCommitRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:commit_sha/pulls": [ + ReposListPullRequestsAssociatedWithCommitEndpoint, + ReposListPullRequestsAssociatedWithCommitRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:ref": [ + ReposGetCommitEndpoint, + ReposGetCommitRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:ref/check-runs": [ + ChecksListForRefEndpoint, + ChecksListForRefRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:ref/check-suites": [ + ChecksListSuitesForRefEndpoint, + ChecksListSuitesForRefRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:ref/status": [ + ReposGetCombinedStatusForRefEndpoint, + ReposGetCombinedStatusForRefRequestOptions + ]; + "GET /repos/:owner/:repo/commits/:ref/statuses": [ + ReposListStatusesForRefEndpoint, + ReposListStatusesForRefRequestOptions + ]; + "GET /repos/:owner/:repo/community/code_of_conduct": [ + CodesOfConductGetForRepoEndpoint, + CodesOfConductGetForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/community/profile": [ + ReposRetrieveCommunityProfileMetricsEndpoint, + ReposRetrieveCommunityProfileMetricsRequestOptions + ]; + "GET /repos/:owner/:repo/compare/:base...:head": [ + ReposCompareCommitsEndpoint, + ReposCompareCommitsRequestOptions + ]; + "GET /repos/:owner/:repo/contents/:path": [ + ReposGetContentsEndpoint, + ReposGetContentsRequestOptions + ]; + "GET /repos/:owner/:repo/contributors": [ + ReposListContributorsEndpoint, + ReposListContributorsRequestOptions + ]; + "GET /repos/:owner/:repo/deployments": [ + ReposListDeploymentsEndpoint, + ReposListDeploymentsRequestOptions + ]; + "GET /repos/:owner/:repo/deployments/:deployment_id": [ + ReposGetDeploymentEndpoint, + ReposGetDeploymentRequestOptions + ]; + "GET /repos/:owner/:repo/deployments/:deployment_id/statuses": [ + ReposListDeploymentStatusesEndpoint, + ReposListDeploymentStatusesRequestOptions + ]; + "GET /repos/:owner/:repo/deployments/:deployment_id/statuses/:status_id": [ + ReposGetDeploymentStatusEndpoint, + ReposGetDeploymentStatusRequestOptions + ]; + "GET /repos/:owner/:repo/downloads": [ + ReposListDownloadsEndpoint, + ReposListDownloadsRequestOptions + ]; + "GET /repos/:owner/:repo/downloads/:download_id": [ + ReposGetDownloadEndpoint, + ReposGetDownloadRequestOptions + ]; + "GET /repos/:owner/:repo/events": [ + ActivityListRepoEventsEndpoint, + ActivityListRepoEventsRequestOptions + ]; + "GET /repos/:owner/:repo/forks": [ + ReposListForksEndpoint, + ReposListForksRequestOptions + ]; + "GET /repos/:owner/:repo/git/blobs/:file_sha": [ + GitGetBlobEndpoint, + GitGetBlobRequestOptions + ]; + "GET /repos/:owner/:repo/git/commits/:commit_sha": [ + GitGetCommitEndpoint, + GitGetCommitRequestOptions + ]; + "GET /repos/:owner/:repo/git/matching-refs/:ref": [ + GitListMatchingRefsEndpoint, + GitListMatchingRefsRequestOptions + ]; + "GET /repos/:owner/:repo/git/ref/:ref": [ + GitGetRefEndpoint, + GitGetRefRequestOptions + ]; + "GET /repos/:owner/:repo/git/tags/:tag_sha": [ + GitGetTagEndpoint, + GitGetTagRequestOptions + ]; + "GET /repos/:owner/:repo/git/trees/:tree_sha": [ + GitGetTreeEndpoint, + GitGetTreeRequestOptions + ]; + "GET /repos/:owner/:repo/hooks": [ + ReposListHooksEndpoint, + ReposListHooksRequestOptions + ]; + "GET /repos/:owner/:repo/hooks/:hook_id": [ + ReposGetHookEndpoint, + ReposGetHookRequestOptions + ]; + "GET /repos/:owner/:repo/import": [ + MigrationsGetImportProgressEndpoint, + MigrationsGetImportProgressRequestOptions + ]; + "GET /repos/:owner/:repo/import/authors": [ + MigrationsGetCommitAuthorsEndpoint, + MigrationsGetCommitAuthorsRequestOptions + ]; + "GET /repos/:owner/:repo/import/large_files": [ + MigrationsGetLargeFilesEndpoint, + MigrationsGetLargeFilesRequestOptions + ]; + "GET /repos/:owner/:repo/installation": [ + AppsGetRepoInstallationEndpoint | AppsFindRepoInstallationEndpoint, + + | AppsGetRepoInstallationRequestOptions + | AppsFindRepoInstallationRequestOptions + ]; + "GET /repos/:owner/:repo/interaction-limits": [ + InteractionsGetRestrictionsForRepoEndpoint, + InteractionsGetRestrictionsForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/invitations": [ + ReposListInvitationsEndpoint, + ReposListInvitationsRequestOptions + ]; + "GET /repos/:owner/:repo/issues": [ + IssuesListForRepoEndpoint, + IssuesListForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/issues/:issue_number": [ + IssuesGetEndpoint, + IssuesGetRequestOptions + ]; + "GET /repos/:owner/:repo/issues/:issue_number/comments": [ + IssuesListCommentsEndpoint, + IssuesListCommentsRequestOptions + ]; + "GET /repos/:owner/:repo/issues/:issue_number/events": [ + IssuesListEventsEndpoint, + IssuesListEventsRequestOptions + ]; + "GET /repos/:owner/:repo/issues/:issue_number/labels": [ + IssuesListLabelsOnIssueEndpoint, + IssuesListLabelsOnIssueRequestOptions + ]; + "GET /repos/:owner/:repo/issues/:issue_number/reactions": [ + ReactionsListForIssueEndpoint, + ReactionsListForIssueRequestOptions + ]; + "GET /repos/:owner/:repo/issues/:issue_number/timeline": [ + IssuesListEventsForTimelineEndpoint, + IssuesListEventsForTimelineRequestOptions + ]; + "GET /repos/:owner/:repo/issues/comments": [ + IssuesListCommentsForRepoEndpoint, + IssuesListCommentsForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/issues/comments/:comment_id": [ + IssuesGetCommentEndpoint, + IssuesGetCommentRequestOptions + ]; + "GET /repos/:owner/:repo/issues/comments/:comment_id/reactions": [ + ReactionsListForIssueCommentEndpoint, + ReactionsListForIssueCommentRequestOptions + ]; + "GET /repos/:owner/:repo/issues/events": [ + IssuesListEventsForRepoEndpoint, + IssuesListEventsForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/issues/events/:event_id": [ + IssuesGetEventEndpoint, + IssuesGetEventRequestOptions + ]; + "GET /repos/:owner/:repo/keys": [ + ReposListDeployKeysEndpoint, + ReposListDeployKeysRequestOptions + ]; + "GET /repos/:owner/:repo/keys/:key_id": [ + ReposGetDeployKeyEndpoint, + ReposGetDeployKeyRequestOptions + ]; + "GET /repos/:owner/:repo/labels": [ + IssuesListLabelsForRepoEndpoint, + IssuesListLabelsForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/labels/:name": [ + IssuesGetLabelEndpoint, + IssuesGetLabelRequestOptions + ]; + "GET /repos/:owner/:repo/languages": [ + ReposListLanguagesEndpoint, + ReposListLanguagesRequestOptions + ]; + "GET /repos/:owner/:repo/license": [ + LicensesGetForRepoEndpoint, + LicensesGetForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/milestones": [ + IssuesListMilestonesForRepoEndpoint, + IssuesListMilestonesForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/milestones/:milestone_number": [ + IssuesGetMilestoneEndpoint, + IssuesGetMilestoneRequestOptions + ]; + "GET /repos/:owner/:repo/milestones/:milestone_number/labels": [ + IssuesListLabelsForMilestoneEndpoint, + IssuesListLabelsForMilestoneRequestOptions + ]; + "GET /repos/:owner/:repo/notifications": [ + ActivityListNotificationsForRepoEndpoint, + ActivityListNotificationsForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/pages": [ + ReposGetPagesEndpoint, + ReposGetPagesRequestOptions + ]; + "GET /repos/:owner/:repo/pages/builds": [ + ReposListPagesBuildsEndpoint, + ReposListPagesBuildsRequestOptions + ]; + "GET /repos/:owner/:repo/pages/builds/:build_id": [ + ReposGetPagesBuildEndpoint, + ReposGetPagesBuildRequestOptions + ]; + "GET /repos/:owner/:repo/pages/builds/latest": [ + ReposGetLatestPagesBuildEndpoint, + ReposGetLatestPagesBuildRequestOptions + ]; + "GET /repos/:owner/:repo/projects": [ + ProjectsListForRepoEndpoint, + ProjectsListForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/pulls": [PullsListEndpoint, PullsListRequestOptions]; + "GET /repos/:owner/:repo/pulls/:pull_number": [ + PullsGetEndpoint, + PullsGetRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/comments": [ + PullsListCommentsEndpoint, + PullsListCommentsRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/commits": [ + PullsListCommitsEndpoint, + PullsListCommitsRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/files": [ + PullsListFilesEndpoint, + PullsListFilesRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/merge": [ + PullsCheckIfMergedEndpoint, + PullsCheckIfMergedRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": [ + PullsListReviewRequestsEndpoint, + PullsListReviewRequestsRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/reviews": [ + PullsListReviewsEndpoint, + PullsListReviewsRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": [ + PullsGetReviewEndpoint, + PullsGetReviewRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/comments": [ + PullsGetCommentsForReviewEndpoint, + PullsGetCommentsForReviewRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/comments": [ + PullsListCommentsForRepoEndpoint, + PullsListCommentsForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/comments/:comment_id": [ + PullsGetCommentEndpoint, + PullsGetCommentRequestOptions + ]; + "GET /repos/:owner/:repo/pulls/comments/:comment_id/reactions": [ + ReactionsListForPullRequestReviewCommentEndpoint, + ReactionsListForPullRequestReviewCommentRequestOptions + ]; + "GET /repos/:owner/:repo/readme": [ + ReposGetReadmeEndpoint, + ReposGetReadmeRequestOptions + ]; + "GET /repos/:owner/:repo/releases": [ + ReposListReleasesEndpoint, + ReposListReleasesRequestOptions + ]; + "GET /repos/:owner/:repo/releases/:release_id": [ + ReposGetReleaseEndpoint, + ReposGetReleaseRequestOptions + ]; + "GET /repos/:owner/:repo/releases/:release_id/assets": [ + ReposListAssetsForReleaseEndpoint, + ReposListAssetsForReleaseRequestOptions + ]; + "GET /repos/:owner/:repo/releases/assets/:asset_id": [ + ReposGetReleaseAssetEndpoint, + ReposGetReleaseAssetRequestOptions + ]; + "GET /repos/:owner/:repo/releases/latest": [ + ReposGetLatestReleaseEndpoint, + ReposGetLatestReleaseRequestOptions + ]; + "GET /repos/:owner/:repo/releases/tags/:tag": [ + ReposGetReleaseByTagEndpoint, + ReposGetReleaseByTagRequestOptions + ]; + "GET /repos/:owner/:repo/stargazers": [ + ActivityListStargazersForRepoEndpoint, + ActivityListStargazersForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/stats/code_frequency": [ + ReposGetCodeFrequencyStatsEndpoint, + ReposGetCodeFrequencyStatsRequestOptions + ]; + "GET /repos/:owner/:repo/stats/commit_activity": [ + ReposGetCommitActivityStatsEndpoint, + ReposGetCommitActivityStatsRequestOptions + ]; + "GET /repos/:owner/:repo/stats/contributors": [ + ReposGetContributorsStatsEndpoint, + ReposGetContributorsStatsRequestOptions + ]; + "GET /repos/:owner/:repo/stats/participation": [ + ReposGetParticipationStatsEndpoint, + ReposGetParticipationStatsRequestOptions + ]; + "GET /repos/:owner/:repo/stats/punch_card": [ + ReposGetPunchCardStatsEndpoint, + ReposGetPunchCardStatsRequestOptions + ]; + "GET /repos/:owner/:repo/subscribers": [ + ActivityListWatchersForRepoEndpoint, + ActivityListWatchersForRepoRequestOptions + ]; + "GET /repos/:owner/:repo/subscription": [ + ActivityGetRepoSubscriptionEndpoint, + ActivityGetRepoSubscriptionRequestOptions + ]; + "GET /repos/:owner/:repo/tags": [ + ReposListTagsEndpoint, + ReposListTagsRequestOptions + ]; + "GET /repos/:owner/:repo/teams": [ + ReposListTeamsEndpoint, + ReposListTeamsRequestOptions + ]; + "GET /repos/:owner/:repo/topics": [ + ReposListTopicsEndpoint, + ReposListTopicsRequestOptions + ]; + "GET /repos/:owner/:repo/traffic/clones": [ + ReposGetClonesEndpoint, + ReposGetClonesRequestOptions + ]; + "GET /repos/:owner/:repo/traffic/popular/paths": [ + ReposGetTopPathsEndpoint, + ReposGetTopPathsRequestOptions + ]; + "GET /repos/:owner/:repo/traffic/popular/referrers": [ + ReposGetTopReferrersEndpoint, + ReposGetTopReferrersRequestOptions + ]; + "GET /repos/:owner/:repo/traffic/views": [ + ReposGetViewsEndpoint, + ReposGetViewsRequestOptions + ]; + "GET /repos/:owner/:repo/vulnerability-alerts": [ + ReposCheckVulnerabilityAlertsEndpoint, + ReposCheckVulnerabilityAlertsRequestOptions + ]; + "GET /repositories": [ReposListPublicEndpoint, ReposListPublicRequestOptions]; + "GET /scim/v2/organizations/:org/Users": [ + ScimListProvisionedIdentitiesEndpoint, + ScimListProvisionedIdentitiesRequestOptions + ]; + "GET /scim/v2/organizations/:org/Users/:scim_user_id": [ + ScimGetProvisioningDetailsForUserEndpoint, + ScimGetProvisioningDetailsForUserRequestOptions + ]; + "GET /search/code": [SearchCodeEndpoint, SearchCodeRequestOptions]; + "GET /search/commits": [SearchCommitsEndpoint, SearchCommitsRequestOptions]; + "GET /search/issues": [ + SearchIssuesAndPullRequestsEndpoint | SearchIssuesEndpoint, + SearchIssuesAndPullRequestsRequestOptions | SearchIssuesRequestOptions + ]; + "GET /search/labels": [SearchLabelsEndpoint, SearchLabelsRequestOptions]; + "GET /search/repositories": [SearchReposEndpoint, SearchReposRequestOptions]; + "GET /search/topics": [SearchTopicsEndpoint, SearchTopicsRequestOptions]; + "GET /search/users": [SearchUsersEndpoint, SearchUsersRequestOptions]; + "GET /teams/:team_id": [TeamsGetEndpoint, TeamsGetRequestOptions]; + "GET /teams/:team_id/discussions": [ + TeamsListDiscussionsEndpoint, + TeamsListDiscussionsRequestOptions + ]; + "GET /teams/:team_id/discussions/:discussion_number": [ + TeamsGetDiscussionEndpoint, + TeamsGetDiscussionRequestOptions + ]; + "GET /teams/:team_id/discussions/:discussion_number/comments": [ + TeamsListDiscussionCommentsEndpoint, + TeamsListDiscussionCommentsRequestOptions + ]; + "GET /teams/:team_id/discussions/:discussion_number/comments/:comment_number": [ + TeamsGetDiscussionCommentEndpoint, + TeamsGetDiscussionCommentRequestOptions + ]; + "GET /teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions": [ + ReactionsListForTeamDiscussionCommentEndpoint, + ReactionsListForTeamDiscussionCommentRequestOptions + ]; + "GET /teams/:team_id/discussions/:discussion_number/reactions": [ + ReactionsListForTeamDiscussionEndpoint, + ReactionsListForTeamDiscussionRequestOptions + ]; + "GET /teams/:team_id/invitations": [ + TeamsListPendingInvitationsEndpoint, + TeamsListPendingInvitationsRequestOptions + ]; + "GET /teams/:team_id/members": [ + TeamsListMembersEndpoint, + TeamsListMembersRequestOptions + ]; + "GET /teams/:team_id/members/:username": [ + TeamsGetMemberEndpoint, + TeamsGetMemberRequestOptions + ]; + "GET /teams/:team_id/memberships/:username": [ + TeamsGetMembershipEndpoint, + TeamsGetMembershipRequestOptions + ]; + "GET /teams/:team_id/projects": [ + TeamsListProjectsEndpoint, + TeamsListProjectsRequestOptions + ]; + "GET /teams/:team_id/projects/:project_id": [ + TeamsReviewProjectEndpoint, + TeamsReviewProjectRequestOptions + ]; + "GET /teams/:team_id/repos": [ + TeamsListReposEndpoint, + TeamsListReposRequestOptions + ]; + "GET /teams/:team_id/repos/:owner/:repo": [ + TeamsCheckManagesRepoEndpoint, + TeamsCheckManagesRepoRequestOptions + ]; + "GET /teams/:team_id/team-sync/group-mappings": [ + TeamsListIdPGroupsEndpoint, + TeamsListIdPGroupsRequestOptions + ]; + "GET /teams/:team_id/teams": [ + TeamsListChildEndpoint, + TeamsListChildRequestOptions + ]; + "GET /user": [ + UsersGetAuthenticatedEndpoint, + UsersGetAuthenticatedRequestOptions + ]; + "GET /user/blocks": [ + UsersListBlockedEndpoint, + UsersListBlockedRequestOptions + ]; + "GET /user/blocks/:username": [ + UsersCheckBlockedEndpoint, + UsersCheckBlockedRequestOptions + ]; + "GET /user/emails": [UsersListEmailsEndpoint, UsersListEmailsRequestOptions]; + "GET /user/followers": [ + UsersListFollowersForAuthenticatedUserEndpoint, + UsersListFollowersForAuthenticatedUserRequestOptions + ]; + "GET /user/following": [ + UsersListFollowingForAuthenticatedUserEndpoint, + UsersListFollowingForAuthenticatedUserRequestOptions + ]; + "GET /user/following/:username": [ + UsersCheckFollowingEndpoint, + UsersCheckFollowingRequestOptions + ]; + "GET /user/gpg_keys": [ + UsersListGpgKeysEndpoint, + UsersListGpgKeysRequestOptions + ]; + "GET /user/gpg_keys/:gpg_key_id": [ + UsersGetGpgKeyEndpoint, + UsersGetGpgKeyRequestOptions + ]; + "GET /user/installations": [ + AppsListInstallationsForAuthenticatedUserEndpoint, + AppsListInstallationsForAuthenticatedUserRequestOptions + ]; + "GET /user/installations/:installation_id/repositories": [ + AppsListInstallationReposForAuthenticatedUserEndpoint, + AppsListInstallationReposForAuthenticatedUserRequestOptions + ]; + "GET /user/issues": [ + IssuesListForAuthenticatedUserEndpoint, + IssuesListForAuthenticatedUserRequestOptions + ]; + "GET /user/keys": [ + UsersListPublicKeysEndpoint, + UsersListPublicKeysRequestOptions + ]; + "GET /user/keys/:key_id": [ + UsersGetPublicKeyEndpoint, + UsersGetPublicKeyRequestOptions + ]; + "GET /user/marketplace_purchases": [ + AppsListMarketplacePurchasesForAuthenticatedUserEndpoint, + AppsListMarketplacePurchasesForAuthenticatedUserRequestOptions + ]; + "GET /user/marketplace_purchases/stubbed": [ + AppsListMarketplacePurchasesForAuthenticatedUserStubbedEndpoint, + AppsListMarketplacePurchasesForAuthenticatedUserStubbedRequestOptions + ]; + "GET /user/memberships/orgs": [ + OrgsListMembershipsEndpoint, + OrgsListMembershipsRequestOptions + ]; + "GET /user/memberships/orgs/:org": [ + OrgsGetMembershipForAuthenticatedUserEndpoint, + OrgsGetMembershipForAuthenticatedUserRequestOptions + ]; + "GET /user/migrations": [ + MigrationsListForAuthenticatedUserEndpoint, + MigrationsListForAuthenticatedUserRequestOptions + ]; + "GET /user/migrations/:migration_id": [ + MigrationsGetStatusForAuthenticatedUserEndpoint, + MigrationsGetStatusForAuthenticatedUserRequestOptions + ]; + "GET /user/migrations/:migration_id/archive": [ + MigrationsGetArchiveForAuthenticatedUserEndpoint, + MigrationsGetArchiveForAuthenticatedUserRequestOptions + ]; + "GET /user/orgs": [ + OrgsListForAuthenticatedUserEndpoint, + OrgsListForAuthenticatedUserRequestOptions + ]; + "GET /user/public_emails": [ + UsersListPublicEmailsEndpoint, + UsersListPublicEmailsRequestOptions + ]; + "GET /user/repos": [ReposListEndpoint, ReposListRequestOptions]; + "GET /user/repository_invitations": [ + ReposListInvitationsForAuthenticatedUserEndpoint, + ReposListInvitationsForAuthenticatedUserRequestOptions + ]; + "GET /user/starred": [ + ActivityListReposStarredByAuthenticatedUserEndpoint, + ActivityListReposStarredByAuthenticatedUserRequestOptions + ]; + "GET /user/starred/:owner/:repo": [ + ActivityCheckStarringRepoEndpoint, + ActivityCheckStarringRepoRequestOptions + ]; + "GET /user/subscriptions": [ + ActivityListWatchedReposForAuthenticatedUserEndpoint, + ActivityListWatchedReposForAuthenticatedUserRequestOptions + ]; + "GET /user/subscriptions/:owner/:repo": [ + ActivityCheckWatchingRepoLegacyEndpoint, + ActivityCheckWatchingRepoLegacyRequestOptions + ]; + "GET /user/teams": [ + TeamsListForAuthenticatedUserEndpoint, + TeamsListForAuthenticatedUserRequestOptions + ]; + "GET /users": [UsersListEndpoint, UsersListRequestOptions]; + "GET /users/:username": [ + UsersGetByUsernameEndpoint, + UsersGetByUsernameRequestOptions + ]; + "GET /users/:username/events": [ + ActivityListEventsForUserEndpoint, + ActivityListEventsForUserRequestOptions + ]; + "GET /users/:username/events/orgs/:org": [ + ActivityListEventsForOrgEndpoint, + ActivityListEventsForOrgRequestOptions + ]; + "GET /users/:username/events/public": [ + ActivityListPublicEventsForUserEndpoint, + ActivityListPublicEventsForUserRequestOptions + ]; + "GET /users/:username/followers": [ + UsersListFollowersForUserEndpoint, + UsersListFollowersForUserRequestOptions + ]; + "GET /users/:username/following": [ + UsersListFollowingForUserEndpoint, + UsersListFollowingForUserRequestOptions + ]; + "GET /users/:username/following/:target_user": [ + UsersCheckFollowingForUserEndpoint, + UsersCheckFollowingForUserRequestOptions + ]; + "GET /users/:username/gists": [ + GistsListPublicForUserEndpoint, + GistsListPublicForUserRequestOptions + ]; + "GET /users/:username/gpg_keys": [ + UsersListGpgKeysForUserEndpoint, + UsersListGpgKeysForUserRequestOptions + ]; + "GET /users/:username/hovercard": [ + UsersGetContextForUserEndpoint, + UsersGetContextForUserRequestOptions + ]; + "GET /users/:username/installation": [ + AppsGetUserInstallationEndpoint | AppsFindUserInstallationEndpoint, + + | AppsGetUserInstallationRequestOptions + | AppsFindUserInstallationRequestOptions + ]; + "GET /users/:username/keys": [ + UsersListPublicKeysForUserEndpoint, + UsersListPublicKeysForUserRequestOptions + ]; + "GET /users/:username/orgs": [ + OrgsListForUserEndpoint, + OrgsListForUserRequestOptions + ]; + "GET /users/:username/projects": [ + ProjectsListForUserEndpoint, + ProjectsListForUserRequestOptions + ]; + "GET /users/:username/received_events": [ + ActivityListReceivedEventsForUserEndpoint, + ActivityListReceivedEventsForUserRequestOptions + ]; + "GET /users/:username/received_events/public": [ + ActivityListReceivedPublicEventsForUserEndpoint, + ActivityListReceivedPublicEventsForUserRequestOptions + ]; + "GET /users/:username/repos": [ + ReposListForUserEndpoint, + ReposListForUserRequestOptions + ]; + "GET /users/:username/starred": [ + ActivityListReposStarredByUserEndpoint, + ActivityListReposStarredByUserRequestOptions + ]; + "GET /users/:username/subscriptions": [ + ActivityListReposWatchedByUserEndpoint, + ActivityListReposWatchedByUserRequestOptions + ]; + "PATCH /authorizations/:authorization_id": [ + OauthAuthorizationsUpdateAuthorizationEndpoint, + OauthAuthorizationsUpdateAuthorizationRequestOptions + ]; + "PATCH /gists/:gist_id": [GistsUpdateEndpoint, GistsUpdateRequestOptions]; + "PATCH /gists/:gist_id/comments/:comment_id": [ + GistsUpdateCommentEndpoint, + GistsUpdateCommentRequestOptions + ]; + "PATCH /notifications/threads/:thread_id": [ + ActivityMarkThreadAsReadEndpoint, + ActivityMarkThreadAsReadRequestOptions + ]; + "PATCH /orgs/:org": [OrgsUpdateEndpoint, OrgsUpdateRequestOptions]; + "PATCH /orgs/:org/hooks/:hook_id": [ + OrgsUpdateHookEndpoint, + OrgsUpdateHookRequestOptions + ]; + "PATCH /projects/:project_id": [ + ProjectsUpdateEndpoint, + ProjectsUpdateRequestOptions + ]; + "PATCH /projects/columns/:column_id": [ + ProjectsUpdateColumnEndpoint, + ProjectsUpdateColumnRequestOptions + ]; + "PATCH /projects/columns/cards/:card_id": [ + ProjectsUpdateCardEndpoint, + ProjectsUpdateCardRequestOptions + ]; + "PATCH /repos/:owner/:repo": [ReposUpdateEndpoint, ReposUpdateRequestOptions]; + "PATCH /repos/:owner/:repo/branches/:branch/protection/required_pull_request_reviews": [ + ReposUpdateProtectedBranchPullRequestReviewEnforcementEndpoint, + ReposUpdateProtectedBranchPullRequestReviewEnforcementRequestOptions + ]; + "PATCH /repos/:owner/:repo/branches/:branch/protection/required_status_checks": [ + ReposUpdateProtectedBranchRequiredStatusChecksEndpoint, + ReposUpdateProtectedBranchRequiredStatusChecksRequestOptions + ]; + "PATCH /repos/:owner/:repo/check-runs/:check_run_id": [ + ChecksUpdateEndpoint, + ChecksUpdateRequestOptions + ]; + "PATCH /repos/:owner/:repo/check-suites/preferences": [ + ChecksSetSuitesPreferencesEndpoint, + ChecksSetSuitesPreferencesRequestOptions + ]; + "PATCH /repos/:owner/:repo/comments/:comment_id": [ + ReposUpdateCommitCommentEndpoint, + ReposUpdateCommitCommentRequestOptions + ]; + "PATCH /repos/:owner/:repo/git/refs/:ref": [ + GitUpdateRefEndpoint, + GitUpdateRefRequestOptions + ]; + "PATCH /repos/:owner/:repo/hooks/:hook_id": [ + ReposUpdateHookEndpoint, + ReposUpdateHookRequestOptions + ]; + "PATCH /repos/:owner/:repo/import": [ + MigrationsUpdateImportEndpoint, + MigrationsUpdateImportRequestOptions + ]; + "PATCH /repos/:owner/:repo/import/authors/:author_id": [ + MigrationsMapCommitAuthorEndpoint, + MigrationsMapCommitAuthorRequestOptions + ]; + "PATCH /repos/:owner/:repo/import/lfs": [ + MigrationsSetLfsPreferenceEndpoint, + MigrationsSetLfsPreferenceRequestOptions + ]; + "PATCH /repos/:owner/:repo/invitations/:invitation_id": [ + ReposUpdateInvitationEndpoint, + ReposUpdateInvitationRequestOptions + ]; + "PATCH /repos/:owner/:repo/issues/:issue_number": [ + IssuesUpdateEndpoint, + IssuesUpdateRequestOptions + ]; + "PATCH /repos/:owner/:repo/issues/comments/:comment_id": [ + IssuesUpdateCommentEndpoint, + IssuesUpdateCommentRequestOptions + ]; + "PATCH /repos/:owner/:repo/labels/:name": [ + IssuesUpdateLabelEndpoint, + IssuesUpdateLabelRequestOptions + ]; + "PATCH /repos/:owner/:repo/milestones/:milestone_number": [ + IssuesUpdateMilestoneEndpoint, + IssuesUpdateMilestoneRequestOptions + ]; + "PATCH /repos/:owner/:repo/pulls/:pull_number": [ + PullsUpdateEndpoint, + PullsUpdateRequestOptions + ]; + "PATCH /repos/:owner/:repo/pulls/comments/:comment_id": [ + PullsUpdateCommentEndpoint, + PullsUpdateCommentRequestOptions + ]; + "PATCH /repos/:owner/:repo/releases/:release_id": [ + ReposUpdateReleaseEndpoint, + ReposUpdateReleaseRequestOptions + ]; + "PATCH /repos/:owner/:repo/releases/assets/:asset_id": [ + ReposUpdateReleaseAssetEndpoint, + ReposUpdateReleaseAssetRequestOptions + ]; + "PATCH /scim/v2/organizations/:org/Users/:scim_user_id": [ + ScimUpdateUserAttributeEndpoint, + ScimUpdateUserAttributeRequestOptions + ]; + "PATCH /teams/:team_id": [TeamsUpdateEndpoint, TeamsUpdateRequestOptions]; + "PATCH /teams/:team_id/discussions/:discussion_number": [ + TeamsUpdateDiscussionEndpoint, + TeamsUpdateDiscussionRequestOptions + ]; + "PATCH /teams/:team_id/discussions/:discussion_number/comments/:comment_number": [ + TeamsUpdateDiscussionCommentEndpoint, + TeamsUpdateDiscussionCommentRequestOptions + ]; + "PATCH /teams/:team_id/team-sync/group-mappings": [ + TeamsCreateOrUpdateIdPGroupConnectionsEndpoint, + TeamsCreateOrUpdateIdPGroupConnectionsRequestOptions + ]; + "PATCH /user": [ + UsersUpdateAuthenticatedEndpoint, + UsersUpdateAuthenticatedRequestOptions + ]; + "PATCH /user/email/visibility": [ + UsersTogglePrimaryEmailVisibilityEndpoint, + UsersTogglePrimaryEmailVisibilityRequestOptions + ]; + "PATCH /user/memberships/orgs/:org": [ + OrgsUpdateMembershipEndpoint, + OrgsUpdateMembershipRequestOptions + ]; + "PATCH /user/repository_invitations/:invitation_id": [ + ReposAcceptInvitationEndpoint, + ReposAcceptInvitationRequestOptions + ]; + "POST /app-manifests/:code/conversions": [ + AppsCreateFromManifestEndpoint, + AppsCreateFromManifestRequestOptions + ]; + "POST /app/installations/:installation_id/access_tokens": [ + AppsCreateInstallationTokenEndpoint, + AppsCreateInstallationTokenRequestOptions + ]; + "POST /applications/:client_id/tokens/:access_token": [ + OauthAuthorizationsResetAuthorizationEndpoint, + OauthAuthorizationsResetAuthorizationRequestOptions + ]; + "POST /authorizations": [ + OauthAuthorizationsCreateAuthorizationEndpoint, + OauthAuthorizationsCreateAuthorizationRequestOptions + ]; + "POST /content_references/:content_reference_id/attachments": [ + AppsCreateContentAttachmentEndpoint, + AppsCreateContentAttachmentRequestOptions + ]; + "POST /gists": [GistsCreateEndpoint, GistsCreateRequestOptions]; + "POST /gists/:gist_id/comments": [ + GistsCreateCommentEndpoint, + GistsCreateCommentRequestOptions + ]; + "POST /gists/:gist_id/forks": [GistsForkEndpoint, GistsForkRequestOptions]; + "POST /markdown": [MarkdownRenderEndpoint, MarkdownRenderRequestOptions]; + "POST /markdown/raw": [ + MarkdownRenderRawEndpoint, + MarkdownRenderRawRequestOptions + ]; + "POST /orgs/:org/hooks": [ + OrgsCreateHookEndpoint, + OrgsCreateHookRequestOptions + ]; + "POST /orgs/:org/hooks/:hook_id/pings": [ + OrgsPingHookEndpoint, + OrgsPingHookRequestOptions + ]; + "POST /orgs/:org/invitations": [ + OrgsCreateInvitationEndpoint, + OrgsCreateInvitationRequestOptions + ]; + "POST /orgs/:org/migrations": [ + MigrationsStartForOrgEndpoint, + MigrationsStartForOrgRequestOptions + ]; + "POST /orgs/:org/projects": [ + ProjectsCreateForOrgEndpoint, + ProjectsCreateForOrgRequestOptions + ]; + "POST /orgs/:org/repos": [ + ReposCreateInOrgEndpoint, + ReposCreateInOrgRequestOptions + ]; + "POST /orgs/:org/teams": [TeamsCreateEndpoint, TeamsCreateRequestOptions]; + "POST /projects/:project_id/columns": [ + ProjectsCreateColumnEndpoint, + ProjectsCreateColumnRequestOptions + ]; + "POST /projects/columns/:column_id/cards": [ + ProjectsCreateCardEndpoint, + ProjectsCreateCardRequestOptions + ]; + "POST /projects/columns/:column_id/moves": [ + ProjectsMoveColumnEndpoint, + ProjectsMoveColumnRequestOptions + ]; + "POST /projects/columns/cards/:card_id/moves": [ + ProjectsMoveCardEndpoint, + ProjectsMoveCardRequestOptions + ]; + "POST /repos/:owner/:repo/branches/:branch/protection/enforce_admins": [ + ReposAddProtectedBranchAdminEnforcementEndpoint, + ReposAddProtectedBranchAdminEnforcementRequestOptions + ]; + "POST /repos/:owner/:repo/branches/:branch/protection/required_signatures": [ + ReposAddProtectedBranchRequiredSignaturesEndpoint, + ReposAddProtectedBranchRequiredSignaturesRequestOptions + ]; + "POST /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": [ + ReposAddProtectedBranchRequiredStatusChecksContextsEndpoint, + ReposAddProtectedBranchRequiredStatusChecksContextsRequestOptions + ]; + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": [ + ReposAddProtectedBranchAppRestrictionsEndpoint, + ReposAddProtectedBranchAppRestrictionsRequestOptions + ]; + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": [ + ReposAddProtectedBranchTeamRestrictionsEndpoint, + ReposAddProtectedBranchTeamRestrictionsRequestOptions + ]; + "POST /repos/:owner/:repo/branches/:branch/protection/restrictions/users": [ + ReposAddProtectedBranchUserRestrictionsEndpoint, + ReposAddProtectedBranchUserRestrictionsRequestOptions + ]; + "POST /repos/:owner/:repo/check-runs": [ + ChecksCreateEndpoint, + ChecksCreateRequestOptions + ]; + "POST /repos/:owner/:repo/check-suites": [ + ChecksCreateSuiteEndpoint, + ChecksCreateSuiteRequestOptions + ]; + "POST /repos/:owner/:repo/check-suites/:check_suite_id/rerequest": [ + ChecksRerequestSuiteEndpoint, + ChecksRerequestSuiteRequestOptions + ]; + "POST /repos/:owner/:repo/comments/:comment_id/reactions": [ + ReactionsCreateForCommitCommentEndpoint, + ReactionsCreateForCommitCommentRequestOptions + ]; + "POST /repos/:owner/:repo/commits/:commit_sha/comments": [ + ReposCreateCommitCommentEndpoint, + ReposCreateCommitCommentRequestOptions + ]; + "POST /repos/:owner/:repo/deployments": [ + ReposCreateDeploymentEndpoint, + ReposCreateDeploymentRequestOptions + ]; + "POST /repos/:owner/:repo/deployments/:deployment_id/statuses": [ + ReposCreateDeploymentStatusEndpoint, + ReposCreateDeploymentStatusRequestOptions + ]; + "POST /repos/:owner/:repo/dispatches": [ + ReposCreateDispatchEventEndpoint, + ReposCreateDispatchEventRequestOptions + ]; + "POST /repos/:owner/:repo/forks": [ + ReposCreateForkEndpoint, + ReposCreateForkRequestOptions + ]; + "POST /repos/:owner/:repo/git/blobs": [ + GitCreateBlobEndpoint, + GitCreateBlobRequestOptions + ]; + "POST /repos/:owner/:repo/git/commits": [ + GitCreateCommitEndpoint, + GitCreateCommitRequestOptions + ]; + "POST /repos/:owner/:repo/git/refs": [ + GitCreateRefEndpoint, + GitCreateRefRequestOptions + ]; + "POST /repos/:owner/:repo/git/tags": [ + GitCreateTagEndpoint, + GitCreateTagRequestOptions + ]; + "POST /repos/:owner/:repo/git/trees": [ + GitCreateTreeEndpoint, + GitCreateTreeRequestOptions + ]; + "POST /repos/:owner/:repo/hooks": [ + ReposCreateHookEndpoint, + ReposCreateHookRequestOptions + ]; + "POST /repos/:owner/:repo/hooks/:hook_id/pings": [ + ReposPingHookEndpoint, + ReposPingHookRequestOptions + ]; + "POST /repos/:owner/:repo/hooks/:hook_id/tests": [ + ReposTestPushHookEndpoint, + ReposTestPushHookRequestOptions + ]; + "POST /repos/:owner/:repo/issues": [ + IssuesCreateEndpoint, + IssuesCreateRequestOptions + ]; + "POST /repos/:owner/:repo/issues/:issue_number/assignees": [ + IssuesAddAssigneesEndpoint, + IssuesAddAssigneesRequestOptions + ]; + "POST /repos/:owner/:repo/issues/:issue_number/comments": [ + IssuesCreateCommentEndpoint, + IssuesCreateCommentRequestOptions + ]; + "POST /repos/:owner/:repo/issues/:issue_number/labels": [ + IssuesAddLabelsEndpoint, + IssuesAddLabelsRequestOptions + ]; + "POST /repos/:owner/:repo/issues/:issue_number/reactions": [ + ReactionsCreateForIssueEndpoint, + ReactionsCreateForIssueRequestOptions + ]; + "POST /repos/:owner/:repo/issues/comments/:comment_id/reactions": [ + ReactionsCreateForIssueCommentEndpoint, + ReactionsCreateForIssueCommentRequestOptions + ]; + "POST /repos/:owner/:repo/keys": [ + ReposAddDeployKeyEndpoint, + ReposAddDeployKeyRequestOptions + ]; + "POST /repos/:owner/:repo/labels": [ + IssuesCreateLabelEndpoint, + IssuesCreateLabelRequestOptions + ]; + "POST /repos/:owner/:repo/merges": [ + ReposMergeEndpoint, + ReposMergeRequestOptions + ]; + "POST /repos/:owner/:repo/milestones": [ + IssuesCreateMilestoneEndpoint, + IssuesCreateMilestoneRequestOptions + ]; + "POST /repos/:owner/:repo/pages": [ + ReposEnablePagesSiteEndpoint, + ReposEnablePagesSiteRequestOptions + ]; + "POST /repos/:owner/:repo/pages/builds": [ + ReposRequestPageBuildEndpoint, + ReposRequestPageBuildRequestOptions + ]; + "POST /repos/:owner/:repo/projects": [ + ProjectsCreateForRepoEndpoint, + ProjectsCreateForRepoRequestOptions + ]; + "POST /repos/:owner/:repo/pulls": [ + PullsCreateEndpoint, + PullsCreateRequestOptions + ]; + "POST /repos/:owner/:repo/pulls/:pull_number/comments": [ + PullsCreateCommentEndpoint | PullsCreateCommentReplyEndpoint, + PullsCreateCommentRequestOptions | PullsCreateCommentReplyRequestOptions + ]; + "POST /repos/:owner/:repo/pulls/:pull_number/comments/:comment_id/replies": [ + PullsCreateReviewCommentReplyEndpoint, + PullsCreateReviewCommentReplyRequestOptions + ]; + "POST /repos/:owner/:repo/pulls/:pull_number/requested_reviewers": [ + PullsCreateReviewRequestEndpoint, + PullsCreateReviewRequestRequestOptions + ]; + "POST /repos/:owner/:repo/pulls/:pull_number/reviews": [ + PullsCreateReviewEndpoint, + PullsCreateReviewRequestOptions + ]; + "POST /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/events": [ + PullsSubmitReviewEndpoint, + PullsSubmitReviewRequestOptions + ]; + "POST /repos/:owner/:repo/pulls/comments/:comment_id/reactions": [ + ReactionsCreateForPullRequestReviewCommentEndpoint, + ReactionsCreateForPullRequestReviewCommentRequestOptions + ]; + "POST /repos/:owner/:repo/releases": [ + ReposCreateReleaseEndpoint, + ReposCreateReleaseRequestOptions + ]; + "POST /repos/:owner/:repo/statuses/:sha": [ + ReposCreateStatusEndpoint, + ReposCreateStatusRequestOptions + ]; + "POST /repos/:owner/:repo/transfer": [ + ReposTransferEndpoint, + ReposTransferRequestOptions + ]; + "POST /repos/:template_owner/:template_repo/generate": [ + ReposCreateUsingTemplateEndpoint, + ReposCreateUsingTemplateRequestOptions + ]; + "POST /scim/v2/organizations/:org/Users": [ + ScimProvisionAndInviteUsersEndpoint | ScimProvisionInviteUsersEndpoint, + + | ScimProvisionAndInviteUsersRequestOptions + | ScimProvisionInviteUsersRequestOptions + ]; + "POST /teams/:team_id/discussions": [ + TeamsCreateDiscussionEndpoint, + TeamsCreateDiscussionRequestOptions + ]; + "POST /teams/:team_id/discussions/:discussion_number/comments": [ + TeamsCreateDiscussionCommentEndpoint, + TeamsCreateDiscussionCommentRequestOptions + ]; + "POST /teams/:team_id/discussions/:discussion_number/comments/:comment_number/reactions": [ + ReactionsCreateForTeamDiscussionCommentEndpoint, + ReactionsCreateForTeamDiscussionCommentRequestOptions + ]; + "POST /teams/:team_id/discussions/:discussion_number/reactions": [ + ReactionsCreateForTeamDiscussionEndpoint, + ReactionsCreateForTeamDiscussionRequestOptions + ]; + "POST /user/emails": [UsersAddEmailsEndpoint, UsersAddEmailsRequestOptions]; + "POST /user/gpg_keys": [ + UsersCreateGpgKeyEndpoint, + UsersCreateGpgKeyRequestOptions + ]; + "POST /user/keys": [ + UsersCreatePublicKeyEndpoint, + UsersCreatePublicKeyRequestOptions + ]; + "POST /user/migrations": [ + MigrationsStartForAuthenticatedUserEndpoint, + MigrationsStartForAuthenticatedUserRequestOptions + ]; + "POST /user/projects": [ + ProjectsCreateForAuthenticatedUserEndpoint, + ProjectsCreateForAuthenticatedUserRequestOptions + ]; + "POST /user/repos": [ + ReposCreateForAuthenticatedUserEndpoint, + ReposCreateForAuthenticatedUserRequestOptions + ]; + "PUT /authorizations/clients/:client_id": [ + OauthAuthorizationsGetOrCreateAuthorizationForAppEndpoint, + OauthAuthorizationsGetOrCreateAuthorizationForAppRequestOptions + ]; + "PUT /authorizations/clients/:client_id/:fingerprint": [ + + | OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintEndpoint + | OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintEndpoint, + + | OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintRequestOptions + | OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintRequestOptions + ]; + "PUT /gists/:gist_id/star": [GistsStarEndpoint, GistsStarRequestOptions]; + "PUT /notifications": [ + ActivityMarkAsReadEndpoint, + ActivityMarkAsReadRequestOptions + ]; + "PUT /notifications/threads/:thread_id/subscription": [ + ActivitySetThreadSubscriptionEndpoint, + ActivitySetThreadSubscriptionRequestOptions + ]; + "PUT /orgs/:org/blocks/:username": [ + OrgsBlockUserEndpoint, + OrgsBlockUserRequestOptions + ]; + "PUT /orgs/:org/interaction-limits": [ + InteractionsAddOrUpdateRestrictionsForOrgEndpoint, + InteractionsAddOrUpdateRestrictionsForOrgRequestOptions + ]; + "PUT /orgs/:org/memberships/:username": [ + OrgsAddOrUpdateMembershipEndpoint, + OrgsAddOrUpdateMembershipRequestOptions + ]; + "PUT /orgs/:org/outside_collaborators/:username": [ + OrgsConvertMemberToOutsideCollaboratorEndpoint, + OrgsConvertMemberToOutsideCollaboratorRequestOptions + ]; + "PUT /orgs/:org/public_members/:username": [ + OrgsPublicizeMembershipEndpoint, + OrgsPublicizeMembershipRequestOptions + ]; + "PUT /projects/:project_id/collaborators/:username": [ + ProjectsAddCollaboratorEndpoint, + ProjectsAddCollaboratorRequestOptions + ]; + "PUT /repos/:owner/:repo/automated-security-fixes": [ + ReposEnableAutomatedSecurityFixesEndpoint, + ReposEnableAutomatedSecurityFixesRequestOptions + ]; + "PUT /repos/:owner/:repo/branches/:branch/protection": [ + ReposUpdateBranchProtectionEndpoint, + ReposUpdateBranchProtectionRequestOptions + ]; + "PUT /repos/:owner/:repo/branches/:branch/protection/required_status_checks/contexts": [ + ReposReplaceProtectedBranchRequiredStatusChecksContextsEndpoint, + ReposReplaceProtectedBranchRequiredStatusChecksContextsRequestOptions + ]; + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/apps": [ + ReposReplaceProtectedBranchAppRestrictionsEndpoint, + ReposReplaceProtectedBranchAppRestrictionsRequestOptions + ]; + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/teams": [ + ReposReplaceProtectedBranchTeamRestrictionsEndpoint, + ReposReplaceProtectedBranchTeamRestrictionsRequestOptions + ]; + "PUT /repos/:owner/:repo/branches/:branch/protection/restrictions/users": [ + ReposReplaceProtectedBranchUserRestrictionsEndpoint, + ReposReplaceProtectedBranchUserRestrictionsRequestOptions + ]; + "PUT /repos/:owner/:repo/collaborators/:username": [ + ReposAddCollaboratorEndpoint, + ReposAddCollaboratorRequestOptions + ]; + "PUT /repos/:owner/:repo/contents/:path": [ + + | ReposCreateOrUpdateFileEndpoint + | ReposCreateFileEndpoint + | ReposUpdateFileEndpoint, + + | ReposCreateOrUpdateFileRequestOptions + | ReposCreateFileRequestOptions + | ReposUpdateFileRequestOptions + ]; + "PUT /repos/:owner/:repo/import": [ + MigrationsStartImportEndpoint, + MigrationsStartImportRequestOptions + ]; + "PUT /repos/:owner/:repo/interaction-limits": [ + InteractionsAddOrUpdateRestrictionsForRepoEndpoint, + InteractionsAddOrUpdateRestrictionsForRepoRequestOptions + ]; + "PUT /repos/:owner/:repo/issues/:issue_number/labels": [ + IssuesReplaceLabelsEndpoint, + IssuesReplaceLabelsRequestOptions + ]; + "PUT /repos/:owner/:repo/issues/:issue_number/lock": [ + IssuesLockEndpoint, + IssuesLockRequestOptions + ]; + "PUT /repos/:owner/:repo/notifications": [ + ActivityMarkNotificationsAsReadForRepoEndpoint, + ActivityMarkNotificationsAsReadForRepoRequestOptions + ]; + "PUT /repos/:owner/:repo/pages": [ + ReposUpdateInformationAboutPagesSiteEndpoint, + ReposUpdateInformationAboutPagesSiteRequestOptions + ]; + "PUT /repos/:owner/:repo/pulls/:pull_number/merge": [ + PullsMergeEndpoint, + PullsMergeRequestOptions + ]; + "PUT /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id": [ + PullsUpdateReviewEndpoint, + PullsUpdateReviewRequestOptions + ]; + "PUT /repos/:owner/:repo/pulls/:pull_number/reviews/:review_id/dismissals": [ + PullsDismissReviewEndpoint, + PullsDismissReviewRequestOptions + ]; + "PUT /repos/:owner/:repo/pulls/:pull_number/update-branch": [ + PullsUpdateBranchEndpoint, + PullsUpdateBranchRequestOptions + ]; + "PUT /repos/:owner/:repo/subscription": [ + ActivitySetRepoSubscriptionEndpoint, + ActivitySetRepoSubscriptionRequestOptions + ]; + "PUT /repos/:owner/:repo/topics": [ + ReposReplaceTopicsEndpoint, + ReposReplaceTopicsRequestOptions + ]; + "PUT /repos/:owner/:repo/vulnerability-alerts": [ + ReposEnableVulnerabilityAlertsEndpoint, + ReposEnableVulnerabilityAlertsRequestOptions + ]; + "PUT /scim/v2/organizations/:org/Users/:scim_user_id": [ + + | ScimReplaceProvisionedUserInformationEndpoint + | ScimUpdateProvisionedOrgMembershipEndpoint, + + | ScimReplaceProvisionedUserInformationRequestOptions + | ScimUpdateProvisionedOrgMembershipRequestOptions + ]; + "PUT /teams/:team_id/members/:username": [ + TeamsAddMemberEndpoint, + TeamsAddMemberRequestOptions + ]; + "PUT /teams/:team_id/memberships/:username": [ + TeamsAddOrUpdateMembershipEndpoint, + TeamsAddOrUpdateMembershipRequestOptions + ]; + "PUT /teams/:team_id/projects/:project_id": [ + TeamsAddOrUpdateProjectEndpoint, + TeamsAddOrUpdateProjectRequestOptions + ]; + "PUT /teams/:team_id/repos/:owner/:repo": [ + TeamsAddOrUpdateRepoEndpoint, + TeamsAddOrUpdateRepoRequestOptions + ]; + "PUT /user/blocks/:username": [UsersBlockEndpoint, UsersBlockRequestOptions]; + "PUT /user/following/:username": [ + UsersFollowEndpoint, + UsersFollowRequestOptions + ]; + "PUT /user/installations/:installation_id/repositories/:repository_id": [ + AppsAddRepoToInstallationEndpoint, + AppsAddRepoToInstallationRequestOptions + ]; + "PUT /user/starred/:owner/:repo": [ + ActivityStarRepoEndpoint, + ActivityStarRepoRequestOptions + ]; + "PUT /user/subscriptions/:owner/:repo": [ + ActivityWatchRepoLegacyEndpoint, + ActivityWatchRepoLegacyRequestOptions + ]; +} + +type AppsGetAuthenticatedEndpoint = {}; +type AppsGetAuthenticatedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsCreateFromManifestEndpoint = { + /** + * code parameter + */ + code: string; +}; +type AppsCreateFromManifestRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListInstallationsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListInstallationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsGetInstallationEndpoint = { + /** + * installation_id parameter + */ + installation_id: number; +}; +type AppsGetInstallationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsDeleteInstallationEndpoint = { + /** + * installation_id parameter + */ + installation_id: number; +}; +type AppsDeleteInstallationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsCreateInstallationTokenEndpoint = { + /** + * installation_id parameter + */ + installation_id: number; + /** + * The `id`s of the repositories that the installation token can access. Providing repository `id`s restricts the access of an installation token to specific repositories. You can use the "[List repositories](https://developer.github.com/v3/apps/installations/#list-repositories)" endpoint to get the `id` of all repositories that an installation can access. For example, you can select specific repositories when creating an installation token to restrict the number of repositories that can be cloned using the token. + */ + repository_ids?: number[]; + /** + * The permissions granted to the access token. The permissions object includes the permission names and their access type. For a complete list of permissions and allowable values, see "[GitHub App permissions](https://developer.github.com/apps/building-github-apps/creating-github-apps-using-url-parameters/#github-app-permissions)." + */ + permissions?: AppsCreateInstallationTokenParamsPermissions; +}; +type AppsCreateInstallationTokenRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsListGrantsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OauthAuthorizationsListGrantsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsGetGrantEndpoint = { + /** + * grant_id parameter + */ + grant_id: number; +}; +type OauthAuthorizationsGetGrantRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsDeleteGrantEndpoint = { + /** + * grant_id parameter + */ + grant_id: number; +}; +type OauthAuthorizationsDeleteGrantRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsRevokeGrantForApplicationEndpoint = { + /** + * client_id parameter + */ + client_id: string; + /** + * access_token parameter + */ + access_token: string; +}; +type OauthAuthorizationsRevokeGrantForApplicationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsCheckAuthorizationEndpoint = { + /** + * client_id parameter + */ + client_id: string; + /** + * access_token parameter + */ + access_token: string; +}; +type OauthAuthorizationsCheckAuthorizationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsResetAuthorizationEndpoint = { + /** + * client_id parameter + */ + client_id: string; + /** + * access_token parameter + */ + access_token: string; +}; +type OauthAuthorizationsResetAuthorizationRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsRevokeAuthorizationForApplicationEndpoint = { + /** + * client_id parameter + */ + client_id: string; + /** + * access_token parameter + */ + access_token: string; +}; +type OauthAuthorizationsRevokeAuthorizationForApplicationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsGetBySlugEndpoint = { + /** + * app_slug parameter + */ + app_slug: string; +}; +type AppsGetBySlugRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsListAuthorizationsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OauthAuthorizationsListAuthorizationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsCreateAuthorizationEndpoint = { + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * The 20 character OAuth app client key for which to create the token. + */ + client_id?: string; + /** + * The 40 character OAuth app client secret for which to create the token. + */ + client_secret?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; +}; +type OauthAuthorizationsCreateAuthorizationRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsGetOrCreateAuthorizationForAppEndpoint = { + /** + * client_id parameter + */ + client_id: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client and user. If provided, this API is functionally equivalent to [Get-or-create an authorization for a specific app and fingerprint](https://developer.github.com/v3/oauth_authorizations/#get-or-create-an-authorization-for-a-specific-app-and-fingerprint). + */ + fingerprint?: string; +}; +type OauthAuthorizationsGetOrCreateAuthorizationForAppRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintEndpoint = { + /** + * client_id parameter + */ + client_id: string; + /** + * fingerprint parameter + */ + fingerprint: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; +}; +type OauthAuthorizationsGetOrCreateAuthorizationForAppAndFingerprintRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintEndpoint = { + /** + * client_id parameter + */ + client_id: string; + /** + * fingerprint parameter + */ + fingerprint: string; + /** + * The 40 character OAuth app client secret associated with the client ID specified in the URL. + */ + client_secret: string; + /** + * A list of scopes that this authorization is in. + */ + scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; +}; +type OauthAuthorizationsGetOrCreateAuthorizationForAppFingerprintRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsGetAuthorizationEndpoint = { + /** + * authorization_id parameter + */ + authorization_id: number; +}; +type OauthAuthorizationsGetAuthorizationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsUpdateAuthorizationEndpoint = { + /** + * authorization_id parameter + */ + authorization_id: number; + /** + * Replaces the authorization scopes with these. + */ + scopes?: string[]; + /** + * A list of scopes to add to this authorization. + */ + add_scopes?: string[]; + /** + * A list of scopes to remove from this authorization. + */ + remove_scopes?: string[]; + /** + * A note to remind you what the OAuth token is for. Tokens not associated with a specific OAuth application (i.e. personal access tokens) must have a unique note. + */ + note?: string; + /** + * A URL to remind you what app the OAuth token is for. + */ + note_url?: string; + /** + * A unique string to distinguish an authorization from others created for the same client ID and user. + */ + fingerprint?: string; +}; +type OauthAuthorizationsUpdateAuthorizationRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OauthAuthorizationsDeleteAuthorizationEndpoint = { + /** + * authorization_id parameter + */ + authorization_id: number; +}; +type OauthAuthorizationsDeleteAuthorizationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type CodesOfConductListConductCodesEndpoint = {}; +type CodesOfConductListConductCodesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type CodesOfConductGetConductCodeEndpoint = { + /** + * key parameter + */ + key: string; +}; +type CodesOfConductGetConductCodeRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsCreateContentAttachmentEndpoint = { + /** + * content_reference_id parameter + */ + content_reference_id: number; + /** + * The title of the content attachment displayed in the body or comment of an issue or pull request. + */ + title: string; + /** + * The body text of the content attachment displayed in the body or comment of an issue or pull request. This parameter supports markdown. + */ + body: string; +}; +type AppsCreateContentAttachmentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type EmojisGetEndpoint = {}; +type EmojisGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListPublicEventsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListPublicEventsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListFeedsEndpoint = {}; +type ActivityListFeedsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsListEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GistsListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsCreateEndpoint = { + /** + * The filenames and content of each file in the gist. The keys in the `files` object represent the filename and have the type `string`. + */ + files: GistsCreateParamsFiles; + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * When `true`, the gist will be public and available for anyone to see. + */ + public?: boolean; +}; +type GistsCreateRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsListPublicEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GistsListPublicRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsListStarredEndpoint = { + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GistsListStarredRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsGetEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; +}; +type GistsGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsUpdateEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * A descriptive name for this gist. + */ + description?: string; + /** + * The filenames and content that make up this gist. + */ + files?: GistsUpdateParamsFiles; +}; +type GistsUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsDeleteEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; +}; +type GistsDeleteRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsListCommentsEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GistsListCommentsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsCreateCommentEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * The comment text. + */ + body: string; +}; +type GistsCreateCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsGetCommentEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * comment_id parameter + */ + comment_id: number; +}; +type GistsGetCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsUpdateCommentEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The comment text. + */ + body: string; +}; +type GistsUpdateCommentRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsDeleteCommentEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * comment_id parameter + */ + comment_id: number; +}; +type GistsDeleteCommentRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsListCommitsEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GistsListCommitsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsForkEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; +}; +type GistsForkRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsListForksEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GistsListForksRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsStarEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; +}; +type GistsStarRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsUnstarEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; +}; +type GistsUnstarRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsCheckIsStarredEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; +}; +type GistsCheckIsStarredRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsGetRevisionEndpoint = { + /** + * gist_id parameter + */ + gist_id: string; + /** + * sha parameter + */ + sha: string; +}; +type GistsGetRevisionRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitignoreListTemplatesEndpoint = {}; +type GitignoreListTemplatesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitignoreGetTemplateEndpoint = { + /** + * name parameter + */ + name: string; +}; +type GitignoreGetTemplateRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListReposEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListReposRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListEndpoint = { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchIssuesLegacyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repository parameter + */ + repository: string; + /** + * Indicates the state of the issues to return. Can be either `open` or `closed`. + */ + state: "open" | "closed"; + /** + * The search term. + */ + keyword: string; +}; +type SearchIssuesLegacyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchReposLegacyEndpoint = { + /** + * The search term. + */ + keyword: string; + /** + * Filter results by language. + */ + language?: string; + /** + * The page number to fetch. + */ + start_page?: string; + /** + * The sort field. One of `stars`, `forks`, or `updated`. Default: results are sorted by best match. + */ + sort?: "stars" | "forks" | "updated"; + /** + * The sort field. if `sort` param is provided. Can be either `asc` or `desc`. + */ + order?: "asc" | "desc"; +}; +type SearchReposLegacyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchEmailLegacyEndpoint = { + /** + * The email address. + */ + email: string; +}; +type SearchEmailLegacyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchUsersLegacyEndpoint = { + /** + * The search term. + */ + keyword: string; + /** + * The page number to fetch. + */ + start_page?: string; + /** + * The sort field. One of `stars`, `forks`, or `updated`. Default: results are sorted by best match. + */ + sort?: "stars" | "forks" | "updated"; + /** + * The sort field. if `sort` param is provided. Can be either `asc` or `desc`. + */ + order?: "asc" | "desc"; +}; +type SearchUsersLegacyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type LicensesListCommonlyUsedEndpoint = {}; +type LicensesListCommonlyUsedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type LicensesListEndpoint = {}; +type LicensesListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type LicensesGetEndpoint = { + /** + * license parameter + */ + license: string; +}; +type LicensesGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MarkdownRenderEndpoint = { + /** + * The Markdown text to render in HTML. Markdown content must be 400 KB or less. + */ + text: string; + /** + * The rendering mode. Can be either: + * \* `markdown` to render a document in plain Markdown, just like README.md files are rendered. + * \* `gfm` to render a document in [GitHub Flavored Markdown](https://github.github.com/gfm/), which creates links for user mentions as well as references to SHA-1 hashes, issues, and pull requests. + */ + mode?: "markdown" | "gfm"; + /** + * The repository context to use when creating references in `gfm` mode. Omit this parameter when using `markdown` mode. + */ + context?: string; +}; +type MarkdownRenderRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MarkdownRenderRawEndpoint = { + /** + * data parameter + */ + data: string; +}; +type MarkdownRenderRawRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsCheckAccountIsAssociatedWithAnyEndpoint = { + /** + * account_id parameter + */ + account_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsCheckAccountIsAssociatedWithAnyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListPlansEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListPlansRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListAccountsUserOrOrgOnPlanEndpoint = { + /** + * plan_id parameter + */ + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListAccountsUserOrOrgOnPlanRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsCheckAccountIsAssociatedWithAnyStubbedEndpoint = { + /** + * account_id parameter + */ + account_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsCheckAccountIsAssociatedWithAnyStubbedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListPlansStubbedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListPlansStubbedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListAccountsUserOrOrgOnPlanStubbedEndpoint = { + /** + * plan_id parameter + */ + plan_id: number; + /** + * Sorts the GitHub accounts by the date they were created or last updated. Can be one of `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * To return the oldest accounts first, set to `asc`. Can be one of `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListAccountsUserOrOrgOnPlanStubbedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MetaGetEndpoint = {}; +type MetaGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListPublicEventsForRepoNetworkEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListPublicEventsForRepoNetworkRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListNotificationsEndpoint = { + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListNotificationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityMarkAsReadEndpoint = { + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; +}; +type ActivityMarkAsReadRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityGetThreadEndpoint = { + /** + * thread_id parameter + */ + thread_id: number; +}; +type ActivityGetThreadRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityMarkThreadAsReadEndpoint = { + /** + * thread_id parameter + */ + thread_id: number; +}; +type ActivityMarkThreadAsReadRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityGetThreadSubscriptionEndpoint = { + /** + * thread_id parameter + */ + thread_id: number; +}; +type ActivityGetThreadSubscriptionRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivitySetThreadSubscriptionEndpoint = { + /** + * thread_id parameter + */ + thread_id: number; + /** + * Unsubscribes and subscribes you to a conversation. Set `ignored` to `true` to block all notifications from this thread. + */ + ignored?: boolean; +}; +type ActivitySetThreadSubscriptionRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityDeleteThreadSubscriptionEndpoint = { + /** + * thread_id parameter + */ + thread_id: number; +}; +type ActivityDeleteThreadSubscriptionRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListEndpoint = { + /** + * The integer ID of the last Organization that you've seen. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsGetEndpoint = { + /** + * org parameter + */ + org: string; +}; +type OrgsGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsUpdateEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Billing email address. This address is not publicized. + */ + billing_email?: string; + /** + * The company name. + */ + company?: string; + /** + * The publicly visible email address. + */ + email?: string; + /** + * The location. + */ + location?: string; + /** + * The shorthand name of the company. + */ + name?: string; + /** + * The description of the company. + */ + description?: string; + /** + * Toggles whether organization projects are enabled for the organization. + */ + has_organization_projects?: boolean; + /** + * Toggles whether repository projects are enabled for repositories that belong to the organization. + */ + has_repository_projects?: boolean; + /** + * Default permission level members have for organization repositories: + * \* `read` - can pull, but not push to or administer this repository. + * \* `write` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push, and administer this repository. + * \* `none` - no permissions granted by default. + */ + default_repository_permission?: "read" | "write" | "admin" | "none"; + /** + * Toggles the ability of non-admin organization members to create repositories. Can be one of: + * \* `true` - all organization members can create repositories. + * \* `false` - only admin members can create repositories. + * Default: `true` + * **Note:** Another parameter can override the this parameter. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. **Note:** Another parameter can override the this parameter. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. + */ + members_can_create_repositories?: boolean; + /** + * Specifies which types of repositories non-admin organization members can create. Can be one of: + * \* `all` - all organization members can create public and private repositories. + * \* `private` - members can create private repositories. This option is only available to repositories that are part of an organization on [GitHub Business Cloud](https://github.com/pricing/business-cloud). + * \* `none` - only admin members can create repositories. + * **Note:** Using this parameter will override values set in `members_can_create_repositories`. See [this note](https://developer.github.com/v3/orgs/#members_can_create_repositories) for details. + */ + members_allowed_repository_creation_type?: "all" | "private" | "none"; +}; +type OrgsUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListBlockedUsersEndpoint = { + /** + * org parameter + */ + org: string; +}; +type OrgsListBlockedUsersRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsCheckBlockedUserEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsCheckBlockedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsBlockUserEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsBlockUserRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsUnblockUserEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsUnblockUserRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListCredentialAuthorizationsEndpoint = { + /** + * org parameter + */ + org: string; +}; +type OrgsListCredentialAuthorizationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsRemoveCredentialAuthorizationEndpoint = { + /** + * org parameter + */ + org: string; + /** + * credential_id parameter + */ + credential_id: number; +}; +type OrgsRemoveCredentialAuthorizationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListPublicEventsForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListPublicEventsForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListHooksEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListHooksRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsCreateHookEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Must be passed as "web". + */ + name: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#create-hook-config-params). + */ + config: OrgsCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +type OrgsCreateHookRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsGetHookEndpoint = { + /** + * org parameter + */ + org: string; + /** + * hook_id parameter + */ + hook_id: number; +}; +type OrgsGetHookRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsUpdateHookEndpoint = { + /** + * org parameter + */ + org: string; + /** + * hook_id parameter + */ + hook_id: number; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/orgs/hooks/#update-hook-config-params). + */ + config?: OrgsUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +type OrgsUpdateHookRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsDeleteHookEndpoint = { + /** + * org parameter + */ + org: string; + /** + * hook_id parameter + */ + hook_id: number; +}; +type OrgsDeleteHookRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsPingHookEndpoint = { + /** + * org parameter + */ + org: string; + /** + * hook_id parameter + */ + hook_id: number; +}; +type OrgsPingHookRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsGetOrgInstallationEndpoint = { + /** + * org parameter + */ + org: string; +}; +type AppsGetOrgInstallationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsFindOrgInstallationEndpoint = { + /** + * org parameter + */ + org: string; +}; +type AppsFindOrgInstallationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type InteractionsGetRestrictionsForOrgEndpoint = { + /** + * org parameter + */ + org: string; +}; +type InteractionsGetRestrictionsForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type InteractionsAddOrUpdateRestrictionsForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests in public repositories for the given organization. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; +}; +type InteractionsAddOrUpdateRestrictionsForOrgRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type InteractionsRemoveRestrictionsForOrgEndpoint = { + /** + * org parameter + */ + org: string; +}; +type InteractionsRemoveRestrictionsForOrgRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListPendingInvitationsEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListPendingInvitationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsCreateInvitationEndpoint = { + /** + * org parameter + */ + org: string; + /** + * **Required unless you provide `email`**. GitHub user ID for the person you are inviting. + */ + invitee_id?: number; + /** + * **Required unless you provide `invitee_id`**. Email address of the person you are inviting, which can be an existing GitHub user. + */ + email?: string; + /** + * Specify role for new member. Can be one of: + * \* `admin` - Organization owners with full administrative rights to the organization and complete access to all repositories and teams. + * \* `direct_member` - Non-owner organization members with ability to see other members and join teams by invitation. + * \* `billing_manager` - Non-owner organization members with ability to manage the billing settings of your organization. + */ + role?: "admin" | "direct_member" | "billing_manager"; + /** + * Specify IDs for the teams you want to invite new members to. + */ + team_ids?: number[]; +}; +type OrgsCreateInvitationRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListInvitationTeamsEndpoint = { + /** + * org parameter + */ + org: string; + /** + * invitation_id parameter + */ + invitation_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListInvitationTeamsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListMembersEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Filter members returned in the list. Can be one of: + * \* `2fa_disabled` - Members without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. Available for organization owners. + * \* `all` - All members the authenticated user can see. + */ + filter?: "2fa_disabled" | "all"; + /** + * Filter members returned by their role. Can be one of: + * \* `all` - All members of the organization, regardless of role. + * \* `admin` - Organization owners. + * \* `member` - Non-owner organization members. + */ + role?: "all" | "admin" | "member"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListMembersRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsCheckMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsCheckMembershipRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsRemoveMemberEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsRemoveMemberRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsGetMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsGetMembershipRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsAddOrUpdateMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; + /** + * The role to give the user in the organization. Can be one of: + * \* `admin` - The user will become an owner of the organization. + * \* `member` - The user will become a non-owner member of the organization. + */ + role?: "admin" | "member"; +}; +type OrgsAddOrUpdateMembershipRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsRemoveMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsRemoveMembershipRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsStartForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * A list of arrays indicating which repositories should be migrated. + */ + repositories: string[]; + /** + * Indicates whether repositories should be locked (to prevent manipulation) while migrating data. + */ + lock_repositories?: boolean; + /** + * Indicates whether attachments should be excluded from the migration (to reduce migration archive file size). + */ + exclude_attachments?: boolean; +}; +type MigrationsStartForOrgRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsListForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type MigrationsListForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsGetStatusForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * migration_id parameter + */ + migration_id: number; +}; +type MigrationsGetStatusForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsGetArchiveForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * migration_id parameter + */ + migration_id: number; +}; +type MigrationsGetArchiveForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsDeleteArchiveForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * migration_id parameter + */ + migration_id: number; +}; +type MigrationsDeleteArchiveForOrgRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsUnlockRepoForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * migration_id parameter + */ + migration_id: number; + /** + * repo_name parameter + */ + repo_name: string; +}; +type MigrationsUnlockRepoForOrgRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListOutsideCollaboratorsEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Filter the list of outside collaborators. Can be one of: + * \* `2fa_disabled`: Outside collaborators without [two-factor authentication](https://github.com/blog/1614-two-factor-authentication) enabled. + * \* `all`: All outside collaborators. + */ + filter?: "2fa_disabled" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListOutsideCollaboratorsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsRemoveOutsideCollaboratorEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsRemoveOutsideCollaboratorRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsConvertMemberToOutsideCollaboratorEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsConvertMemberToOutsideCollaboratorRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsListForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ProjectsListForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsCreateForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +}; +type ProjectsCreateForOrgRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListPublicMembersEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListPublicMembersRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsCheckPublicMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsCheckPublicMembershipRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsPublicizeMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsPublicizeMembershipRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsConcealMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * username parameter + */ + username: string; +}; +type OrgsConcealMembershipRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Can be one of `all`, `public`, `private`, `forks`, `sources`, `member`. + */ + type?: "all" | "public" | "private" | "forks" | "sources" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: when using `full_name`: `asc`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateInOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to create a private repository or `false` to create a public one. Creating private repositories requires a paid GitHub account. + */ + private?: boolean; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; +}; +type ReposCreateInOrgRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListIdPGroupsForOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListIdPGroupsForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsCreateEndpoint = { + /** + * org parameter + */ + org: string; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The logins of organization members to add as maintainers of the team. + */ + maintainers?: string[]; + /** + * The full name (e.g., "organization-name/repository-name") of repositories to add the team to. + */ + repo_names?: string[]; + /** + * The level of privacy this team should have. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * Default: `secret` + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + * Default for child team: `closed` + * **Note**: You must pass the `hellcat-preview` media type to set privacy default to `closed` for child teams. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter. + */ + parent_team_id?: number; +}; +type TeamsCreateRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsGetByNameEndpoint = { + /** + * org parameter + */ + org: string; + /** + * team_slug parameter + */ + team_slug: string; +}; +type TeamsGetByNameRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsGetCardEndpoint = { + /** + * card_id parameter + */ + card_id: number; +}; +type ProjectsGetCardRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsUpdateCardEndpoint = { + /** + * card_id parameter + */ + card_id: number; + /** + * The card's note content. Only valid for cards without another type of content, so this cannot be specified if the card already has a `content_id` and `content_type`. + */ + note?: string; + /** + * Use `true` to archive a project card. Specify `false` if you need to restore a previously archived project card. + */ + archived?: boolean; +}; +type ProjectsUpdateCardRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsDeleteCardEndpoint = { + /** + * card_id parameter + */ + card_id: number; +}; +type ProjectsDeleteCardRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsMoveCardEndpoint = { + /** + * card_id parameter + */ + card_id: number; + /** + * Can be one of `top`, `bottom`, or `after:`, where `` is the `id` value of a card in the same column, or in the new column specified by `column_id`. + */ + position: string; + /** + * The `id` value of a column in the same project. + */ + column_id?: number; +}; +type ProjectsMoveCardRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsGetColumnEndpoint = { + /** + * column_id parameter + */ + column_id: number; +}; +type ProjectsGetColumnRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsUpdateColumnEndpoint = { + /** + * column_id parameter + */ + column_id: number; + /** + * The new name of the column. + */ + name: string; +}; +type ProjectsUpdateColumnRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsDeleteColumnEndpoint = { + /** + * column_id parameter + */ + column_id: number; +}; +type ProjectsDeleteColumnRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsListCardsEndpoint = { + /** + * column_id parameter + */ + column_id: number; + /** + * Filters the project cards that are returned by the card's state. Can be one of `all`,`archived`, or `not_archived`. + */ + archived_state?: "all" | "archived" | "not_archived"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ProjectsListCardsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsCreateCardEndpoint = { + /** + * column_id parameter + */ + column_id: number; + /** + * The card's note content. Only valid for cards without another type of content, so you must omit when specifying `content_id` and `content_type`. + */ + note?: string; + /** + * The issue or pull request id you want to associate with this card. You can use the [List issues for a repository](https://developer.github.com/v3/issues/#list-issues-for-a-repository) and [List pull requests](https://developer.github.com/v3/pulls/#list-pull-requests) endpoints to find this id. + * **Note:** Depending on whether you use the issue id or pull request id, you will need to specify `Issue` or `PullRequest` as the `content_type`. + */ + content_id?: number; + /** + * **Required if you provide `content_id`**. The type of content you want to associate with this card. Use `Issue` when `content_id` is an issue id and use `PullRequest` when `content_id` is a pull request id. + */ + content_type?: string; +}; +type ProjectsCreateCardRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsMoveColumnEndpoint = { + /** + * column_id parameter + */ + column_id: number; + /** + * Can be one of `first`, `last`, or `after:`, where `` is the `id` value of a column in the same project. + */ + position: string; +}; +type ProjectsMoveColumnRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsGetEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ProjectsGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsUpdateEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * The name of the project. + */ + name?: string; + /** + * The description of the project. + */ + body?: string; + /** + * State of the project. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The permission level that determines whether all members of the project's organization can see and/or make changes to the project. Setting `organization_permission` is only available for organization projects. If an organization member belongs to a team with a higher level of access or is a collaborator with a higher level of access, their permission level is not lowered by `organization_permission`. For information on changing access for a team or collaborator, see [Add or update team project](https://developer.github.com/v3/teams/#add-or-update-team-project) or [Add user as a collaborator](https://developer.github.com/v3/projects/collaborators/#add-user-as-a-collaborator). + * + * **Note:** Updating a project's `organization_permission` requires `admin` access to the project. + * + * Can be one of: + * \* `read` - Organization members can read, but not write to or administer this project. + * \* `write` - Organization members can read and write, but not administer this project. + * \* `admin` - Organization members can read, write and administer this project. + * \* `none` - Organization members can only see this project if it is public. + */ + organization_permission?: string; + /** + * Sets the visibility of a project board. Setting `private` is only available for organization and user projects. **Note:** Updating a project's visibility requires `admin` access to the project. + * + * Can be one of: + * \* `false` - Anyone can see the project. + * \* `true` - Only the user can view a project board created on a user account. Organization members with the appropriate `organization_permission` can see project boards in an organization account. + */ + private?: boolean; +}; +type ProjectsUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsDeleteEndpoint = { + /** + * project_id parameter + */ + project_id: number; +}; +type ProjectsDeleteRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsListCollaboratorsEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * Filters the collaborators by their affiliation. Can be one of: + * \* `outside`: Outside collaborators of a project that are not a member of the project's organization. + * \* `direct`: Collaborators with permissions to a project, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ProjectsListCollaboratorsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsAddCollaboratorEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * username parameter + */ + username: string; + /** + * The permission to grant the collaborator. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." Can be one of: + * \* `read` - can read, but not write to or administer this project. + * \* `write` - can read and write, but not administer this project. + * \* `admin` - can read, write and administer this project. + */ + permission?: "read" | "write" | "admin"; +}; +type ProjectsAddCollaboratorRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsRemoveCollaboratorEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * username parameter + */ + username: string; +}; +type ProjectsRemoveCollaboratorRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsReviewUserPermissionLevelEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * username parameter + */ + username: string; +}; +type ProjectsReviewUserPermissionLevelRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsListColumnsEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ProjectsListColumnsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsCreateColumnEndpoint = { + /** + * project_id parameter + */ + project_id: number; + /** + * The name of the column. + */ + name: string; +}; +type ProjectsCreateColumnRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type RateLimitGetEndpoint = {}; +type RateLimitGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsDeleteEndpoint = { + /** + * reaction_id parameter + */ + reaction_id: number; +}; +type ReactionsDeleteRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the repository. + */ + name?: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to make the repository private or `false` to make it public. Creating private repositories requires a paid GitHub account. Default: `false`. + * **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. **Note**: You will get a `422` error if the organization restricts [changing repository visibility](https://help.github.com/articles/repository-permission-levels-for-an-organization#changing-the-visibility-of-repositories) to organization owners and a non-owner tries to change the value of private. + */ + private?: boolean; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * Updates the default branch for this repository. + */ + default_branch?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; + /** + * `true` to archive this repository. **Note**: You cannot unarchive repositories through the API. + */ + archived?: boolean; +}; +type ReposUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposDeleteRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListAssigneesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListAssigneesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesCheckAssigneeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * assignee parameter + */ + assignee: string; +}; +type IssuesCheckAssigneeRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposEnableAutomatedSecurityFixesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposEnableAutomatedSecurityFixesRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDisableAutomatedSecurityFixesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposDisableAutomatedSecurityFixesRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListBranchesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Setting to `true` returns only protected branches. When set to `false`, only unprotected branches are returned. Omitting this parameter returns all branches. + */ + protected?: boolean; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListBranchesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetBranchRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetBranchProtectionEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetBranchProtectionRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateBranchProtectionEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * Require status checks to pass before merging. Set to `null` to disable. + */ + required_status_checks: ReposUpdateBranchProtectionParamsRequiredStatusChecks | null; + /** + * Enforce all configured restrictions for administrators. Set to `true` to enforce required status checks for repository administrators. Set to `null` to disable. + */ + enforce_admins: boolean | null; + /** + * Require at least one approving review on a pull request, before merging. Set to `null` to disable. + */ + required_pull_request_reviews: ReposUpdateBranchProtectionParamsRequiredPullRequestReviews | null; + /** + * Restrict who can push to this branch. User, app, and team `restrictions` are only available for organization-owned repositories. Set to `null` to disable. + */ + restrictions: ReposUpdateBranchProtectionParamsRestrictions | null; +}; +type ReposUpdateBranchProtectionRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveBranchProtectionEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposRemoveBranchProtectionRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetProtectedBranchAdminEnforcementEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetProtectedBranchAdminEnforcementRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddProtectedBranchAdminEnforcementEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposAddProtectedBranchAdminEnforcementRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchAdminEnforcementEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposRemoveProtectedBranchAdminEnforcementRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetProtectedBranchPullRequestReviewEnforcementEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateProtectedBranchPullRequestReviewEnforcementEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * Specify which users and teams can dismiss pull request reviews. Pass an empty `dismissal_restrictions` object to disable. User and team `dismissal_restrictions` are only available for organization-owned repositories. Omit this parameter for personal repositories. + */ + dismissal_restrictions?: ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions; + /** + * Set to `true` if you want to automatically dismiss approving reviews when someone pushes a new commit. + */ + dismiss_stale_reviews?: boolean; + /** + * Blocks merging pull requests until [code owners](https://help.github.com/articles/about-code-owners/) have reviewed. + */ + require_code_owner_reviews?: boolean; + /** + * Specifies the number of reviewers required to approve pull requests. Use a number between 1 and 6. + */ + required_approving_review_count?: number; +}; +type ReposUpdateProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchPullRequestReviewEnforcementEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposRemoveProtectedBranchPullRequestReviewEnforcementRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetProtectedBranchRequiredSignaturesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetProtectedBranchRequiredSignaturesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddProtectedBranchRequiredSignaturesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposAddProtectedBranchRequiredSignaturesRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchRequiredSignaturesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposRemoveProtectedBranchRequiredSignaturesRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetProtectedBranchRequiredStatusChecksEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetProtectedBranchRequiredStatusChecksRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateProtectedBranchRequiredStatusChecksEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * Require branches to be up to date before merging. + */ + strict?: boolean; + /** + * The list of status checks to require in order to merge into this branch + */ + contexts?: string[]; +}; +type ReposUpdateProtectedBranchRequiredStatusChecksRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchRequiredStatusChecksEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposRemoveProtectedBranchRequiredStatusChecksRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListProtectedBranchRequiredStatusChecksContextsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposListProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposReplaceProtectedBranchRequiredStatusChecksContextsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +type ReposReplaceProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddProtectedBranchRequiredStatusChecksContextsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +type ReposAddProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchRequiredStatusChecksContextsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * contexts parameter + */ + contexts: string[]; +}; +type ReposRemoveProtectedBranchRequiredStatusChecksContextsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetProtectedBranchRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetProtectedBranchRestrictionsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposRemoveProtectedBranchRestrictionsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetAppsWithAccessToProtectedBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetAppsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListAppsWithAccessToProtectedBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposListAppsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposReplaceProtectedBranchAppRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +type ReposReplaceProtectedBranchAppRestrictionsRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddProtectedBranchAppRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +type ReposAddProtectedBranchAppRestrictionsRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchAppRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * apps parameter + */ + apps: string[]; +}; +type ReposRemoveProtectedBranchAppRestrictionsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetTeamsWithAccessToProtectedBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetTeamsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListProtectedBranchTeamRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposListProtectedBranchTeamRestrictionsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListTeamsWithAccessToProtectedBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposListTeamsWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposReplaceProtectedBranchTeamRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +type ReposReplaceProtectedBranchTeamRestrictionsRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddProtectedBranchTeamRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +type ReposAddProtectedBranchTeamRestrictionsRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchTeamRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * teams parameter + */ + teams: string[]; +}; +type ReposRemoveProtectedBranchTeamRestrictionsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetUsersWithAccessToProtectedBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposGetUsersWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListProtectedBranchUserRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposListProtectedBranchUserRestrictionsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListUsersWithAccessToProtectedBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; +}; +type ReposListUsersWithAccessToProtectedBranchRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposReplaceProtectedBranchUserRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * users parameter + */ + users: string[]; +}; +type ReposReplaceProtectedBranchUserRestrictionsRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddProtectedBranchUserRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * users parameter + */ + users: string[]; +}; +type ReposAddProtectedBranchUserRestrictionsRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveProtectedBranchUserRestrictionsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * branch parameter + */ + branch: string; + /** + * users parameter + */ + users: string[]; +}; +type ReposRemoveProtectedBranchUserRestrictionsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksCreateEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the check. For example, "code-coverage". + */ + name: string; + /** + * The SHA of the commit. + */ + head_sha: string; + /** + * The URL of the integrator's site that has the full details of the check. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * The time that the check run began. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `timed_out`, or `action_required`. When the conclusion is `action_required`, additional details should be provided on the site specified by `details_url`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object) description. + */ + output?: ChecksCreateParamsOutput; + /** + * Displays a button on GitHub that can be clicked to alert your app to do additional tasks. For example, a code linting app can display a button that automatically fixes detected errors. The button created in this object is displayed after the check run completes. When a user clicks the button, GitHub sends the [`check_run.requested_action` webhook](https://developer.github.com/v3/activity/events/types/#checkrunevent) to your app. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksCreateParamsActions[]; +}; +type ChecksCreateRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksUpdateEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * check_run_id parameter + */ + check_run_id: number; + /** + * The name of the check. For example, "code-coverage". + */ + name?: string; + /** + * The URL of the integrator's site that has the full details of the check. + */ + details_url?: string; + /** + * A reference for the run on the integrator's system. + */ + external_id?: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + started_at?: string; + /** + * The current status. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * **Required if you provide `completed_at` or a `status` of `completed`**. The final conclusion of the check. Can be one of `success`, `failure`, `neutral`, `cancelled`, `timed_out`, or `action_required`. + * **Note:** Providing `conclusion` will automatically set the `status` parameter to `completed`. + */ + conclusion?: + | "success" + | "failure" + | "neutral" + | "cancelled" + | "timed_out" + | "action_required"; + /** + * The time the check completed. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + completed_at?: string; + /** + * Check runs can accept a variety of data in the `output` object, including a `title` and `summary` and can optionally provide descriptive details about the run. See the [`output` object](https://developer.github.com/v3/checks/runs/#output-object-1) description. + */ + output?: ChecksUpdateParamsOutput; + /** + * Possible further actions the integrator can perform, which a user may trigger. Each action includes a `label`, `identifier` and `description`. A maximum of three actions are accepted. See the [`actions` object](https://developer.github.com/v3/checks/runs/#actions-object) description. To learn more about check runs and requested actions, see "[Check runs and requested actions](https://developer.github.com/v3/checks/runs/#check-runs-and-requested-actions)." + */ + actions?: ChecksUpdateParamsActions[]; +}; +type ChecksUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksGetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * check_run_id parameter + */ + check_run_id: number; +}; +type ChecksGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksListAnnotationsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * check_run_id parameter + */ + check_run_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ChecksListAnnotationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksCreateSuiteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The sha of the head commit. + */ + head_sha: string; +}; +type ChecksCreateSuiteRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksSetSuitesPreferencesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Enables or disables automatic creation of CheckSuite events upon pushes to the repository. Enabled by default. See the [`auto_trigger_checks` object](https://developer.github.com/v3/checks/suites/#auto_trigger_checks-object) description for details. + */ + auto_trigger_checks?: ChecksSetSuitesPreferencesParamsAutoTriggerChecks[]; +}; +type ChecksSetSuitesPreferencesRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksGetSuiteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * check_suite_id parameter + */ + check_suite_id: number; +}; +type ChecksGetSuiteRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksListForSuiteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * check_suite_id parameter + */ + check_suite_id: number; + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ChecksListForSuiteRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksRerequestSuiteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * check_suite_id parameter + */ + check_suite_id: number; +}; +type ChecksRerequestSuiteRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListCollaboratorsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Filter collaborators returned by their affiliation. Can be one of: + * \* `outside`: All outside collaborators of an organization-owned repository. + * \* `direct`: All collaborators with permissions to an organization-owned repository, regardless of organization membership status. + * \* `all`: All collaborators the authenticated user can see. + */ + affiliation?: "outside" | "direct" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListCollaboratorsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCheckCollaboratorEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * username parameter + */ + username: string; +}; +type ReposCheckCollaboratorRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddCollaboratorEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * username parameter + */ + username: string; + /** + * The permission to grant the collaborator. **Only valid on organization-owned repositories.** Can be one of: + * \* `pull` - can pull, but not push to or administer this repository. + * \* `push` - can pull and push, but not administer this repository. + * \* `admin` - can pull, push and administer this repository. + */ + permission?: "pull" | "push" | "admin"; +}; +type ReposAddCollaboratorRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveCollaboratorEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * username parameter + */ + username: string; +}; +type ReposRemoveCollaboratorRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetCollaboratorPermissionLevelEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * username parameter + */ + username: string; +}; +type ReposGetCollaboratorPermissionLevelRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListCommitCommentsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListCommitCommentsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetCommitCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; +}; +type ReposGetCommitCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateCommitCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The contents of the comment + */ + body: string; +}; +type ReposUpdateCommitCommentRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteCommitCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; +}; +type ReposDeleteCommitCommentRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsListForCommitCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a commit comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReactionsListForCommitCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsCreateForCommitCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the commit comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; +}; +type ReactionsCreateForCommitCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListCommitsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * SHA or branch to start listing commits from. Default: the repository’s default branch (usually `master`). + */ + sha?: string; + /** + * Only commits containing this file path will be returned. + */ + path?: string; + /** + * GitHub login or email address by which to filter by commit author. + */ + author?: string; + /** + * Only commits after this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only commits before this date will be returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + until?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListCommitsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListBranchesForHeadCommitEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * commit_sha parameter + */ + commit_sha: string; +}; +type ReposListBranchesForHeadCommitRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListCommentsForCommitEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * commit_sha parameter + */ + commit_sha: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListCommentsForCommitRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateCommitCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * commit_sha parameter + */ + commit_sha: string; + /** + * The contents of the comment. + */ + body: string; + /** + * Relative path of the file to comment on. + */ + path?: string; + /** + * Line index in the diff to comment on. + */ + position?: number; + /** + * **Deprecated**. Use **position** parameter instead. Line number in the file to comment on. + */ + line?: number; +}; +type ReposCreateCommitCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListPullRequestsAssociatedWithCommitEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * commit_sha parameter + */ + commit_sha: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListPullRequestsAssociatedWithCommitRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetCommitEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; +}; +type ReposGetCommitRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksListForRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; + /** + * Returns check runs with the specified `name`. + */ + check_name?: string; + /** + * Returns check runs with the specified `status`. Can be one of `queued`, `in_progress`, or `completed`. + */ + status?: "queued" | "in_progress" | "completed"; + /** + * Filters check runs by their `completed_at` timestamp. Can be one of `latest` (returning the most recent check runs) or `all`. + */ + filter?: "latest" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ChecksListForRefRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ChecksListSuitesForRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; + /** + * Filters check suites by GitHub App `id`. + */ + app_id?: number; + /** + * Filters checks suites by the name of the [check run](https://developer.github.com/v3/checks/runs/). + */ + check_name?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ChecksListSuitesForRefRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetCombinedStatusForRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; +}; +type ReposGetCombinedStatusForRefRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListStatusesForRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListStatusesForRefRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type CodesOfConductGetForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type CodesOfConductGetForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRetrieveCommunityProfileMetricsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposRetrieveCommunityProfileMetricsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCompareCommitsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * base parameter + */ + base: string; + /** + * head parameter + */ + head: string; +}; +type ReposCompareCommitsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetContentsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * path parameter + */ + path: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; +}; +type ReposGetContentsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateOrUpdateFileEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * path parameter + */ + path: string; + /** + * The commit message. + */ + message: string; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposCreateOrUpdateFileParamsCommitter; + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposCreateOrUpdateFileParamsAuthor; +}; +type ReposCreateOrUpdateFileRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateFileEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * path parameter + */ + path: string; + /** + * The commit message. + */ + message: string; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposCreateFileParamsCommitter; + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposCreateFileParamsAuthor; +}; +type ReposCreateFileRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateFileEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * path parameter + */ + path: string; + /** + * The commit message. + */ + message: string; + /** + * The new file content, using Base64 encoding. + */ + content: string; + /** + * **Required if you are updating a file**. The blob SHA of the file being replaced. + */ + sha?: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * The person that committed the file. Default: the authenticated user. + */ + committer?: ReposUpdateFileParamsCommitter; + /** + * The author of the file. Default: The `committer` or the authenticated user if you omit `committer`. + */ + author?: ReposUpdateFileParamsAuthor; +}; +type ReposUpdateFileRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteFileEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * path parameter + */ + path: string; + /** + * The commit message. + */ + message: string; + /** + * The blob SHA of the file being replaced. + */ + sha: string; + /** + * The branch name. Default: the repository’s default branch (usually `master`) + */ + branch?: string; + /** + * object containing information about the committer. + */ + committer?: ReposDeleteFileParamsCommitter; + /** + * object containing information about the author. + */ + author?: ReposDeleteFileParamsAuthor; +}; +type ReposDeleteFileRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListContributorsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Set to `1` or `true` to include anonymous contributors in results. + */ + anon?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListContributorsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListDeploymentsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The SHA recorded at creation time. + */ + sha?: string; + /** + * The name of the ref. This can be a branch, tag, or SHA. + */ + ref?: string; + /** + * The name of the task for the deployment (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * The name of the environment that was deployed to (e.g., `staging` or `production`). + */ + environment?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListDeploymentsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateDeploymentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The ref to deploy. This can be a branch, tag, or SHA. + */ + ref: string; + /** + * Specifies a task to execute (e.g., `deploy` or `deploy:migrations`). + */ + task?: string; + /** + * Attempts to automatically merge the default branch into the requested ref, if it's behind the default branch. + */ + auto_merge?: boolean; + /** + * The [status](https://developer.github.com/v3/repos/statuses/) contexts to verify against commit status checks. If you omit this parameter, GitHub verifies all unique contexts before creating a deployment. To bypass checking entirely, pass an empty array. Defaults to all unique contexts. + */ + required_contexts?: string[]; + /** + * JSON payload with extra information about the deployment. + */ + payload?: string; + /** + * Name for the target deployment environment (e.g., `production`, `staging`, `qa`). + */ + environment?: string; + /** + * Short description of the deployment. + */ + description?: string; + /** + * Specifies if the given environment is specific to the deployment and will no longer exist at some point in the future. Default: `false` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + transient_environment?: boolean; + /** + * Specifies if the given environment is one that end-users directly interact with. Default: `true` when `environment` is `production` and `false` otherwise. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + production_environment?: boolean; +}; +type ReposCreateDeploymentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetDeploymentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * deployment_id parameter + */ + deployment_id: number; +}; +type ReposGetDeploymentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListDeploymentStatusesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * deployment_id parameter + */ + deployment_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListDeploymentStatusesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateDeploymentStatusEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * deployment_id parameter + */ + deployment_id: number; + /** + * The state of the status. Can be one of `error`, `failure`, `inactive`, `in_progress`, `queued` `pending`, or `success`. **Note:** To use the `inactive` state, you must provide the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. To use the `in_progress` and `queued` states, you must provide the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + state: + | "error" + | "failure" + | "inactive" + | "in_progress" + | "queued" + | "pending" + | "success"; + /** + * The target URL to associate with this status. This URL should contain output to keep the user updated while the task is running or serve as historical information for what happened in the deployment. **Note:** It's recommended to use the `log_url` parameter, which replaces `target_url`. + */ + target_url?: string; + /** + * The full URL of the deployment's output. This parameter replaces `target_url`. We will continue to accept `target_url` to support legacy uses, but we recommend replacing `target_url` with `log_url`. Setting `log_url` will automatically set `target_url` to the same value. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + log_url?: string; + /** + * A short description of the status. The maximum description length is 140 characters. + */ + description?: string; + /** + * Name for the target deployment environment, which can be changed when setting a deploy status. For example, `production`, `staging`, or `qa`. **Note:** This parameter requires you to use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + */ + environment?: "production" | "staging" | "qa"; + /** + * Sets the URL for accessing your environment. Default: `""` + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + environment_url?: string; + /** + * Adds a new `inactive` status to all prior non-transient, non-production environment deployments with the same repository and `environment` name as the created status's deployment. An `inactive` status is only added to deployments that had a `success` state. Default: `true` + * **Note:** To add an `inactive` status to `production` environments, you must use the [`application/vnd.github.flash-preview+json`](https://developer.github.com/v3/previews/#deployment-statuses) custom media type. + * **Note:** This parameter requires you to use the [`application/vnd.github.ant-man-preview+json`](https://developer.github.com/v3/previews/#enhanced-deployments) custom media type. + */ + auto_inactive?: boolean; +}; +type ReposCreateDeploymentStatusRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetDeploymentStatusEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * deployment_id parameter + */ + deployment_id: number; + /** + * status_id parameter + */ + status_id: number; +}; +type ReposGetDeploymentStatusRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateDispatchEventEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * **Required:** A custom webhook event name. + */ + event_type?: string; +}; +type ReposCreateDispatchEventRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListDownloadsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListDownloadsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetDownloadEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * download_id parameter + */ + download_id: number; +}; +type ReposGetDownloadRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteDownloadEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * download_id parameter + */ + download_id: number; +}; +type ReposDeleteDownloadRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListRepoEventsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListRepoEventsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListForksEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The sort order. Can be either `newest`, `oldest`, or `stargazers`. + */ + sort?: "newest" | "oldest" | "stargazers"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListForksRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateForkEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Optional parameter to specify the organization name if forking into an organization. + */ + organization?: string; +}; +type ReposCreateForkRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitCreateBlobEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The new blob's content. + */ + content: string; + /** + * The encoding used for `content`. Currently, `"utf-8"` and `"base64"` are supported. + */ + encoding?: string; +}; +type GitCreateBlobRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitGetBlobEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * file_sha parameter + */ + file_sha: string; +}; +type GitGetBlobRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitCreateCommitEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The commit message + */ + message: string; + /** + * The SHA of the tree object this commit points to + */ + tree: string; + /** + * The SHAs of the commits that were the parents of this commit. If omitted or empty, the commit will be written as a root commit. For a single parent, an array of one SHA should be provided; for a merge commit, an array of more than one should be provided. + */ + parents: string[]; + /** + * Information about the author of the commit. By default, the `author` will be the authenticated user and the current date. See the `author` and `committer` object below for details. + */ + author?: GitCreateCommitParamsAuthor; + /** + * Information about the person who is making the commit. By default, `committer` will use the information set in `author`. See the `author` and `committer` object below for details. + */ + committer?: GitCreateCommitParamsCommitter; + /** + * The [PGP signature](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) of the commit. GitHub adds the signature to the `gpgsig` header of the created commit. For a commit signature to be verifiable by Git or GitHub, it must be an ASCII-armored detached PGP signature over the string commit as it would be written to the object database. To pass a `signature` parameter, you need to first manually create a valid PGP signature, which can be complicated. You may find it easier to [use the command line](https://git-scm.com/book/id/v2/Git-Tools-Signing-Your-Work) to create signed commits. + */ + signature?: string; +}; +type GitCreateCommitRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitGetCommitEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * commit_sha parameter + */ + commit_sha: string; +}; +type GitGetCommitRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitListMatchingRefsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GitListMatchingRefsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitGetRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; +}; +type GitGetRefRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitCreateRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the fully qualified reference (ie: `refs/heads/master`). If it doesn't start with 'refs' and have at least two slashes, it will be rejected. + */ + ref: string; + /** + * The SHA1 value for this reference. + */ + sha: string; +}; +type GitCreateRefRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitUpdateRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; + /** + * The SHA1 value to set this reference to + */ + sha: string; + /** + * Indicates whether to force the update or to make sure the update is a fast-forward update. Leaving this out or setting it to `false` will make sure you're not overwriting work. + */ + force?: boolean; +}; +type GitUpdateRefRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitDeleteRefEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * ref parameter + */ + ref: string; +}; +type GitDeleteRefRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitCreateTagEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The tag's name. This is typically a version (e.g., "v0.0.1"). + */ + tag: string; + /** + * The tag message. + */ + message: string; + /** + * The SHA of the git object this is tagging. + */ + object: string; + /** + * The type of the object we're tagging. Normally this is a `commit` but it can also be a `tree` or a `blob`. + */ + type: "commit" | "tree" | "blob"; + /** + * An object with information about the individual creating the tag. + */ + tagger?: GitCreateTagParamsTagger; +}; +type GitCreateTagRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitGetTagEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * tag_sha parameter + */ + tag_sha: string; +}; +type GitGetTagRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitCreateTreeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Objects (of `path`, `mode`, `type`, and `sha`) specifying a tree structure. + */ + tree: GitCreateTreeParamsTree[]; + /** + * The SHA1 of the tree you want to update with new data. If you don't set this, the commit will be created on top of everything; however, it will only contain your change, the rest of your files will show up as deleted. + */ + base_tree?: string; +}; +type GitCreateTreeRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GitGetTreeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * tree_sha parameter + */ + tree_sha: string; + /** + * recursive parameter + */ + recursive?: "1"; +}; +type GitGetTreeRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListHooksEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListHooksRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateHookEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Use `web` to create a webhook. Default: `web`. This parameter only accepts the value `web`. + */ + name?: string; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config: ReposCreateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. + */ + events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +type ReposCreateHookRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetHookEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * hook_id parameter + */ + hook_id: number; +}; +type ReposGetHookRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateHookEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * hook_id parameter + */ + hook_id: number; + /** + * Key/value pairs to provide settings for this webhook. [These are defined below](https://developer.github.com/v3/repos/hooks/#create-hook-config-params). + */ + config?: ReposUpdateHookParamsConfig; + /** + * Determines what [events](https://developer.github.com/v3/activity/events/types/) the hook is triggered for. This replaces the entire array of events. + */ + events?: string[]; + /** + * Determines a list of events to be added to the list of events that the Hook triggers for. + */ + add_events?: string[]; + /** + * Determines a list of events to be removed from the list of events that the Hook triggers for. + */ + remove_events?: string[]; + /** + * Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. + */ + active?: boolean; +}; +type ReposUpdateHookRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteHookEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * hook_id parameter + */ + hook_id: number; +}; +type ReposDeleteHookRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposPingHookEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * hook_id parameter + */ + hook_id: number; +}; +type ReposPingHookRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposTestPushHookEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * hook_id parameter + */ + hook_id: number; +}; +type ReposTestPushHookRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsStartImportEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The URL of the originating repository. + */ + vcs_url: string; + /** + * The originating VCS type. Can be one of `subversion`, `git`, `mercurial`, or `tfvc`. Please be aware that without this parameter, the import job will take additional time to detect the VCS type before beginning the import. This detection step will be reflected in the response. + */ + vcs?: "subversion" | "git" | "mercurial" | "tfvc"; + /** + * If authentication is required, the username to provide to `vcs_url`. + */ + vcs_username?: string; + /** + * If authentication is required, the password to provide to `vcs_url`. + */ + vcs_password?: string; + /** + * For a tfvc import, the name of the project that is being imported. + */ + tfvc_project?: string; +}; +type MigrationsStartImportRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsGetImportProgressEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type MigrationsGetImportProgressRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsUpdateImportEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The username to provide to the originating repository. + */ + vcs_username?: string; + /** + * The password to provide to the originating repository. + */ + vcs_password?: string; +}; +type MigrationsUpdateImportRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsCancelImportEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type MigrationsCancelImportRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsGetCommitAuthorsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Only authors found after this id are returned. Provide the highest author ID you've seen so far. New authors may be added to the list at any point while the importer is performing the `raw` step. + */ + since?: string; +}; +type MigrationsGetCommitAuthorsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsMapCommitAuthorEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * author_id parameter + */ + author_id: number; + /** + * The new Git author email. + */ + email?: string; + /** + * The new Git author name. + */ + name?: string; +}; +type MigrationsMapCommitAuthorRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsGetLargeFilesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type MigrationsGetLargeFilesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsSetLfsPreferenceEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Can be one of `opt_in` (large files will be stored using Git LFS) or `opt_out` (large files will be removed during the import). + */ + use_lfs: "opt_in" | "opt_out"; +}; +type MigrationsSetLfsPreferenceRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsGetRepoInstallationEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type AppsGetRepoInstallationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsFindRepoInstallationEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type AppsFindRepoInstallationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type InteractionsGetRestrictionsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type InteractionsGetRestrictionsForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type InteractionsAddOrUpdateRestrictionsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Specifies the group of GitHub users who can comment, open issues, or create pull requests for the given repository. Must be one of: `existing_users`, `contributors_only`, or `collaborators_only`. + */ + limit: "existing_users" | "contributors_only" | "collaborators_only"; +}; +type InteractionsAddOrUpdateRestrictionsForRepoRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type InteractionsRemoveRestrictionsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type InteractionsRemoveRestrictionsForRepoRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListInvitationsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListInvitationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteInvitationEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * invitation_id parameter + */ + invitation_id: number; +}; +type ReposDeleteInvitationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateInvitationEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * invitation_id parameter + */ + invitation_id: number; + /** + * The permissions that the associated user will have on the repository. Valid values are `read`, `write`, and `admin`. + */ + permissions?: "read" | "write" | "admin"; +}; +type ReposUpdateInvitationRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * If an `integer` is passed, it should refer to a milestone by its `number` field. If the string `*` is passed, issues with any milestone are accepted. If the string `none` is passed, issues without milestones are returned. + */ + milestone?: string; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Can be the name of a user. Pass in `none` for issues with no assigned user, and `*` for issues assigned to any user. + */ + assignee?: string; + /** + * The user that created the issue. + */ + creator?: string; + /** + * A user that's mentioned in the issue. + */ + mentioned?: string; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesCreateEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The title of the issue. + */ + title: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. _NOTE: Only users with push access can set the assignee for new issues. The assignee is silently dropped otherwise. **This field is deprecated.**_ + */ + assignee?: string; + /** + * The `number` of the milestone to associate this issue with. _NOTE: Only users with push access can set the milestone for new issues. The milestone is silently dropped otherwise._ + */ + milestone?: number; + /** + * Labels to associate with this issue. _NOTE: Only users with push access can set labels for new issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * Logins for Users to assign to this issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; +}; +type IssuesCreateRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListCommentsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Either `created` or `updated`. + */ + sort?: "created" | "updated"; + /** + * Either `asc` or `desc`. Ignored without the `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; +}; +type IssuesListCommentsForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesGetCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesGetCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesUpdateCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The contents of the comment. + */ + body: string; +}; +type IssuesUpdateCommentRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesDeleteCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; +}; +type IssuesDeleteCommentRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsListForIssueCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReactionsListForIssueCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsCreateForIssueCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; +}; +type ReactionsCreateForIssueCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListEventsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListEventsForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesGetEventEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * event_id parameter + */ + event_id: number; +}; +type IssuesGetEventRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesGetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; +}; +type IssuesGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesUpdateEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * The title of the issue. + */ + title?: string; + /** + * The contents of the issue. + */ + body?: string; + /** + * Login for the user that this issue should be assigned to. **This field is deprecated.** + */ + assignee?: string; + /** + * State of the issue. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The `number` of the milestone to associate this issue with or `null` to remove current. _NOTE: Only users with push access can set the milestone for issues. The milestone is silently dropped otherwise._ + */ + milestone?: number | null; + /** + * Labels to associate with this issue. Pass one or more Labels to _replace_ the set of Labels on this Issue. Send an empty array (`[]`) to clear all Labels from the Issue. _NOTE: Only users with push access can set labels for issues. Labels are silently dropped otherwise._ + */ + labels?: string[]; + /** + * Logins for Users to assign to this issue. Pass one or more user logins to _replace_ the set of assignees on this Issue. Send an empty array (`[]`) to clear all assignees from the Issue. _NOTE: Only users with push access can set assignees for new issues. Assignees are silently dropped otherwise._ + */ + assignees?: string[]; +}; +type IssuesUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesAddAssigneesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * Usernames of people to assign this issue to. _NOTE: Only users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; +}; +type IssuesAddAssigneesRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesRemoveAssigneesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * Usernames of assignees to remove from an issue. _NOTE: Only users with push access can remove assignees from an issue. Assignees are silently ignored otherwise._ + */ + assignees?: string[]; +}; +type IssuesRemoveAssigneesRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListCommentsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * Only comments updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListCommentsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesCreateCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * The contents of the comment. + */ + body: string; +}; +type IssuesCreateCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListEventsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListEventsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListLabelsOnIssueEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListLabelsOnIssueRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesAddLabelsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * The name of the label to add to the issue. Must contain at least one label. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels: string[]; +}; +type IssuesAddLabelsRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesReplaceLabelsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * The names of the labels to add to the issue. You can pass an empty array to remove all labels. **Note:** Alternatively, you can pass a single label as a `string` or an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. + */ + labels?: string[]; +}; +type IssuesReplaceLabelsRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesRemoveLabelsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; +}; +type IssuesRemoveLabelsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesRemoveLabelEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * name parameter + */ + name: string; +}; +type IssuesRemoveLabelRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesLockEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * The reason for locking the issue or pull request conversation. Lock will fail if you don't use one of these reasons: + * \* `off-topic` + * \* `too heated` + * \* `resolved` + * \* `spam` + */ + lock_reason?: "off-topic" | "too heated" | "resolved" | "spam"; +}; +type IssuesLockRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesUnlockEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; +}; +type IssuesUnlockRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsListForIssueEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to an issue. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReactionsListForIssueRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsCreateForIssueEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the issue. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; +}; +type ReactionsCreateForIssueRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListEventsForTimelineEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * issue_number parameter + */ + issue_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListEventsForTimelineRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListDeployKeysEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListDeployKeysRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAddDeployKeyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * A name for the key. + */ + title?: string; + /** + * The contents of the key. + */ + key: string; + /** + * If `true`, the key will only be able to read repository contents. Otherwise, the key will be able to read and write. + * + * Deploy keys with write access can perform the same actions as an organization member with admin access, or a collaborator on a personal repository. For more information, see "[Repository permission levels for an organization](https://help.github.com/articles/repository-permission-levels-for-an-organization/)" and "[Permission levels for a user account repository](https://help.github.com/articles/permission-levels-for-a-user-account-repository/)." + */ + read_only?: boolean; +}; +type ReposAddDeployKeyRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetDeployKeyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * key_id parameter + */ + key_id: number; +}; +type ReposGetDeployKeyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRemoveDeployKeyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * key_id parameter + */ + key_id: number; +}; +type ReposRemoveDeployKeyRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListLabelsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListLabelsForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesCreateLabelEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + name: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color: string; + /** + * A short description of the label. + */ + description?: string; +}; +type IssuesCreateLabelRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesGetLabelEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * name parameter + */ + name: string; +}; +type IssuesGetLabelRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesUpdateLabelEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * name parameter + */ + name: string; + /** + * The new name of the label. Emoji can be added to label names, using either native emoji or colon-style markup. For example, typing `:strawberry:` will render the emoji ![:strawberry:](https://github.githubassets.com/images/icons/emoji/unicode/1f353.png ":strawberry:"). For a full list of available emoji and codes, see [emoji-cheat-sheet.com](http://emoji-cheat-sheet.com/). + */ + new_name?: string; + /** + * The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`. + */ + color?: string; + /** + * A short description of the label. + */ + description?: string; +}; +type IssuesUpdateLabelRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesDeleteLabelEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * name parameter + */ + name: string; +}; +type IssuesDeleteLabelRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListLanguagesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposListLanguagesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type LicensesGetForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type LicensesGetForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposMergeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the base branch that the head will be merged into. + */ + base: string; + /** + * The head to merge. This can be a branch name or a commit SHA1. + */ + head: string; + /** + * Commit message to use for the merge commit. If omitted, a default message will be used. + */ + commit_message?: string; +}; +type ReposMergeRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListMilestonesForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The state of the milestone. Either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * What to sort results by. Either `due_on` or `completeness`. + */ + sort?: "due_on" | "completeness"; + /** + * The direction of the sort. Either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListMilestonesForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesCreateMilestoneEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The title of the milestone. + */ + title: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; +}; +type IssuesCreateMilestoneRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesGetMilestoneEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * milestone_number parameter + */ + milestone_number: number; +}; +type IssuesGetMilestoneRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesUpdateMilestoneEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * milestone_number parameter + */ + milestone_number: number; + /** + * The title of the milestone. + */ + title?: string; + /** + * The state of the milestone. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * A description of the milestone. + */ + description?: string; + /** + * The milestone due date. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + due_on?: string; +}; +type IssuesUpdateMilestoneRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesDeleteMilestoneEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * milestone_number parameter + */ + milestone_number: number; +}; +type IssuesDeleteMilestoneRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListLabelsForMilestoneEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * milestone_number parameter + */ + milestone_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListLabelsForMilestoneRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListNotificationsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * If `true`, show notifications marked as read. + */ + all?: boolean; + /** + * If `true`, only shows notifications in which the user is directly participating or mentioned. + */ + participating?: boolean; + /** + * Only show notifications updated after the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Only show notifications updated before the given time. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + before?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListNotificationsForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityMarkNotificationsAsReadForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Describes the last point that notifications were checked. Anything updated since this time will not be updated. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Default: The current timestamp. + */ + last_read_at?: string; +}; +type ActivityMarkNotificationsAsReadForRepoRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetPagesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetPagesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposEnablePagesSiteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * source parameter + */ + source?: ReposEnablePagesSiteParamsSource; +}; +type ReposEnablePagesSiteRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDisablePagesSiteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposDisablePagesSiteRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateInformationAboutPagesSiteEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Specify a custom domain for the repository. Sending a `null` value will remove the custom domain. For more about custom domains, see "[Using a custom domain with GitHub Pages](https://help.github.com/articles/using-a-custom-domain-with-github-pages/)." + */ + cname?: string; + /** + * Update the source for the repository. Must include the branch name, and may optionally specify the subdirectory `/docs`. Possible values are `"gh-pages"`, `"master"`, and `"master /docs"`. + */ + source?: '"gh-pages"' | '"master"' | '"master /docs"'; +}; +type ReposUpdateInformationAboutPagesSiteRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposRequestPageBuildEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposRequestPageBuildRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListPagesBuildsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListPagesBuildsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetLatestPagesBuildEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetLatestPagesBuildRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetPagesBuildEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * build_id parameter + */ + build_id: number; +}; +type ReposGetPagesBuildRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsListForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ProjectsListForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsCreateForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +}; +type ProjectsCreateForRepoRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsListEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Either `open`, `closed`, or `all` to filter by state. + */ + state?: "open" | "closed" | "all"; + /** + * Filter pulls by head user or head organization and branch name in the format of `user:ref-name` or `organization:ref-name`. For example: `github:new-script-format` or `octocat:test-branch`. + */ + head?: string; + /** + * Filter pulls by base branch name. Example: `gh-pages`. + */ + base?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `popularity` (comment count) or `long-running` (age, filtering by pulls updated in the last month). + */ + sort?: "created" | "updated" | "popularity" | "long-running"; + /** + * The direction of the sort. Can be either `asc` or `desc`. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsCreateEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The title of the new pull request. + */ + title: string; + /** + * The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace `head` with a user like this: `username:branch`. + */ + head: string; + /** + * The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. + */ + base: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; + /** + * Indicates whether the pull request is a draft. See "[Draft Pull Requests](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests)" in the GitHub Help documentation to learn more. + */ + draft?: boolean; +}; +type PullsCreateRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsListCommentsForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsListCommentsForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsGetCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; +}; +type PullsGetCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsUpdateCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The text of the reply to the review comment. + */ + body: string; +}; +type PullsUpdateCommentRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsDeleteCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; +}; +type PullsDeleteCommentRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsListForPullRequestReviewCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a pull request review comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReactionsListForPullRequestReviewCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsCreateForPullRequestReviewCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the pull request review comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; +}; +type ReactionsCreateForPullRequestReviewCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsGetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; +}; +type PullsGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsUpdateEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * The title of the pull request. + */ + title?: string; + /** + * The contents of the pull request. + */ + body?: string; + /** + * State of this Pull Request. Either `open` or `closed`. + */ + state?: "open" | "closed"; + /** + * The name of the branch you want your changes pulled into. This should be an existing branch on the current repository. You cannot update the base branch on a pull request to point to another repository. + */ + base?: string; + /** + * Indicates whether [maintainers can modify](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request. + */ + maintainer_can_modify?: boolean; +}; +type PullsUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsListCommentsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * Can be either `created` or `updated` comments. + */ + sort?: "created" | "updated"; + /** + * Can be either `asc` or `desc`. Ignored without `sort` parameter. + */ + direction?: "asc" | "desc"; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only returns comments `updated` at or after this time. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsListCommentsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsCreateCommentEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; +}; +type PullsCreateCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsCreateCommentReplyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * The text of the review comment. + */ + body: string; + /** + * The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`. + */ + commit_id: string; + /** + * The relative path to the file that necessitates a comment. + */ + path: string; + /** + * **Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above. + */ + position?: number; + /** + * **Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://help.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation. + */ + side?: "LEFT" | "RIGHT"; + /** + * **Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to. + */ + line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. + */ + start_line?: number; + /** + * **Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://help.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context. + */ + start_side?: "LEFT" | "RIGHT" | "side"; +}; +type PullsCreateCommentReplyRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsCreateReviewCommentReplyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * comment_id parameter + */ + comment_id: number; + /** + * The text of the review comment. + */ + body: string; +}; +type PullsCreateReviewCommentReplyRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsListCommitsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsListCommitsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsListFilesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsListFilesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsCheckIfMergedEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; +}; +type PullsCheckIfMergedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsMergeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * Title for the automatic commit message. + */ + commit_title?: string; + /** + * Extra detail to append to automatic commit message. + */ + commit_message?: string; + /** + * SHA that pull request head must match to allow merge. + */ + sha?: string; + /** + * Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`. + */ + merge_method?: "merge" | "squash" | "rebase"; +}; +type PullsMergeRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsListReviewRequestsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsListReviewRequestsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsCreateReviewRequestEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * An array of user `login`s that will be requested. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be requested. + */ + team_reviewers?: string[]; +}; +type PullsCreateReviewRequestRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsDeleteReviewRequestEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * An array of user `login`s that will be removed. + */ + reviewers?: string[]; + /** + * An array of team `slug`s that will be removed. + */ + team_reviewers?: string[]; +}; +type PullsDeleteReviewRequestRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsListReviewsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsListReviewsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsCreateReviewEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * The SHA of the commit that needs a review. Not using the latest commit SHA may render your review comment outdated if a subsequent commit modifies the line you specify as the `position`. Defaults to the most recent commit in the pull request when you do not specify a value. + */ + commit_id?: string; + /** + * **Required** when using `REQUEST_CHANGES` or `COMMENT` for the `event` parameter. The body text of the pull request review. + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. By leaving this blank, you set the review action state to `PENDING`, which means you will need to [submit the pull request review](https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review) when you are ready. + */ + event?: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; + /** + * Use the following table to specify the location, destination, and contents of the draft review comment. + */ + comments?: PullsCreateReviewParamsComments[]; +}; +type PullsCreateReviewRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsGetReviewEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * review_id parameter + */ + review_id: number; +}; +type PullsGetReviewRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsDeletePendingReviewEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * review_id parameter + */ + review_id: number; +}; +type PullsDeletePendingReviewRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsUpdateReviewEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * review_id parameter + */ + review_id: number; + /** + * The body text of the pull request review. + */ + body: string; +}; +type PullsUpdateReviewRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsGetCommentsForReviewEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * review_id parameter + */ + review_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type PullsGetCommentsForReviewRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsDismissReviewEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * review_id parameter + */ + review_id: number; + /** + * The message for the pull request review dismissal + */ + message: string; +}; +type PullsDismissReviewRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsSubmitReviewEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * review_id parameter + */ + review_id: number; + /** + * The body text of the pull request review + */ + body?: string; + /** + * The review action you want to perform. The review actions include: `APPROVE`, `REQUEST_CHANGES`, or `COMMENT`. When you leave this blank, the API returns _HTTP 422 (Unrecognizable entity)_ and sets the review action state to `PENDING`, which means you will need to re-submit the pull request review using a review action. + */ + event: "APPROVE" | "REQUEST_CHANGES" | "COMMENT"; +}; +type PullsSubmitReviewRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type PullsUpdateBranchEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * pull_number parameter + */ + pull_number: number; + /** + * The expected SHA of the pull request's HEAD ref. This is the most recent commit on the pull request's branch. If the expected SHA does not match the pull request's HEAD, you will receive a `422 Unprocessable Entity` status. You can use the "[List commits on a repository](https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository)" endpoint to find the most recent commit SHA. Default: SHA of the pull request's current HEAD ref. + */ + expected_head_sha?: string; +}; +type PullsUpdateBranchRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetReadmeEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the commit/branch/tag. Default: the repository’s default branch (usually `master`) + */ + ref?: string; +}; +type ReposGetReadmeRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListReleasesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListReleasesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateReleaseEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The name of the tag. + */ + tag_name: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` to create a draft (unpublished) release, `false` to create a published one. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease. `false` to identify the release as a full release. + */ + prerelease?: boolean; +}; +type ReposCreateReleaseRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetReleaseAssetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * asset_id parameter + */ + asset_id: number; +}; +type ReposGetReleaseAssetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateReleaseAssetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * asset_id parameter + */ + asset_id: number; + /** + * The file name of the asset. + */ + name?: string; + /** + * An alternate short description of the asset. Used in place of the filename. + */ + label?: string; +}; +type ReposUpdateReleaseAssetRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteReleaseAssetEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * asset_id parameter + */ + asset_id: number; +}; +type ReposDeleteReleaseAssetRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetLatestReleaseEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetLatestReleaseRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetReleaseByTagEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * tag parameter + */ + tag: string; +}; +type ReposGetReleaseByTagRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetReleaseEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * release_id parameter + */ + release_id: number; +}; +type ReposGetReleaseRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposUpdateReleaseEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * release_id parameter + */ + release_id: number; + /** + * The name of the tag. + */ + tag_name?: string; + /** + * Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually `master`). + */ + target_commitish?: string; + /** + * The name of the release. + */ + name?: string; + /** + * Text describing the contents of the tag. + */ + body?: string; + /** + * `true` makes the release a draft, and `false` publishes the release. + */ + draft?: boolean; + /** + * `true` to identify the release as a prerelease, `false` to identify the release as a full release. + */ + prerelease?: boolean; +}; +type ReposUpdateReleaseRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeleteReleaseEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * release_id parameter + */ + release_id: number; +}; +type ReposDeleteReleaseRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListAssetsForReleaseEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * release_id parameter + */ + release_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListAssetsForReleaseRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListStargazersForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListStargazersForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetCodeFrequencyStatsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetCodeFrequencyStatsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetCommitActivityStatsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetCommitActivityStatsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetContributorsStatsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetContributorsStatsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetParticipationStatsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetParticipationStatsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetPunchCardStatsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetPunchCardStatsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateStatusEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * sha parameter + */ + sha: string; + /** + * The state of the status. Can be one of `error`, `failure`, `pending`, or `success`. + */ + state: "error" | "failure" | "pending" | "success"; + /** + * The target URL to associate with this status. This URL will be linked from the GitHub UI to allow users to easily see the source of the status. + * For example, if your continuous integration system is posting build status, you would want to provide the deep link for the build output for this specific SHA: + * `http://ci.example.com/user/repo/build/sha` + */ + target_url?: string; + /** + * A short description of the status. + */ + description?: string; + /** + * A string label to differentiate this status from the status of other systems. + */ + context?: string; +}; +type ReposCreateStatusRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListWatchersForRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListWatchersForRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityGetRepoSubscriptionEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityGetRepoSubscriptionRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivitySetRepoSubscriptionEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Determines if notifications should be received from this repository. + */ + subscribed?: boolean; + /** + * Determines if all notifications should be blocked from this repository. + */ + ignored?: boolean; +}; +type ActivitySetRepoSubscriptionRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityDeleteRepoSubscriptionEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityDeleteRepoSubscriptionRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListTagsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListTagsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListTeamsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListTeamsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListTopicsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposListTopicsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposReplaceTopicsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * An array of topics to add to the repository. Pass one or more topics to _replace_ the set of existing topics. Send an empty array (`[]`) to clear all topics from the repository. **Note:** Topic `names` cannot contain uppercase letters. + */ + names: string[]; +}; +type ReposReplaceTopicsRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetClonesEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; +}; +type ReposGetClonesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetTopPathsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetTopPathsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetTopReferrersEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposGetTopReferrersRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetViewsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * Must be one of: `day`, `week`. + */ + per?: "day" | "week"; +}; +type ReposGetViewsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposTransferEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * **Required:** The username or organization name the repository will be transferred to. + */ + 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?: number[]; +}; +type ReposTransferRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCheckVulnerabilityAlertsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposCheckVulnerabilityAlertsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposEnableVulnerabilityAlertsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposEnableVulnerabilityAlertsRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDisableVulnerabilityAlertsEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ReposDisableVulnerabilityAlertsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposGetArchiveLinkEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * archive_format parameter + */ + archive_format: string; + /** + * ref parameter + */ + ref: string; +}; +type ReposGetArchiveLinkRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateUsingTemplateEndpoint = { + /** + * template_owner parameter + */ + template_owner: string; + /** + * template_repo parameter + */ + template_repo: string; + /** + * The organization or person who will own the new repository. To create a new repository in an organization, the authenticated user must be a member of the specified organization. + */ + owner?: string; + /** + * The name of the new repository. + */ + name: string; + /** + * A short description of the new repository. + */ + description?: string; + /** + * Either `true` to create a new private repository or `false` to create a new public one. + */ + private?: boolean; +}; +type ReposCreateUsingTemplateRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListPublicEndpoint = { + /** + * The integer ID of the last Repository that you've seen. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListPublicRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimListProvisionedIdentitiesEndpoint = { + /** + * org parameter + */ + org: string; + /** + * Used for pagination: the index of the first result to return. + */ + startIndex?: number; + /** + * Used for pagination: the number of results to return. + */ + count?: number; + /** + * Filters results using the equals query parameter operator (`eq`). You can filter results that are equal to `id`, `userName`, `emails`, and `external_id`. For example, to search for an identity with the `userName` Octocat, you would use this query: `?filter=userName%20eq%20\"Octocat\"`. + */ + filter?: string; +}; +type ScimListProvisionedIdentitiesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimProvisionAndInviteUsersEndpoint = { + /** + * org parameter + */ + org: string; +}; +type ScimProvisionAndInviteUsersRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimProvisionInviteUsersEndpoint = { + /** + * org parameter + */ + org: string; +}; +type ScimProvisionInviteUsersRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimGetProvisioningDetailsForUserEndpoint = { + /** + * org parameter + */ + org: string; + /** + * scim_user_id parameter + */ + scim_user_id: number; +}; +type ScimGetProvisioningDetailsForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimReplaceProvisionedUserInformationEndpoint = { + /** + * org parameter + */ + org: string; + /** + * scim_user_id parameter + */ + scim_user_id: number; +}; +type ScimReplaceProvisionedUserInformationRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimUpdateProvisionedOrgMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * scim_user_id parameter + */ + scim_user_id: number; +}; +type ScimUpdateProvisionedOrgMembershipRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimUpdateUserAttributeEndpoint = { + /** + * org parameter + */ + org: string; + /** + * scim_user_id parameter + */ + scim_user_id: number; +}; +type ScimUpdateUserAttributeRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ScimRemoveUserFromOrgEndpoint = { + /** + * org parameter + */ + org: string; + /** + * scim_user_id parameter + */ + scim_user_id: number; +}; +type ScimRemoveUserFromOrgRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchCodeEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching code](https://help.github.com/articles/searching-code/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query. Can only be `indexed`, which indicates how recently a file has been indexed by the GitHub search infrastructure. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "indexed"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type SearchCodeRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchCommitsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching commits](https://help.github.com/articles/searching-commits/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by `author-date` or `committer-date`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "author-date" | "committer-date"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type SearchCommitsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchIssuesAndPullRequestsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type SearchIssuesAndPullRequestsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchIssuesEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching issues and pull requests](https://help.github.com/articles/searching-issues-and-pull-requests/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by the number of `comments`, `reactions`, `reactions-+1`, `reactions--1`, `reactions-smile`, `reactions-thinking_face`, `reactions-heart`, `reactions-tada`, or `interactions`. You can also sort results by how recently the items were `created` or `updated`, Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: + | "comments" + | "reactions" + | "reactions-+1" + | "reactions--1" + | "reactions-smile" + | "reactions-thinking_face" + | "reactions-heart" + | "reactions-tada" + | "interactions" + | "created" + | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type SearchIssuesRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchLabelsEndpoint = { + /** + * The id of the repository. + */ + repository_id: number; + /** + * The search keywords. This endpoint does not accept qualifiers in the query. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; + /** + * Sorts the results of your query by when the label was `created` or `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "created" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; +}; +type SearchLabelsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchReposEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching for repositories](https://help.github.com/articles/searching-for-repositories/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `stars`, `forks`, or `help-wanted-issues` or how recently the items were `updated`. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "stars" | "forks" | "help-wanted-issues" | "updated"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type SearchReposRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchTopicsEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). + */ + q: string; +}; +type SearchTopicsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type SearchUsersEndpoint = { + /** + * The query contains one or more search keywords and qualifiers. Qualifiers allow you to limit your search to specific areas of GitHub. The REST API supports the same qualifiers as GitHub.com. To learn more about the format of the query, see [Constructing a search query](https://developer.github.com/v3/search/#constructing-a-search-query). See "[Searching users](https://help.github.com/articles/searching-users/)" for a detailed list of qualifiers. + */ + q: string; + /** + * Sorts the results of your query by number of `followers` or `repositories`, or when the person `joined` GitHub. Default: [best match](https://developer.github.com/v3/search/#ranking-search-results) + */ + sort?: "followers" | "repositories" | "joined"; + /** + * Determines whether the first search result returned is the highest number of matches (`desc`) or lowest number of matches (`asc`). This parameter is ignored unless you provide `sort`. + */ + order?: "desc" | "asc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type SearchUsersRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsGetEndpoint = { + /** + * team_id parameter + */ + team_id: number; +}; +type TeamsGetRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsUpdateEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * The name of the team. + */ + name: string; + /** + * The description of the team. + */ + description?: string; + /** + * The level of privacy this team should have. Editing teams without specifying this parameter leaves `privacy` intact. The options are: + * **For a non-nested team:** + * \* `secret` - only visible to organization owners and members of this team. + * \* `closed` - visible to all members of this organization. + * **For a parent or child team:** + * \* `closed` - visible to all members of this organization. + */ + privacy?: "secret" | "closed"; + /** + * **Deprecated**. The permission that new repositories will be added to the team with when none is specified. Can be one of: + * \* `pull` - team members can pull, but not push to or administer newly-added repositories. + * \* `push` - team members can pull and push, but not administer newly-added repositories. + * \* `admin` - team members can pull, push and administer newly-added repositories. + */ + permission?: "pull" | "push" | "admin"; + /** + * The ID of a team to set as the parent team. **Note**: You must pass the `hellcat-preview` media type to use this parameter. + */ + parent_team_id?: number; +}; +type TeamsUpdateRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsDeleteEndpoint = { + /** + * team_id parameter + */ + team_id: number; +}; +type TeamsDeleteRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListDiscussionsEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListDiscussionsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsCreateDiscussionEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * The discussion post's title. + */ + title: string; + /** + * The discussion post's body text. + */ + body: string; + /** + * Private posts are only visible to team members, organization owners, and team maintainers. Public posts are visible to all members of the organization. Set to `true` to create a private post. + */ + private?: boolean; +}; +type TeamsCreateDiscussionRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsGetDiscussionEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; +}; +type TeamsGetDiscussionRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsUpdateDiscussionEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * The discussion post's title. + */ + title?: string; + /** + * The discussion post's body text. + */ + body?: string; +}; +type TeamsUpdateDiscussionRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsDeleteDiscussionEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; +}; +type TeamsDeleteDiscussionRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListDiscussionCommentsEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * Sorts the discussion comments by the date they were created. To return the oldest comments first, set to `asc`. Can be one of `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListDiscussionCommentsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsCreateDiscussionCommentEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +type TeamsCreateDiscussionCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsGetDiscussionCommentEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * comment_number parameter + */ + comment_number: number; +}; +type TeamsGetDiscussionCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsUpdateDiscussionCommentEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * comment_number parameter + */ + comment_number: number; + /** + * The discussion comment's body text. + */ + body: string; +}; +type TeamsUpdateDiscussionCommentRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsDeleteDiscussionCommentEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * comment_number parameter + */ + comment_number: number; +}; +type TeamsDeleteDiscussionCommentRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsListForTeamDiscussionCommentEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * comment_number parameter + */ + comment_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion comment. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReactionsListForTeamDiscussionCommentRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsCreateForTeamDiscussionCommentEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * comment_number parameter + */ + comment_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion comment. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; +}; +type ReactionsCreateForTeamDiscussionCommentRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsListForTeamDiscussionEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * Returns a single [reaction type](https://developer.github.com/v3/reactions/#reaction-types). Omit this parameter to list all reactions to a team discussion. + */ + content?: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReactionsListForTeamDiscussionRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReactionsCreateForTeamDiscussionEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * discussion_number parameter + */ + discussion_number: number; + /** + * The [reaction type](https://developer.github.com/v3/reactions/#reaction-types) to add to the team discussion. + */ + content: + | "+1" + | "-1" + | "laugh" + | "confused" + | "heart" + | "hooray" + | "rocket" + | "eyes"; +}; +type ReactionsCreateForTeamDiscussionRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListPendingInvitationsEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListPendingInvitationsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListMembersEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * Filters members returned by their role in the team. Can be one of: + * \* `member` - normal members of the team. + * \* `maintainer` - team maintainers. + * \* `all` - all members of the team. + */ + role?: "member" | "maintainer" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListMembersRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsGetMemberEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * username parameter + */ + username: string; +}; +type TeamsGetMemberRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsAddMemberEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * username parameter + */ + username: string; +}; +type TeamsAddMemberRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsRemoveMemberEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * username parameter + */ + username: string; +}; +type TeamsRemoveMemberRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsGetMembershipEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * username parameter + */ + username: string; +}; +type TeamsGetMembershipRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsAddOrUpdateMembershipEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * username parameter + */ + username: string; + /** + * The role that this user should have in the team. Can be one of: + * \* `member` - a normal member of the team. + * \* `maintainer` - a team maintainer. Able to add/remove other team members, promote other team members to team maintainer, and edit the team's name and description. + */ + role?: "member" | "maintainer"; +}; +type TeamsAddOrUpdateMembershipRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsRemoveMembershipEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * username parameter + */ + username: string; +}; +type TeamsRemoveMembershipRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListProjectsEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListProjectsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsReviewProjectEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * project_id parameter + */ + project_id: number; +}; +type TeamsReviewProjectRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsAddOrUpdateProjectEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * project_id parameter + */ + project_id: number; + /** + * The permission to grant to the team for this project. Can be one of: + * \* `read` - team members can read, but not write to or administer this project. + * \* `write` - team members can read and write, but not administer this project. + * \* `admin` - team members can read, write and administer this project. + * Default: the team's `permission` attribute will be used to determine what permission to grant the team on this project. Note that, if you choose not to pass any parameters, you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP verbs](https://developer.github.com/v3/#http-verbs)." + * **Note**: If you pass the `hellcat-preview` media type, you can promote—but not demote—a `permission` attribute inherited from a parent team. + */ + permission?: "read" | "write" | "admin"; +}; +type TeamsAddOrUpdateProjectRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsRemoveProjectEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * project_id parameter + */ + project_id: number; +}; +type TeamsRemoveProjectRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListReposEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListReposRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsCheckManagesRepoEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type TeamsCheckManagesRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsAddOrUpdateRepoEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; + /** + * The permission to grant the team on this repository. Can be one of: + * \* `pull` - team members can pull, but not push to or administer this repository. + * \* `push` - team members can pull and push, but not administer this repository. + * \* `admin` - team members can pull, push and administer this repository. + * + * If no permission is specified, the team's `permission` attribute will be used to determine what permission to grant the team on this repository. + * **Note**: If you pass the `hellcat-preview` media type, you can promote—but not demote—a `permission` attribute inherited through a parent team. + */ + permission?: "pull" | "push" | "admin"; +}; +type TeamsAddOrUpdateRepoRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsRemoveRepoEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type TeamsRemoveRepoRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListIdPGroupsEndpoint = { + /** + * team_id parameter + */ + team_id: number; +}; +type TeamsListIdPGroupsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsCreateOrUpdateIdPGroupConnectionsEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * The IdP groups you want to connect to a GitHub team. When updating, the new `groups` object will replace the original one. You must include any existing groups that you don't want to remove. + */ + groups: TeamsCreateOrUpdateIdPGroupConnectionsParamsGroups[]; +}; +type TeamsCreateOrUpdateIdPGroupConnectionsRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListChildEndpoint = { + /** + * team_id parameter + */ + team_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListChildRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersGetAuthenticatedEndpoint = {}; +type UsersGetAuthenticatedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersUpdateAuthenticatedEndpoint = { + /** + * The new name of the user. + */ + name?: string; + /** + * The publicly visible email address of the user. + */ + email?: string; + /** + * The new blog URL of the user. + */ + blog?: string; + /** + * The new company of the user. + */ + company?: string; + /** + * The new location of the user. + */ + location?: string; + /** + * The new hiring availability of the user. + */ + hireable?: boolean; + /** + * The new short biography of the user. + */ + bio?: string; +}; +type UsersUpdateAuthenticatedRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListBlockedEndpoint = {}; +type UsersListBlockedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersCheckBlockedEndpoint = { + /** + * username parameter + */ + username: string; +}; +type UsersCheckBlockedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersBlockEndpoint = { + /** + * username parameter + */ + username: string; +}; +type UsersBlockRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersUnblockEndpoint = { + /** + * username parameter + */ + username: string; +}; +type UsersUnblockRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersTogglePrimaryEmailVisibilityEndpoint = { + /** + * Specify the _primary_ email address that needs a visibility change. + */ + email: string; + /** + * Use `public` to enable an authenticated user to view the specified email address, or use `private` so this primary email address cannot be seen publicly. + */ + visibility: string; +}; +type UsersTogglePrimaryEmailVisibilityRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListEmailsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListEmailsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersAddEmailsEndpoint = { + /** + * Adds one or more email addresses to your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; +}; +type UsersAddEmailsRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersDeleteEmailsEndpoint = { + /** + * Deletes one or more email addresses from your GitHub account. Must contain at least one email address. **Note:** Alternatively, you can pass a single email address or an `array` of emails addresses directly, but we recommend that you pass an object using the `emails` key. + */ + emails: string[]; +}; +type UsersDeleteEmailsRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListFollowersForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListFollowersForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListFollowingForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListFollowingForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersCheckFollowingEndpoint = { + /** + * username parameter + */ + username: string; +}; +type UsersCheckFollowingRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersFollowEndpoint = { + /** + * username parameter + */ + username: string; +}; +type UsersFollowRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersUnfollowEndpoint = { + /** + * username parameter + */ + username: string; +}; +type UsersUnfollowRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListGpgKeysEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListGpgKeysRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersCreateGpgKeyEndpoint = { + /** + * Your GPG key, generated in ASCII-armored format. See "[Generating a new GPG key](https://help.github.com/articles/generating-a-new-gpg-key/)" for help creating a GPG key. + */ + armored_public_key?: string; +}; +type UsersCreateGpgKeyRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersGetGpgKeyEndpoint = { + /** + * gpg_key_id parameter + */ + gpg_key_id: number; +}; +type UsersGetGpgKeyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersDeleteGpgKeyEndpoint = { + /** + * gpg_key_id parameter + */ + gpg_key_id: number; +}; +type UsersDeleteGpgKeyRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListInstallationsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListInstallationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListInstallationReposForAuthenticatedUserEndpoint = { + /** + * installation_id parameter + */ + installation_id: number; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListInstallationReposForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsAddRepoToInstallationEndpoint = { + /** + * installation_id parameter + */ + installation_id: number; + /** + * repository_id parameter + */ + repository_id: number; +}; +type AppsAddRepoToInstallationRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsRemoveRepoFromInstallationEndpoint = { + /** + * installation_id parameter + */ + installation_id: number; + /** + * repository_id parameter + */ + repository_id: number; +}; +type AppsRemoveRepoFromInstallationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type IssuesListForAuthenticatedUserEndpoint = { + /** + * Indicates which sorts of issues to return. Can be one of: + * \* `assigned`: Issues assigned to you + * \* `created`: Issues created by you + * \* `mentioned`: Issues mentioning you + * \* `subscribed`: Issues you're subscribed to updates for + * \* `all`: All issues the authenticated user can see, regardless of participation or creation + */ + filter?: "assigned" | "created" | "mentioned" | "subscribed" | "all"; + /** + * Indicates the state of the issues to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * A list of comma separated label names. Example: `bug,ui,@high` + */ + labels?: string; + /** + * What to sort results by. Can be either `created`, `updated`, `comments`. + */ + sort?: "created" | "updated" | "comments"; + /** + * The direction of the sort. Can be either `asc` or `desc`. + */ + direction?: "asc" | "desc"; + /** + * Only issues updated at or after this time are returned. This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type IssuesListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListPublicKeysEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListPublicKeysRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersCreatePublicKeyEndpoint = { + /** + * A descriptive name for the new key. Use a name that will help you recognize this key in your GitHub account. For example, if you're using a personal Mac, you might call this key "Personal MacBook Air". + */ + title?: string; + /** + * The public SSH key to add to your GitHub account. See "[Generating a new SSH key](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/)" for guidance on how to create a public SSH key. + */ + key?: string; +}; +type UsersCreatePublicKeyRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersGetPublicKeyEndpoint = { + /** + * key_id parameter + */ + key_id: number; +}; +type UsersGetPublicKeyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersDeletePublicKeyEndpoint = { + /** + * key_id parameter + */ + key_id: number; +}; +type UsersDeletePublicKeyRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListMarketplacePurchasesForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListMarketplacePurchasesForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsListMarketplacePurchasesForAuthenticatedUserStubbedEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type AppsListMarketplacePurchasesForAuthenticatedUserStubbedRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListMembershipsEndpoint = { + /** + * Indicates the state of the memberships to return. Can be either `active` or `pending`. If not specified, the API returns both active and pending memberships. + */ + state?: "active" | "pending"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListMembershipsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsGetMembershipForAuthenticatedUserEndpoint = { + /** + * org parameter + */ + org: string; +}; +type OrgsGetMembershipForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsUpdateMembershipEndpoint = { + /** + * org parameter + */ + org: string; + /** + * The state that the membership should be in. Only `"active"` will be accepted. + */ + state: "active"; +}; +type OrgsUpdateMembershipRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsStartForAuthenticatedUserEndpoint = { + /** + * An array of repositories to include in the migration. + */ + repositories: string[]; + /** + * Locks the `repositories` to prevent changes during the migration when set to `true`. + */ + lock_repositories?: boolean; + /** + * Does not include attachments uploaded to GitHub.com in the migration data when set to `true`. Excluding attachments will reduce the migration archive file size. + */ + exclude_attachments?: boolean; +}; +type MigrationsStartForAuthenticatedUserRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type MigrationsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsGetStatusForAuthenticatedUserEndpoint = { + /** + * migration_id parameter + */ + migration_id: number; +}; +type MigrationsGetStatusForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsGetArchiveForAuthenticatedUserEndpoint = { + /** + * migration_id parameter + */ + migration_id: number; +}; +type MigrationsGetArchiveForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsDeleteArchiveForAuthenticatedUserEndpoint = { + /** + * migration_id parameter + */ + migration_id: number; +}; +type MigrationsDeleteArchiveForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type MigrationsUnlockRepoForAuthenticatedUserEndpoint = { + /** + * migration_id parameter + */ + migration_id: number; + /** + * repo_name parameter + */ + repo_name: string; +}; +type MigrationsUnlockRepoForAuthenticatedUserRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsCreateForAuthenticatedUserEndpoint = { + /** + * The name of the project. + */ + name: string; + /** + * The description of the project. + */ + body?: string; +}; +type ProjectsCreateForAuthenticatedUserRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListPublicEmailsEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListPublicEmailsRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListEndpoint = { + /** + * Can be one of `all`, `public`, or `private`. + */ + visibility?: "all" | "public" | "private"; + /** + * Comma-separated list of values. Can include: + * \* `owner`: Repositories that are owned by the authenticated user. + * \* `collaborator`: Repositories that the user has been added to as a collaborator. + * \* `organization_member`: Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on. + */ + affiliation?: string; + /** + * Can be one of `all`, `owner`, `public`, `private`, `member`. Default: `all` + * + * Will cause a `422` error if used in the same request as **visibility** or **affiliation**. Will cause a `422` error if used in the same request as **visibility** or **affiliation**. + */ + type?: "all" | "owner" | "public" | "private" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposCreateForAuthenticatedUserEndpoint = { + /** + * The name of the repository. + */ + name: string; + /** + * A short description of the repository. + */ + description?: string; + /** + * A URL with more information about the repository. + */ + homepage?: string; + /** + * Either `true` to create a private repository or `false` to create a public one. Creating private repositories requires a paid GitHub account. + */ + private?: boolean; + /** + * Either `true` to enable issues for this repository or `false` to disable them. + */ + has_issues?: boolean; + /** + * Either `true` to enable projects for this repository or `false` to disable them. **Note:** If you're creating a repository in an organization that has disabled repository projects, the default is `false`, and if you pass `true`, the API returns an error. + */ + has_projects?: boolean; + /** + * Either `true` to enable the wiki for this repository or `false` to disable it. + */ + has_wiki?: boolean; + /** + * Either `true` to make this repo available as a template repository or `false` to prevent it. + */ + is_template?: boolean; + /** + * The id of the team that will be granted access to this repository. This is only valid when creating a repository in an organization. + */ + team_id?: number; + /** + * Pass `true` to create an initial commit with empty README. + */ + auto_init?: boolean; + /** + * Desired language or platform [.gitignore template](https://github.com/github/gitignore) to apply. Use the name of the template without the extension. For example, "Haskell". + */ + gitignore_template?: string; + /** + * Choose an [open source license template](https://choosealicense.com/) that best suits your needs, and then use the [license keyword](https://help.github.com/articles/licensing-a-repository/#searching-github-by-license-type) as the `license_template` string. For example, "mit" or "mpl-2.0". + */ + license_template?: string; + /** + * Either `true` to allow squash-merging pull requests, or `false` to prevent squash-merging. + */ + allow_squash_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_commit?: boolean; + /** + * Either `true` to allow rebase-merging pull requests, or `false` to prevent rebase-merging. + */ + allow_rebase_merge?: boolean; +}; +type ReposCreateForAuthenticatedUserRequestOptions = { + method: "POST"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListInvitationsForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListInvitationsForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposAcceptInvitationEndpoint = { + /** + * invitation_id parameter + */ + invitation_id: number; +}; +type ReposAcceptInvitationRequestOptions = { + method: "PATCH"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposDeclineInvitationEndpoint = { + /** + * invitation_id parameter + */ + invitation_id: number; +}; +type ReposDeclineInvitationRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListReposStarredByAuthenticatedUserEndpoint = { + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListReposStarredByAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityCheckStarringRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityCheckStarringRepoRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityStarRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityStarRepoRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityUnstarRepoEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityUnstarRepoRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListWatchedReposForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListWatchedReposForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityCheckWatchingRepoLegacyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityCheckWatchingRepoLegacyRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityWatchRepoLegacyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityWatchRepoLegacyRequestOptions = { + method: "PUT"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityStopWatchingRepoLegacyEndpoint = { + /** + * owner parameter + */ + owner: string; + /** + * repo parameter + */ + repo: string; +}; +type ActivityStopWatchingRepoLegacyRequestOptions = { + method: "DELETE"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type TeamsListForAuthenticatedUserEndpoint = { + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type TeamsListForAuthenticatedUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListEndpoint = { + /** + * The integer ID of the last User that you've seen. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersGetByUsernameEndpoint = { + /** + * username parameter + */ + username: string; +}; +type UsersGetByUsernameRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListEventsForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListEventsForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListEventsForOrgEndpoint = { + /** + * username parameter + */ + username: string; + /** + * org parameter + */ + org: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListEventsForOrgRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListPublicEventsForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListPublicEventsForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListFollowersForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListFollowersForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListFollowingForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListFollowingForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersCheckFollowingForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * target_user parameter + */ + target_user: string; +}; +type UsersCheckFollowingForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type GistsListPublicForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`. Only gists updated at or after this time are returned. + */ + since?: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type GistsListPublicForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListGpgKeysForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListGpgKeysForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersGetContextForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Identifies which additional information you'd like to receive about the person's hovercard. Can be `organization`, `repository`, `issue`, `pull_request`. **Required** when using `subject_id`. + */ + subject_type?: "organization" | "repository" | "issue" | "pull_request"; + /** + * Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. + */ + subject_id?: string; +}; +type UsersGetContextForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsGetUserInstallationEndpoint = { + /** + * username parameter + */ + username: string; +}; +type AppsGetUserInstallationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type AppsFindUserInstallationEndpoint = { + /** + * username parameter + */ + username: string; +}; +type AppsFindUserInstallationRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type UsersListPublicKeysForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type UsersListPublicKeysForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type OrgsListForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type OrgsListForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ProjectsListForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Indicates the state of the projects to return. Can be either `open`, `closed`, or `all`. + */ + state?: "open" | "closed" | "all"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ProjectsListForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListReceivedEventsForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListReceivedEventsForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListReceivedPublicEventsForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListReceivedPublicEventsForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ReposListForUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Can be one of `all`, `owner`, `member`. + */ + type?: "all" | "owner" | "member"; + /** + * Can be one of `created`, `updated`, `pushed`, `full_name`. + */ + sort?: "created" | "updated" | "pushed" | "full_name"; + /** + * Can be one of `asc` or `desc`. Default: `asc` when using `full_name`, otherwise `desc` + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ReposListForUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListReposStarredByUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * One of `created` (when the repository was starred) or `updated` (when it was last pushed to). + */ + sort?: "created" | "updated"; + /** + * One of `asc` (ascending) or `desc` (descending). + */ + direction?: "asc" | "desc"; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListReposStarredByUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; +type ActivityListReposWatchedByUserEndpoint = { + /** + * username parameter + */ + username: string; + /** + * Results per page (max 100) + */ + per_page?: number; + /** + * Page number of the results to fetch. + */ + page?: number; +}; +type ActivityListReposWatchedByUserRequestOptions = { + method: "GET"; + url: Url; + headers: RequestHeaders; + request: RequestRequestOptions; +}; + +export type AppsCreateInstallationTokenParamsPermissions = {}; +export type GistsCreateParamsFiles = { + content?: string; +}; +export type GistsUpdateParamsFiles = { + content?: string; + filename?: string; +}; +export type OrgsCreateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +export type OrgsUpdateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +export type ReposUpdateBranchProtectionParamsRequiredStatusChecks = { + strict: boolean; + contexts: string[]; +}; +export type ReposUpdateBranchProtectionParamsRequiredPullRequestReviews = { + dismissal_restrictions?: ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions; + dismiss_stale_reviews?: boolean; + require_code_owner_reviews?: boolean; + required_approving_review_count?: number; +}; +export type ReposUpdateBranchProtectionParamsRequiredPullRequestReviewsDismissalRestrictions = { + users?: string[]; + teams?: string[]; +}; +export type ReposUpdateBranchProtectionParamsRestrictions = { + users: string[]; + teams: string[]; + apps?: string[]; +}; +export type ReposUpdateProtectedBranchPullRequestReviewEnforcementParamsDismissalRestrictions = { + users?: string[]; + teams?: string[]; +}; +export type ChecksCreateParamsOutput = { + title: string; + summary: string; + text?: string; + annotations?: ChecksCreateParamsOutputAnnotations[]; + images?: ChecksCreateParamsOutputImages[]; +}; +export type ChecksCreateParamsOutputAnnotations = { + path: string; + start_line: number; + end_line: number; + start_column?: number; + end_column?: number; + annotation_level: "notice" | "warning" | "failure"; + message: string; + title?: string; + raw_details?: string; +}; +export type ChecksCreateParamsOutputImages = { + alt: string; + image_url: string; + caption?: string; +}; +export type ChecksCreateParamsActions = { + label: string; + description: string; + identifier: string; +}; +export type ChecksUpdateParamsOutput = { + title?: string; + summary: string; + text?: string; + annotations?: ChecksUpdateParamsOutputAnnotations[]; + images?: ChecksUpdateParamsOutputImages[]; +}; +export type ChecksUpdateParamsOutputAnnotations = { + path: string; + start_line: number; + end_line: number; + start_column?: number; + end_column?: number; + annotation_level: "notice" | "warning" | "failure"; + message: string; + title?: string; + raw_details?: string; +}; +export type ChecksUpdateParamsOutputImages = { + alt: string; + image_url: string; + caption?: string; +}; +export type ChecksUpdateParamsActions = { + label: string; + description: string; + identifier: string; +}; +export type ChecksSetSuitesPreferencesParamsAutoTriggerChecks = { + app_id: number; + setting: boolean; +}; +export type ReposCreateOrUpdateFileParamsCommitter = { + name: string; + email: string; +}; +export type ReposCreateOrUpdateFileParamsAuthor = { + name: string; + email: string; +}; +export type ReposCreateFileParamsCommitter = { + name: string; + email: string; +}; +export type ReposCreateFileParamsAuthor = { + name: string; + email: string; +}; +export type ReposUpdateFileParamsCommitter = { + name: string; + email: string; +}; +export type ReposUpdateFileParamsAuthor = { + name: string; + email: string; +}; +export type ReposDeleteFileParamsCommitter = { + name?: string; + email?: string; +}; +export type ReposDeleteFileParamsAuthor = { + name?: string; + email?: string; +}; +export type GitCreateCommitParamsAuthor = { + name?: string; + email?: string; + date?: string; +}; +export type GitCreateCommitParamsCommitter = { + name?: string; + email?: string; + date?: string; +}; +export type GitCreateTagParamsTagger = { + name?: string; + email?: string; + date?: string; +}; +export type GitCreateTreeParamsTree = { + path?: string; + mode?: "100644" | "100755" | "040000" | "160000" | "120000"; + type?: "blob" | "tree" | "commit"; + sha?: string; + content?: string; +}; +export type ReposCreateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +export type ReposUpdateHookParamsConfig = { + url: string; + content_type?: string; + secret?: string; + insecure_ssl?: string; +}; +export type ReposEnablePagesSiteParamsSource = { + branch?: "master" | "gh-pages"; + path?: string; +}; +export type PullsCreateReviewParamsComments = { + path: string; + position: number; + body: string; +}; +export type TeamsCreateOrUpdateIdPGroupConnectionsParamsGroups = { + group_id: string; + group_name: string; + group_description: string; +}; diff --git a/node_modules/@octokit/types/src/generated/README.md b/node_modules/@octokit/types/src/generated/README.md new file mode 100644 index 0000000..2bc90d2 --- /dev/null +++ b/node_modules/@octokit/types/src/generated/README.md @@ -0,0 +1,3 @@ +# ⚠️ Do not edit files in this folder + +All files are generated. Manual changes will be overwritten. If you find a problem, please look into how they are generated. When in doubt, please open a new issue. diff --git a/node_modules/@octokit/types/src/index.ts b/node_modules/@octokit/types/src/index.ts new file mode 100644 index 0000000..200f0a2 --- /dev/null +++ b/node_modules/@octokit/types/src/index.ts @@ -0,0 +1,18 @@ +export * from "./AuthInterface"; +export * from "./EndpointDefaults"; +export * from "./EndpointInterface"; +export * from "./EndpointOptions"; +export * from "./Fetch"; +export * from "./OctokitResponse"; +export * from "./RequestHeaders"; +export * from "./RequestInterface"; +export * from "./RequestMethod"; +export * from "./RequestOptions"; +export * from "./RequestParameters"; +export * from "./RequestRequestOptions"; +export * from "./ResponseHeaders"; +export * from "./Route"; +export * from "./Signal"; +export * from "./StrategyInterface"; +export * from "./Url"; +export * from "./VERSION"; diff --git a/node_modules/@types/node/LICENSE b/node_modules/@types/node/LICENSE new file mode 100644 index 0000000..4b1ad51 --- /dev/null +++ b/node_modules/@types/node/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/node_modules/@types/node/README.md b/node_modules/@types/node/README.md new file mode 100644 index 0000000..7297bf6 --- /dev/null +++ b/node_modules/@types/node/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/node` + +# Summary +This package contains type definitions for Node.js (http://nodejs.org/). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node/v12. + +### Additional Details + * Last updated: Fri, 03 Jan 2020 23:33:10 GMT + * Dependencies: none + * Global values: `Buffer`, `NodeJS`, `Symbol`, `__dirname`, `__filename`, `clearImmediate`, `clearInterval`, `clearTimeout`, `console`, `exports`, `global`, `module`, `process`, `queueMicrotask`, `require`, `setImmediate`, `setInterval`, `setTimeout` + +# Credits +These definitions were written by Microsoft TypeScript (https://github.com/Microsoft), DefinitelyTyped (https://github.com/DefinitelyTyped), Alberto Schiabel (https://github.com/jkomyno), Alexander T. (https://github.com/a-tarasyuk), Alvis HT Tang (https://github.com/alvis), Andrew Makarov (https://github.com/r3nya), Benjamin Toueg (https://github.com/btoueg), Bruno Scheufler (https://github.com/brunoscheufler), Chigozirim C. (https://github.com/smac89), Christian Vaagland Tellnes (https://github.com/tellnes), David Junger (https://github.com/touffy), Deividas Bakanas (https://github.com/DeividasBakanas), Eugene Y. Q. Shen (https://github.com/eyqs), Flarna (https://github.com/Flarna), Hannes Magnusson (https://github.com/Hannes-Magnusson-CK), Hoàng Văn Khải (https://github.com/KSXGitHub), Huw (https://github.com/hoo29), Kelvin Jin (https://github.com/kjin), Klaus Meinhardt (https://github.com/ajafff), Lishude (https://github.com/islishude), Mariusz Wiktorczyk (https://github.com/mwiktorczyk), Mohsen Azimi (https://github.com/mohsen1), Nicolas Even (https://github.com/n-e), Nicolas Voigt (https://github.com/octo-sniffle), Nikita Galkin (https://github.com/galkin), Parambir Singh (https://github.com/parambirs), Sebastian Silbermann (https://github.com/eps1lon), Simon Schick (https://github.com/SimonSchick), Thomas den Hollander (https://github.com/ThomasdenH), Wilco Bakker (https://github.com/WilcoBakker), wwwy3y3 (https://github.com/wwwy3y3), Zane Hannan AU (https://github.com/ZaneHannanAU), Samuel Ainsworth (https://github.com/samuela), Kyle Uehlein (https://github.com/kuehlein), Jordi Oliveras Rovira (https://github.com/j-oliveras), Thanik Bhongbhibhat (https://github.com/bhongy), Marcin Kopacz (https://github.com/chyzwar), Trivikram Kamat (https://github.com/trivikr), Minh Son Nguyen (https://github.com/nguymin4), Junxiao Shi (https://github.com/yoursunny), and Ilia Baryshnikov (https://github.com/qwelias). diff --git a/node_modules/@types/node/assert.d.ts b/node_modules/@types/node/assert.d.ts new file mode 100644 index 0000000..1244813 --- /dev/null +++ b/node_modules/@types/node/assert.d.ts @@ -0,0 +1,48 @@ +declare module "assert" { + function internal(value: any, message?: string | Error): void; + namespace internal { + class AssertionError implements Error { + name: string; + message: string; + actual: any; + expected: any; + operator: string; + generatedMessage: boolean; + code: 'ERR_ASSERTION'; + + constructor(options?: { + message?: string; actual?: any; expected?: any; + operator?: string; stackStartFn?: Function + }); + } + + function fail(message?: string | Error): never; + /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ + function fail(actual: any, expected: any, message?: string | Error, operator?: string, stackStartFn?: Function): never; + function ok(value: any, message?: string | Error): void; + function equal(actual: any, expected: any, message?: string | Error): void; + function notEqual(actual: any, expected: any, message?: string | Error): void; + function deepEqual(actual: any, expected: any, message?: string | Error): void; + function notDeepEqual(actual: any, expected: any, message?: string | Error): void; + function strictEqual(actual: any, expected: any, message?: string | Error): void; + function notStrictEqual(actual: any, expected: any, message?: string | Error): void; + function deepStrictEqual(actual: any, expected: any, message?: string | Error): void; + function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void; + + function throws(block: () => any, message?: string | Error): void; + function throws(block: () => any, error: RegExp | Function | Object | Error, message?: string | Error): void; + function doesNotThrow(block: () => any, message?: string | Error): void; + function doesNotThrow(block: () => any, error: RegExp | Function, message?: string | Error): void; + + function ifError(value: any): void; + + function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise; + function rejects(block: (() => Promise) | Promise, error: RegExp | Function | Object | Error, message?: string | Error): Promise; + function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise; + function doesNotReject(block: (() => Promise) | Promise, error: RegExp | Function, message?: string | Error): Promise; + + const strict: typeof internal; + } + + export = internal; +} diff --git a/node_modules/@types/node/async_hooks.d.ts b/node_modules/@types/node/async_hooks.d.ts new file mode 100644 index 0000000..cca992e --- /dev/null +++ b/node_modules/@types/node/async_hooks.d.ts @@ -0,0 +1,132 @@ +/** + * Async Hooks module: https://nodejs.org/api/async_hooks.html + */ +declare module "async_hooks" { + /** + * Returns the asyncId of the current execution context. + */ + function executionAsyncId(): number; + + /** + * Returns the ID of the resource responsible for calling the callback that is currently being executed. + */ + function triggerAsyncId(): number; + + interface HookCallbacks { + /** + * Called when a class is constructed that has the possibility to emit an asynchronous event. + * @param asyncId a unique ID for the async resource + * @param type the type of the async resource + * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created + * @param resource reference to the resource representing the async operation, needs to be released during destroy + */ + init?(asyncId: number, type: string, triggerAsyncId: number, resource: Object): void; + + /** + * When an asynchronous operation is initiated or completes a callback is called to notify the user. + * The before callback is called just before said callback is executed. + * @param asyncId the unique identifier assigned to the resource about to execute the callback. + */ + before?(asyncId: number): void; + + /** + * Called immediately after the callback specified in before is completed. + * @param asyncId the unique identifier assigned to the resource which has executed the callback. + */ + after?(asyncId: number): void; + + /** + * Called when a promise has resolve() called. This may not be in the same execution id + * as the promise itself. + * @param asyncId the unique id for the promise that was resolve()d. + */ + promiseResolve?(asyncId: number): void; + + /** + * Called after the resource corresponding to asyncId is destroyed + * @param asyncId a unique ID for the async resource + */ + destroy?(asyncId: number): void; + } + + interface AsyncHook { + /** + * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop. + */ + enable(): this; + + /** + * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled. + */ + disable(): this; + } + + /** + * Registers functions to be called for different lifetime events of each async operation. + * @param options the callbacks to register + * @return an AsyncHooks instance used for disabling and enabling hooks + */ + function createHook(options: HookCallbacks): AsyncHook; + + interface AsyncResourceOptions { + /** + * The ID of the execution context that created this async event. + * Default: `executionAsyncId()` + */ + triggerAsyncId?: number; + + /** + * Disables automatic `emitDestroy` when the object is garbage collected. + * This usually does not need to be set (even if `emitDestroy` is called + * manually), unless the resource's `asyncId` is retrieved and the + * sensitive API's `emitDestroy` is called with it. + * Default: `false` + */ + requireManualDestroy?: boolean; + } + + /** + * The class AsyncResource was designed to be extended by the embedder's async resources. + * Using this users can easily trigger the lifetime events of their own resources. + */ + class AsyncResource { + /** + * AsyncResource() is meant to be extended. Instantiating a + * new AsyncResource() also triggers init. If triggerAsyncId is omitted then + * async_hook.executionAsyncId() is used. + * @param type The type of async event. + * @param triggerAsyncId The ID of the execution context that created + * this async event (default: `executionAsyncId()`), or an + * AsyncResourceOptions object (since 9.3) + */ + constructor(type: string, triggerAsyncId?: number|AsyncResourceOptions); + + /** + * Call the provided function with the provided arguments in the + * execution context of the async resource. This will establish the + * context, trigger the AsyncHooks before callbacks, call the function, + * trigger the AsyncHooks after callbacks, and then restore the original + * execution context. + * @param fn The function to call in the execution context of this + * async resource. + * @param thisArg The receiver to be used for the function call. + * @param args Optional arguments to pass to the function. + */ + runInAsyncScope(fn: (this: This, ...args: any[]) => Result, thisArg?: This, ...args: any[]): Result; + + /** + * Call AsyncHooks destroy callbacks. + */ + emitDestroy(): void; + + /** + * @return the unique ID assigned to this AsyncResource instance. + */ + asyncId(): number; + + /** + * @return the trigger ID for this AsyncResource instance. + */ + triggerAsyncId(): number; + } +} diff --git a/node_modules/@types/node/base.d.ts b/node_modules/@types/node/base.d.ts new file mode 100644 index 0000000..70983d9 --- /dev/null +++ b/node_modules/@types/node/base.d.ts @@ -0,0 +1,41 @@ +// base definnitions for all NodeJS modules that are not specific to any version of TypeScript +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// diff --git a/node_modules/@types/node/buffer.d.ts b/node_modules/@types/node/buffer.d.ts new file mode 100644 index 0000000..7eb1061 --- /dev/null +++ b/node_modules/@types/node/buffer.d.ts @@ -0,0 +1,22 @@ +declare module "buffer" { + export const INSPECT_MAX_BYTES: number; + export const kMaxLength: number; + export const kStringMaxLength: number; + export const constants: { + MAX_LENGTH: number; + MAX_STRING_LENGTH: number; + }; + const BuffType: typeof Buffer; + + export type TranscodeEncoding = "ascii" | "utf8" | "utf16le" | "ucs2" | "latin1" | "binary"; + + export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer; + + export const SlowBuffer: { + /** @deprecated since v6.0.0, use Buffer.allocUnsafeSlow() */ + new(size: number): Buffer; + prototype: Buffer; + }; + + export { BuffType as Buffer }; +} diff --git a/node_modules/@types/node/child_process.d.ts b/node_modules/@types/node/child_process.d.ts new file mode 100644 index 0000000..963db9f --- /dev/null +++ b/node_modules/@types/node/child_process.d.ts @@ -0,0 +1,483 @@ +declare module "child_process" { + import * as events from "events"; + import * as net from "net"; + import { Writable, Readable, Stream, Pipe } from "stream"; + + interface ChildProcess extends events.EventEmitter { + stdin: Writable | null; + stdout: Readable | null; + stderr: Readable | null; + readonly channel?: Pipe | null; + readonly stdio: [ + Writable | null, // stdin + Readable | null, // stdout + Readable | null, // stderr + Readable | Writable | null | undefined, // extra + Readable | Writable | null | undefined // extra + ]; + readonly killed: boolean; + readonly pid: number; + readonly connected: boolean; + kill(signal?: NodeJS.Signals | number): void; + send(message: any, callback?: (error: Error | null) => void): boolean; + send(message: any, sendHandle?: net.Socket | net.Server, callback?: (error: Error | null) => void): boolean; + send(message: any, sendHandle?: net.Socket | net.Server, options?: MessageOptions, callback?: (error: Error | null) => void): boolean; + disconnect(): void; + unref(): void; + ref(): void; + + /** + * events.EventEmitter + * 1. close + * 2. disconnect + * 3. error + * 4. exit + * 5. message + */ + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: (code: number, signal: NodeJS.Signals) => void): this; + addListener(event: "disconnect", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + addListener(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close", code: number, signal: NodeJS.Signals): boolean; + emit(event: "disconnect"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "exit", code: number | null, signal: NodeJS.Signals | null): boolean; + emit(event: "message", message: any, sendHandle: net.Socket | net.Server): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: (code: number, signal: NodeJS.Signals) => void): this; + on(event: "disconnect", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + on(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: (code: number, signal: NodeJS.Signals) => void): this; + once(event: "disconnect", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + once(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: (code: number, signal: NodeJS.Signals) => void): this; + prependListener(event: "disconnect", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependListener(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: (code: number, signal: NodeJS.Signals) => void): this; + prependOnceListener(event: "disconnect", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependOnceListener(event: "message", listener: (message: any, sendHandle: net.Socket | net.Server) => void): this; + } + + // return this object when stdio option is undefined or not specified + interface ChildProcessWithoutNullStreams extends ChildProcess { + stdin: Writable; + stdout: Readable; + stderr: Readable; + readonly stdio: [ + Writable, // stdin + Readable, // stdout + Readable, // stderr + Readable | Writable | null | undefined, // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + + // return this object when stdio option is a tuple of 3 + interface ChildProcessByStdio< + I extends null | Writable, + O extends null | Readable, + E extends null | Readable, + > extends ChildProcess { + stdin: I; + stdout: O; + stderr: E; + readonly stdio: [ + I, + O, + E, + Readable | Writable | null | undefined, // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + + interface MessageOptions { + keepOpen?: boolean; + } + + type StdioOptions = "pipe" | "ignore" | "inherit" | Array<("pipe" | "ipc" | "ignore" | "inherit" | Stream | number | null | undefined)>; + + interface ProcessEnvOptions { + uid?: number; + gid?: number; + cwd?: string; + env?: NodeJS.ProcessEnv; + } + + interface CommonOptions extends ProcessEnvOptions { + /** + * @default true + */ + windowsHide?: boolean; + /** + * @default 0 + */ + timeout?: number; + } + + interface SpawnOptions extends CommonOptions { + argv0?: string; + stdio?: StdioOptions; + detached?: boolean; + shell?: boolean | string; + windowsVerbatimArguments?: boolean; + } + + interface SpawnOptionsWithoutStdio extends SpawnOptions { + stdio?: 'pipe' | Array; + } + + type StdioNull = 'inherit' | 'ignore' | Stream; + type StdioPipe = undefined | null | 'pipe'; + + interface SpawnOptionsWithStdioTuple< + Stdin extends StdioNull | StdioPipe, + Stdout extends StdioNull | StdioPipe, + Stderr extends StdioNull | StdioPipe, + > extends SpawnOptions { + stdio: [Stdin, Stdout, Stderr]; + } + + // overloads of spawn without 'args' + function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + + function spawn(command: string, options: SpawnOptions): ChildProcess; + + // overloads of spawn with 'args' + function spawn(command: string, args?: ReadonlyArray, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + function spawn( + command: string, + args: ReadonlyArray, + options: SpawnOptionsWithStdioTuple, + ): ChildProcessByStdio; + + function spawn(command: string, args: ReadonlyArray, options: SpawnOptions): ChildProcess; + + interface ExecOptions extends CommonOptions { + shell?: string; + maxBuffer?: number; + killSignal?: NodeJS.Signals | number; + } + + interface ExecOptionsWithStringEncoding extends ExecOptions { + encoding: BufferEncoding; + } + + interface ExecOptionsWithBufferEncoding extends ExecOptions { + encoding: string | null; // specify `null`. + } + + interface ExecException extends Error { + cmd?: string; + killed?: boolean; + code?: number; + signal?: NodeJS.Signals; + } + + // no `options` definitely means stdout/stderr are `string`. + function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function exec(command: string, options: { encoding: "buffer" | null } & ExecOptions, callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function exec(command: string, options: { encoding: BufferEncoding } & ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function exec(command: string, options: { encoding: string } & ExecOptions, callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void): ChildProcess; + + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function exec( + command: string, + options: ({ encoding?: string | null } & ExecOptions) | undefined | null, + callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, + ): ChildProcess; + + interface PromiseWithChild extends Promise { + child: ChildProcess; + } + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace exec { + function __promisify__(command: string): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(command: string, options: { encoding: "buffer" | null } & ExecOptions): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>; + function __promisify__(command: string, options: { encoding: BufferEncoding } & ExecOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(command: string, options: ExecOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(command: string, options?: ({ encoding?: string | null } & ExecOptions) | null): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + } + + interface ExecFileOptions extends CommonOptions { + maxBuffer?: number; + killSignal?: NodeJS.Signals | number; + windowsVerbatimArguments?: boolean; + shell?: boolean | string; + } + interface ExecFileOptionsWithStringEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions { + encoding: 'buffer' | null; + } + interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions { + encoding: string; + } + + function execFile(file: string): ChildProcess; + function execFile(file: string, options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null): ChildProcess; + function execFile(file: string, args?: ReadonlyArray | null): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null): ChildProcess; + + // no `options` definitely means stdout/stderr are `string`. + function execFile(file: string, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithBufferEncoding, + callback: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void, + ): ChildProcess; + + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithStringEncoding, + callback: (error: ExecException | null, stdout: string, stderr: string) => void, + ): ChildProcess; + + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function execFile( + file: string, + options: ExecFileOptionsWithOtherEncoding, + callback: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, + ): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithOtherEncoding, + callback: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void, + ): ChildProcess; + + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptions, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptions, + callback: (error: ExecException | null, stdout: string, stderr: string) => void + ): ChildProcess; + + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function execFile( + file: string, + options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null, + callback: ((error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null, + ): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null, + callback: ((error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null, + ): ChildProcess; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace execFile { + function __promisify__(file: string): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, args: string[] | undefined | null): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>; + function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>; + function __promisify__(file: string, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, options: ExecFileOptionsWithOtherEncoding): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptionsWithOtherEncoding): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + function __promisify__(file: string, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>; + function __promisify__(file: string, options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + function __promisify__( + file: string, + args: string[] | undefined | null, + options: ({ encoding?: string | null } & ExecFileOptions) | undefined | null, + ): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>; + } + + interface ForkOptions extends ProcessEnvOptions { + execPath?: string; + execArgv?: string[]; + silent?: boolean; + stdio?: StdioOptions; + detached?: boolean; + windowsVerbatimArguments?: boolean; + } + function fork(modulePath: string, args?: ReadonlyArray, options?: ForkOptions): ChildProcess; + + interface SpawnSyncOptions extends CommonOptions { + argv0?: string; // Not specified in the docs + input?: string | NodeJS.ArrayBufferView; + stdio?: StdioOptions; + killSignal?: NodeJS.Signals | number; + maxBuffer?: number; + encoding?: string; + shell?: boolean | string; + windowsVerbatimArguments?: boolean; + } + interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions { + encoding: BufferEncoding; + } + interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions { + encoding: string; // specify `null`. + } + interface SpawnSyncReturns { + pid: number; + output: string[]; + stdout: T; + stderr: T; + status: number | null; + signal: NodeJS.Signals | null; + error?: Error; + } + function spawnSync(command: string): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptions): SpawnSyncReturns; + + interface ExecSyncOptions extends CommonOptions { + input?: string | Uint8Array; + stdio?: StdioOptions; + shell?: string; + killSignal?: NodeJS.Signals | number; + maxBuffer?: number; + encoding?: string; + } + interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions { + encoding: BufferEncoding; + } + interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions { + encoding: string; // specify `null`. + } + function execSync(command: string): Buffer; + function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string; + function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer; + function execSync(command: string, options?: ExecSyncOptions): Buffer; + + interface ExecFileSyncOptions extends CommonOptions { + input?: string | NodeJS.ArrayBufferView; + stdio?: StdioOptions; + killSignal?: NodeJS.Signals | number; + maxBuffer?: number; + encoding?: string; + shell?: boolean | string; + } + interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions { + encoding: BufferEncoding; + } + interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions { + encoding: string; // specify `null`. + } + function execFileSync(command: string): Buffer; + function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer; + function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(command: string, args?: ReadonlyArray, options?: ExecFileSyncOptions): Buffer; +} diff --git a/node_modules/@types/node/cluster.d.ts b/node_modules/@types/node/cluster.d.ts new file mode 100644 index 0000000..43340ff --- /dev/null +++ b/node_modules/@types/node/cluster.d.ts @@ -0,0 +1,260 @@ +declare module "cluster" { + import * as child from "child_process"; + import * as events from "events"; + import * as net from "net"; + + // interfaces + interface ClusterSettings { + execArgv?: string[]; // default: process.execArgv + exec?: string; + args?: string[]; + silent?: boolean; + stdio?: any[]; + uid?: number; + gid?: number; + inspectPort?: number | (() => number); + } + + interface Address { + address: string; + port: number; + addressType: number | "udp4" | "udp6"; // 4, 6, -1, "udp4", "udp6" + } + + class Worker extends events.EventEmitter { + id: number; + process: child.ChildProcess; + send(message: any, sendHandle?: any, callback?: (error: Error | null) => void): boolean; + kill(signal?: string): void; + destroy(signal?: string): void; + disconnect(): void; + isConnected(): boolean; + isDead(): boolean; + exitedAfterDisconnect: boolean; + + /** + * events.EventEmitter + * 1. disconnect + * 2. error + * 3. exit + * 4. listening + * 5. message + * 6. online + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "disconnect", listener: () => void): this; + addListener(event: "error", listener: (error: Error) => void): this; + addListener(event: "exit", listener: (code: number, signal: string) => void): this; + addListener(event: "listening", listener: (address: Address) => void): this; + addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: "online", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "disconnect"): boolean; + emit(event: "error", error: Error): boolean; + emit(event: "exit", code: number, signal: string): boolean; + emit(event: "listening", address: Address): boolean; + emit(event: "message", message: any, handle: net.Socket | net.Server): boolean; + emit(event: "online"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "disconnect", listener: () => void): this; + on(event: "error", listener: (error: Error) => void): this; + on(event: "exit", listener: (code: number, signal: string) => void): this; + on(event: "listening", listener: (address: Address) => void): this; + on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: "online", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "disconnect", listener: () => void): this; + once(event: "error", listener: (error: Error) => void): this; + once(event: "exit", listener: (code: number, signal: string) => void): this; + once(event: "listening", listener: (address: Address) => void): this; + once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: "online", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "disconnect", listener: () => void): this; + prependListener(event: "error", listener: (error: Error) => void): this; + prependListener(event: "exit", listener: (code: number, signal: string) => void): this; + prependListener(event: "listening", listener: (address: Address) => void): this; + prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: "online", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "disconnect", listener: () => void): this; + prependOnceListener(event: "error", listener: (error: Error) => void): this; + prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this; + prependOnceListener(event: "listening", listener: (address: Address) => void): this; + prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: "online", listener: () => void): this; + } + + interface Cluster extends events.EventEmitter { + Worker: Worker; + disconnect(callback?: () => void): void; + fork(env?: any): Worker; + isMaster: boolean; + isWorker: boolean; + // TODO: cluster.schedulingPolicy + settings: ClusterSettings; + setupMaster(settings?: ClusterSettings): void; + worker?: Worker; + workers?: { + [index: string]: Worker | undefined + }; + + /** + * events.EventEmitter + * 1. disconnect + * 2. exit + * 3. fork + * 4. listening + * 5. message + * 6. online + * 7. setup + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "disconnect", listener: (worker: Worker) => void): this; + addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + addListener(event: "fork", listener: (worker: Worker) => void): this; + addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; + addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: "online", listener: (worker: Worker) => void): this; + addListener(event: "setup", listener: (settings: ClusterSettings) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "disconnect", worker: Worker): boolean; + emit(event: "exit", worker: Worker, code: number, signal: string): boolean; + emit(event: "fork", worker: Worker): boolean; + emit(event: "listening", worker: Worker, address: Address): boolean; + emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean; + emit(event: "online", worker: Worker): boolean; + emit(event: "setup", settings: ClusterSettings): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "disconnect", listener: (worker: Worker) => void): this; + on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + on(event: "fork", listener: (worker: Worker) => void): this; + on(event: "listening", listener: (worker: Worker, address: Address) => void): this; + on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: "online", listener: (worker: Worker) => void): this; + on(event: "setup", listener: (settings: ClusterSettings) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "disconnect", listener: (worker: Worker) => void): this; + once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + once(event: "fork", listener: (worker: Worker) => void): this; + once(event: "listening", listener: (worker: Worker, address: Address) => void): this; + once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: "online", listener: (worker: Worker) => void): this; + once(event: "setup", listener: (settings: ClusterSettings) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "disconnect", listener: (worker: Worker) => void): this; + prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + prependListener(event: "fork", listener: (worker: Worker) => void): this; + prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; + prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: "online", listener: (worker: Worker) => void): this; + prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this; + prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this; + prependOnceListener(event: "fork", listener: (worker: Worker) => void): this; + prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this; + // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; + prependOnceListener(event: "online", listener: (worker: Worker) => void): this; + prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this; + } + + function disconnect(callback?: () => void): void; + function fork(env?: any): Worker; + const isMaster: boolean; + const isWorker: boolean; + // TODO: cluster.schedulingPolicy + const settings: ClusterSettings; + function setupMaster(settings?: ClusterSettings): void; + const worker: Worker; + const workers: { + [index: string]: Worker | undefined + }; + + /** + * events.EventEmitter + * 1. disconnect + * 2. exit + * 3. fork + * 4. listening + * 5. message + * 6. online + * 7. setup + */ + function addListener(event: string, listener: (...args: any[]) => void): Cluster; + function addListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function addListener(event: "fork", listener: (worker: Worker) => void): Cluster; + function addListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + // the handle is a net.Socket or net.Server object, or undefined. + function addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; + function addListener(event: "online", listener: (worker: Worker) => void): Cluster; + function addListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function emit(event: string | symbol, ...args: any[]): boolean; + function emit(event: "disconnect", worker: Worker): boolean; + function emit(event: "exit", worker: Worker, code: number, signal: string): boolean; + function emit(event: "fork", worker: Worker): boolean; + function emit(event: "listening", worker: Worker, address: Address): boolean; + function emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean; + function emit(event: "online", worker: Worker): boolean; + function emit(event: "setup", settings: ClusterSettings): boolean; + + function on(event: string, listener: (...args: any[]) => void): Cluster; + function on(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function on(event: "fork", listener: (worker: Worker) => void): Cluster; + function on(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + function on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined. + function on(event: "online", listener: (worker: Worker) => void): Cluster; + function on(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function once(event: string, listener: (...args: any[]) => void): Cluster; + function once(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function once(event: "fork", listener: (worker: Worker) => void): Cluster; + function once(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + function once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; // the handle is a net.Socket or net.Server object, or undefined. + function once(event: "online", listener: (worker: Worker) => void): Cluster; + function once(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function removeListener(event: string, listener: (...args: any[]) => void): Cluster; + function removeAllListeners(event?: string): Cluster; + function setMaxListeners(n: number): Cluster; + function getMaxListeners(): number; + function listeners(event: string): Function[]; + function listenerCount(type: string): number; + + function prependListener(event: string, listener: (...args: any[]) => void): Cluster; + function prependListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function prependListener(event: "fork", listener: (worker: Worker) => void): Cluster; + function prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + // the handle is a net.Socket or net.Server object, or undefined. + function prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; + function prependListener(event: "online", listener: (worker: Worker) => void): Cluster; + function prependListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function prependOnceListener(event: string, listener: (...args: any[]) => void): Cluster; + function prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): Cluster; + function prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster; + function prependOnceListener(event: "fork", listener: (worker: Worker) => void): Cluster; + function prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster; + // the handle is a net.Socket or net.Server object, or undefined. + function prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster; + function prependOnceListener(event: "online", listener: (worker: Worker) => void): Cluster; + function prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster; + + function eventNames(): string[]; +} diff --git a/node_modules/@types/node/console.d.ts b/node_modules/@types/node/console.d.ts new file mode 100644 index 0000000..d30d13f --- /dev/null +++ b/node_modules/@types/node/console.d.ts @@ -0,0 +1,3 @@ +declare module "console" { + export = console; +} diff --git a/node_modules/@types/node/constants.d.ts b/node_modules/@types/node/constants.d.ts new file mode 100644 index 0000000..ebd463b --- /dev/null +++ b/node_modules/@types/node/constants.d.ts @@ -0,0 +1,448 @@ +/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ +declare module "constants" { + /** @deprecated since v6.3.0 - use `os.constants.errno.E2BIG` instead. */ + const E2BIG: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EACCES` instead. */ + const EACCES: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EADDRINUSE` instead. */ + const EADDRINUSE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EADDRNOTAVAIL` instead. */ + const EADDRNOTAVAIL: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EAFNOSUPPORT` instead. */ + const EAFNOSUPPORT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EAGAIN` instead. */ + const EAGAIN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EALREADY` instead. */ + const EALREADY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EBADF` instead. */ + const EBADF: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EBADMSG` instead. */ + const EBADMSG: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EBUSY` instead. */ + const EBUSY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ECANCELED` instead. */ + const ECANCELED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ECHILD` instead. */ + const ECHILD: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ECONNABORTED` instead. */ + const ECONNABORTED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ECONNREFUSED` instead. */ + const ECONNREFUSED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ECONNRESET` instead. */ + const ECONNRESET: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EDEADLK` instead. */ + const EDEADLK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EDESTADDRREQ` instead. */ + const EDESTADDRREQ: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EDOM` instead. */ + const EDOM: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EEXIST` instead. */ + const EEXIST: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EFAULT` instead. */ + const EFAULT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EFBIG` instead. */ + const EFBIG: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EHOSTUNREACH` instead. */ + const EHOSTUNREACH: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EIDRM` instead. */ + const EIDRM: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EILSEQ` instead. */ + const EILSEQ: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EINPROGRESS` instead. */ + const EINPROGRESS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EINTR` instead. */ + const EINTR: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EINVAL` instead. */ + const EINVAL: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EIO` instead. */ + const EIO: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EISCONN` instead. */ + const EISCONN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EISDIR` instead. */ + const EISDIR: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ELOOP` instead. */ + const ELOOP: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EMFILE` instead. */ + const EMFILE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EMLINK` instead. */ + const EMLINK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EMSGSIZE` instead. */ + const EMSGSIZE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENAMETOOLONG` instead. */ + const ENAMETOOLONG: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENETDOWN` instead. */ + const ENETDOWN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENETRESET` instead. */ + const ENETRESET: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENETUNREACH` instead. */ + const ENETUNREACH: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENFILE` instead. */ + const ENFILE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOBUFS` instead. */ + const ENOBUFS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENODATA` instead. */ + const ENODATA: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENODEV` instead. */ + const ENODEV: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOENT` instead. */ + const ENOENT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOEXEC` instead. */ + const ENOEXEC: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOLCK` instead. */ + const ENOLCK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOLINK` instead. */ + const ENOLINK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOMEM` instead. */ + const ENOMEM: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOMSG` instead. */ + const ENOMSG: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOPROTOOPT` instead. */ + const ENOPROTOOPT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSPC` instead. */ + const ENOSPC: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSR` instead. */ + const ENOSR: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSTR` instead. */ + const ENOSTR: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOSYS` instead. */ + const ENOSYS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTCONN` instead. */ + const ENOTCONN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTDIR` instead. */ + const ENOTDIR: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTEMPTY` instead. */ + const ENOTEMPTY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTSOCK` instead. */ + const ENOTSOCK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTSUP` instead. */ + const ENOTSUP: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENOTTY` instead. */ + const ENOTTY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ENXIO` instead. */ + const ENXIO: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EOPNOTSUPP` instead. */ + const EOPNOTSUPP: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EOVERFLOW` instead. */ + const EOVERFLOW: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EPERM` instead. */ + const EPERM: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EPIPE` instead. */ + const EPIPE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EPROTO` instead. */ + const EPROTO: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EPROTONOSUPPORT` instead. */ + const EPROTONOSUPPORT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EPROTOTYPE` instead. */ + const EPROTOTYPE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ERANGE` instead. */ + const ERANGE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EROFS` instead. */ + const EROFS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ESPIPE` instead. */ + const ESPIPE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ESRCH` instead. */ + const ESRCH: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ETIME` instead. */ + const ETIME: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ETIMEDOUT` instead. */ + const ETIMEDOUT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.ETXTBSY` instead. */ + const ETXTBSY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EWOULDBLOCK` instead. */ + const EWOULDBLOCK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.EXDEV` instead. */ + const EXDEV: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINTR` instead. */ + const WSAEINTR: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEBADF` instead. */ + const WSAEBADF: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEACCES` instead. */ + const WSAEACCES: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEFAULT` instead. */ + const WSAEFAULT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINVAL` instead. */ + const WSAEINVAL: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEMFILE` instead. */ + const WSAEMFILE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEWOULDBLOCK` instead. */ + const WSAEWOULDBLOCK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINPROGRESS` instead. */ + const WSAEINPROGRESS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEALREADY` instead. */ + const WSAEALREADY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOTSOCK` instead. */ + const WSAENOTSOCK: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEDESTADDRREQ` instead. */ + const WSAEDESTADDRREQ: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEMSGSIZE` instead. */ + const WSAEMSGSIZE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROTOTYPE` instead. */ + const WSAEPROTOTYPE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOPROTOOPT` instead. */ + const WSAENOPROTOOPT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROTONOSUPPORT` instead. */ + const WSAEPROTONOSUPPORT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAESOCKTNOSUPPORT` instead. */ + const WSAESOCKTNOSUPPORT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEOPNOTSUPP` instead. */ + const WSAEOPNOTSUPP: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPFNOSUPPORT` instead. */ + const WSAEPFNOSUPPORT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEAFNOSUPPORT` instead. */ + const WSAEAFNOSUPPORT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEADDRINUSE` instead. */ + const WSAEADDRINUSE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEADDRNOTAVAIL` instead. */ + const WSAEADDRNOTAVAIL: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENETDOWN` instead. */ + const WSAENETDOWN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENETUNREACH` instead. */ + const WSAENETUNREACH: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENETRESET` instead. */ + const WSAENETRESET: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECONNABORTED` instead. */ + const WSAECONNABORTED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECONNRESET` instead. */ + const WSAECONNRESET: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOBUFS` instead. */ + const WSAENOBUFS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEISCONN` instead. */ + const WSAEISCONN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOTCONN` instead. */ + const WSAENOTCONN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAESHUTDOWN` instead. */ + const WSAESHUTDOWN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAETOOMANYREFS` instead. */ + const WSAETOOMANYREFS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAETIMEDOUT` instead. */ + const WSAETIMEDOUT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECONNREFUSED` instead. */ + const WSAECONNREFUSED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAELOOP` instead. */ + const WSAELOOP: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENAMETOOLONG` instead. */ + const WSAENAMETOOLONG: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEHOSTDOWN` instead. */ + const WSAEHOSTDOWN: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEHOSTUNREACH` instead. */ + const WSAEHOSTUNREACH: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOTEMPTY` instead. */ + const WSAENOTEMPTY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROCLIM` instead. */ + const WSAEPROCLIM: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEUSERS` instead. */ + const WSAEUSERS: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEDQUOT` instead. */ + const WSAEDQUOT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAESTALE` instead. */ + const WSAESTALE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEREMOTE` instead. */ + const WSAEREMOTE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSASYSNOTREADY` instead. */ + const WSASYSNOTREADY: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAVERNOTSUPPORTED` instead. */ + const WSAVERNOTSUPPORTED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSANOTINITIALISED` instead. */ + const WSANOTINITIALISED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEDISCON` instead. */ + const WSAEDISCON: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAENOMORE` instead. */ + const WSAENOMORE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAECANCELLED` instead. */ + const WSAECANCELLED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINVALIDPROCTABLE` instead. */ + const WSAEINVALIDPROCTABLE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEINVALIDPROVIDER` instead. */ + const WSAEINVALIDPROVIDER: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEPROVIDERFAILEDINIT` instead. */ + const WSAEPROVIDERFAILEDINIT: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSASYSCALLFAILURE` instead. */ + const WSASYSCALLFAILURE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSASERVICE_NOT_FOUND` instead. */ + const WSASERVICE_NOT_FOUND: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSATYPE_NOT_FOUND` instead. */ + const WSATYPE_NOT_FOUND: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSA_E_NO_MORE` instead. */ + const WSA_E_NO_MORE: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSA_E_CANCELLED` instead. */ + const WSA_E_CANCELLED: number; + /** @deprecated since v6.3.0 - use `os.constants.errno.WSAEREFUSED` instead. */ + const WSAEREFUSED: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGHUP` instead. */ + const SIGHUP: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGINT` instead. */ + const SIGINT: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGILL` instead. */ + const SIGILL: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGABRT` instead. */ + const SIGABRT: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGFPE` instead. */ + const SIGFPE: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGKILL` instead. */ + const SIGKILL: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSEGV` instead. */ + const SIGSEGV: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTERM` instead. */ + const SIGTERM: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGBREAK` instead. */ + const SIGBREAK: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGWINCH` instead. */ + const SIGWINCH: number; + const SSL_OP_ALL: number; + const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number; + const SSL_OP_CIPHER_SERVER_PREFERENCE: number; + const SSL_OP_CISCO_ANYCONNECT: number; + const SSL_OP_COOKIE_EXCHANGE: number; + const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number; + const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number; + const SSL_OP_EPHEMERAL_RSA: number; + const SSL_OP_LEGACY_SERVER_CONNECT: number; + const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number; + const SSL_OP_MICROSOFT_SESS_ID_BUG: number; + const SSL_OP_MSIE_SSLV2_RSA_PADDING: number; + const SSL_OP_NETSCAPE_CA_DN_BUG: number; + const SSL_OP_NETSCAPE_CHALLENGE_BUG: number; + const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number; + const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number; + const SSL_OP_NO_COMPRESSION: number; + const SSL_OP_NO_QUERY_MTU: number; + const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number; + const SSL_OP_NO_SSLv2: number; + const SSL_OP_NO_SSLv3: number; + const SSL_OP_NO_TICKET: number; + const SSL_OP_NO_TLSv1: number; + const SSL_OP_NO_TLSv1_1: number; + const SSL_OP_NO_TLSv1_2: number; + const SSL_OP_PKCS1_CHECK_1: number; + const SSL_OP_PKCS1_CHECK_2: number; + const SSL_OP_SINGLE_DH_USE: number; + const SSL_OP_SINGLE_ECDH_USE: number; + const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number; + const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number; + const SSL_OP_TLS_BLOCK_PADDING_BUG: number; + const SSL_OP_TLS_D5_BUG: number; + const SSL_OP_TLS_ROLLBACK_BUG: number; + const ENGINE_METHOD_DSA: number; + const ENGINE_METHOD_DH: number; + const ENGINE_METHOD_RAND: number; + const ENGINE_METHOD_ECDH: number; + const ENGINE_METHOD_ECDSA: number; + const ENGINE_METHOD_CIPHERS: number; + const ENGINE_METHOD_DIGESTS: number; + const ENGINE_METHOD_STORE: number; + const ENGINE_METHOD_PKEY_METHS: number; + const ENGINE_METHOD_PKEY_ASN1_METHS: number; + const ENGINE_METHOD_ALL: number; + const ENGINE_METHOD_NONE: number; + const DH_CHECK_P_NOT_SAFE_PRIME: number; + const DH_CHECK_P_NOT_PRIME: number; + const DH_UNABLE_TO_CHECK_GENERATOR: number; + const DH_NOT_SUITABLE_GENERATOR: number; + const RSA_PKCS1_PADDING: number; + const RSA_SSLV23_PADDING: number; + const RSA_NO_PADDING: number; + const RSA_PKCS1_OAEP_PADDING: number; + const RSA_X931_PADDING: number; + const RSA_PKCS1_PSS_PADDING: number; + const POINT_CONVERSION_COMPRESSED: number; + const POINT_CONVERSION_UNCOMPRESSED: number; + const POINT_CONVERSION_HYBRID: number; + const O_RDONLY: number; + const O_WRONLY: number; + const O_RDWR: number; + const S_IFMT: number; + const S_IFREG: number; + const S_IFDIR: number; + const S_IFCHR: number; + const S_IFBLK: number; + const S_IFIFO: number; + const S_IFSOCK: number; + const S_IRWXU: number; + const S_IRUSR: number; + const S_IWUSR: number; + const S_IXUSR: number; + const S_IRWXG: number; + const S_IRGRP: number; + const S_IWGRP: number; + const S_IXGRP: number; + const S_IRWXO: number; + const S_IROTH: number; + const S_IWOTH: number; + const S_IXOTH: number; + const S_IFLNK: number; + const O_CREAT: number; + const O_EXCL: number; + const O_NOCTTY: number; + const O_DIRECTORY: number; + const O_NOATIME: number; + const O_NOFOLLOW: number; + const O_SYNC: number; + const O_DSYNC: number; + const O_SYMLINK: number; + const O_DIRECT: number; + const O_NONBLOCK: number; + const O_TRUNC: number; + const O_APPEND: number; + const F_OK: number; + const R_OK: number; + const W_OK: number; + const X_OK: number; + const COPYFILE_EXCL: number; + const COPYFILE_FICLONE: number; + const COPYFILE_FICLONE_FORCE: number; + const UV_UDP_REUSEADDR: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGQUIT` instead. */ + const SIGQUIT: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTRAP` instead. */ + const SIGTRAP: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGIOT` instead. */ + const SIGIOT: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGBUS` instead. */ + const SIGBUS: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGUSR1` instead. */ + const SIGUSR1: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGUSR2` instead. */ + const SIGUSR2: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPIPE` instead. */ + const SIGPIPE: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGALRM` instead. */ + const SIGALRM: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGCHLD` instead. */ + const SIGCHLD: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSTKFLT` instead. */ + const SIGSTKFLT: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGCONT` instead. */ + const SIGCONT: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSTOP` instead. */ + const SIGSTOP: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTSTP` instead. */ + const SIGTSTP: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTTIN` instead. */ + const SIGTTIN: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGTTOU` instead. */ + const SIGTTOU: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGURG` instead. */ + const SIGURG: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGXCPU` instead. */ + const SIGXCPU: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGXFSZ` instead. */ + const SIGXFSZ: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGVTALRM` instead. */ + const SIGVTALRM: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPROF` instead. */ + const SIGPROF: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGIO` instead. */ + const SIGIO: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPOLL` instead. */ + const SIGPOLL: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGPWR` instead. */ + const SIGPWR: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGSYS` instead. */ + const SIGSYS: number; + /** @deprecated since v6.3.0 - use `os.constants.signals.SIGUNUSED` instead. */ + const SIGUNUSED: number; + const defaultCoreCipherList: string; + const defaultCipherList: string; + const ENGINE_METHOD_RSA: number; + const ALPN_ENABLED: number; +} diff --git a/node_modules/@types/node/crypto.d.ts b/node_modules/@types/node/crypto.d.ts new file mode 100644 index 0000000..b7ecb7f --- /dev/null +++ b/node_modules/@types/node/crypto.d.ts @@ -0,0 +1,614 @@ +declare module "crypto" { + import * as stream from "stream"; + + interface Certificate { + exportChallenge(spkac: BinaryLike): Buffer; + exportPublicKey(spkac: BinaryLike): Buffer; + verifySpkac(spkac: NodeJS.ArrayBufferView): boolean; + } + const Certificate: { + new(): Certificate; + (): Certificate; + }; + + namespace constants { // https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_constants + const OPENSSL_VERSION_NUMBER: number; + + /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */ + const SSL_OP_ALL: number; + /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number; + /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_CIPHER_SERVER_PREFERENCE: number; + /** Instructs OpenSSL to use Cisco's "speshul" version of DTLS_BAD_VER. */ + const SSL_OP_CISCO_ANYCONNECT: number; + /** Instructs OpenSSL to turn on cookie exchange. */ + const SSL_OP_COOKIE_EXCHANGE: number; + /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */ + const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number; + /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */ + const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number; + /** Instructs OpenSSL to always use the tmp_rsa key when performing RSA operations. */ + const SSL_OP_EPHEMERAL_RSA: number; + /** Allows initial connection to servers that do not support RI. */ + const SSL_OP_LEGACY_SERVER_CONNECT: number; + const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number; + const SSL_OP_MICROSOFT_SESS_ID_BUG: number; + /** Instructs OpenSSL to disable the workaround for a man-in-the-middle protocol-version vulnerability in the SSL 2.0 server implementation. */ + const SSL_OP_MSIE_SSLV2_RSA_PADDING: number; + const SSL_OP_NETSCAPE_CA_DN_BUG: number; + const SSL_OP_NETSCAPE_CHALLENGE_BUG: number; + const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number; + const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number; + /** Instructs OpenSSL to disable support for SSL/TLS compression. */ + const SSL_OP_NO_COMPRESSION: number; + const SSL_OP_NO_QUERY_MTU: number; + /** Instructs OpenSSL to always start a new session when performing renegotiation. */ + const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number; + const SSL_OP_NO_SSLv2: number; + const SSL_OP_NO_SSLv3: number; + const SSL_OP_NO_TICKET: number; + const SSL_OP_NO_TLSv1: number; + const SSL_OP_NO_TLSv1_1: number; + const SSL_OP_NO_TLSv1_2: number; + const SSL_OP_PKCS1_CHECK_1: number; + const SSL_OP_PKCS1_CHECK_2: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral DH parameters. */ + const SSL_OP_SINGLE_DH_USE: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral ECDH parameters. */ + const SSL_OP_SINGLE_ECDH_USE: number; + const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number; + const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number; + const SSL_OP_TLS_BLOCK_PADDING_BUG: number; + const SSL_OP_TLS_D5_BUG: number; + /** Instructs OpenSSL to disable version rollback attack detection. */ + const SSL_OP_TLS_ROLLBACK_BUG: number; + + const ENGINE_METHOD_RSA: number; + const ENGINE_METHOD_DSA: number; + const ENGINE_METHOD_DH: number; + const ENGINE_METHOD_RAND: number; + const ENGINE_METHOD_EC: number; + const ENGINE_METHOD_CIPHERS: number; + const ENGINE_METHOD_DIGESTS: number; + const ENGINE_METHOD_PKEY_METHS: number; + const ENGINE_METHOD_PKEY_ASN1_METHS: number; + const ENGINE_METHOD_ALL: number; + const ENGINE_METHOD_NONE: number; + + const DH_CHECK_P_NOT_SAFE_PRIME: number; + const DH_CHECK_P_NOT_PRIME: number; + const DH_UNABLE_TO_CHECK_GENERATOR: number; + const DH_NOT_SUITABLE_GENERATOR: number; + + const ALPN_ENABLED: number; + + const RSA_PKCS1_PADDING: number; + const RSA_SSLV23_PADDING: number; + const RSA_NO_PADDING: number; + const RSA_PKCS1_OAEP_PADDING: number; + const RSA_X931_PADDING: number; + const RSA_PKCS1_PSS_PADDING: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */ + const RSA_PSS_SALTLEN_DIGEST: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */ + const RSA_PSS_SALTLEN_MAX_SIGN: number; + /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */ + const RSA_PSS_SALTLEN_AUTO: number; + + const POINT_CONVERSION_COMPRESSED: number; + const POINT_CONVERSION_UNCOMPRESSED: number; + const POINT_CONVERSION_HYBRID: number; + + /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */ + const defaultCoreCipherList: string; + /** Specifies the active default cipher list used by the current Node.js process (colon-separated values). */ + const defaultCipherList: string; + } + + interface HashOptions extends stream.TransformOptions { + /** + * For XOF hash functions such as `shake256`, the + * outputLength option can be used to specify the desired output length in bytes. + */ + outputLength?: number; + } + + /** @deprecated since v10.0.0 */ + const fips: boolean; + + function createHash(algorithm: string, options?: HashOptions): Hash; + function createHmac(algorithm: string, key: BinaryLike, options?: stream.TransformOptions): Hmac; + + type Utf8AsciiLatin1Encoding = "utf8" | "ascii" | "latin1"; + type HexBase64Latin1Encoding = "latin1" | "hex" | "base64"; + type Utf8AsciiBinaryEncoding = "utf8" | "ascii" | "binary"; + type HexBase64BinaryEncoding = "binary" | "base64" | "hex"; + type ECDHKeyFormat = "compressed" | "uncompressed" | "hybrid"; + + class Hash extends stream.Transform { + private constructor(); + update(data: BinaryLike): Hash; + update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Hash; + digest(): Buffer; + digest(encoding: HexBase64Latin1Encoding): string; + } + class Hmac extends stream.Transform { + private constructor(); + update(data: BinaryLike): Hmac; + update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Hmac; + digest(): Buffer; + digest(encoding: HexBase64Latin1Encoding): string; + } + + type KeyObjectType = 'secret' | 'public' | 'private'; + + interface KeyExportOptions { + type: 'pkcs1' | 'spki' | 'pkcs8' | 'sec1'; + format: T; + cipher?: string; + passphrase?: string | Buffer; + } + + class KeyObject { + private constructor(); + asymmetricKeyType?: KeyType; + /** + * For asymmetric keys, this property represents the size of the embedded key in + * bytes. This property is `undefined` for symmetric keys. + */ + asymmetricKeySize?: number; + export(options: KeyExportOptions<'pem'>): string | Buffer; + export(options?: KeyExportOptions<'der'>): Buffer; + symmetricSize?: number; + type: KeyObjectType; + } + + type CipherCCMTypes = 'aes-128-ccm' | 'aes-192-ccm' | 'aes-256-ccm'; + type CipherGCMTypes = 'aes-128-gcm' | 'aes-192-gcm' | 'aes-256-gcm'; + + type BinaryLike = string | NodeJS.ArrayBufferView; + + type CipherKey = BinaryLike | KeyObject; + + interface CipherCCMOptions extends stream.TransformOptions { + authTagLength: number; + } + interface CipherGCMOptions extends stream.TransformOptions { + authTagLength?: number; + } + /** @deprecated since v10.0.0 use createCipheriv() */ + function createCipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): CipherCCM; + /** @deprecated since v10.0.0 use createCipheriv() */ + function createCipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): CipherGCM; + /** @deprecated since v10.0.0 use createCipheriv() */ + function createCipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Cipher; + + function createCipheriv( + algorithm: CipherCCMTypes, + key: CipherKey, + iv: BinaryLike | null, + options: CipherCCMOptions + ): CipherCCM; + function createCipheriv( + algorithm: CipherGCMTypes, + key: CipherKey, + iv: BinaryLike | null, + options?: CipherGCMOptions + ): CipherGCM; + function createCipheriv( + algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions + ): Cipher; + + class Cipher extends stream.Transform { + private constructor(); + update(data: BinaryLike): Buffer; + update(data: string, input_encoding: Utf8AsciiBinaryEncoding): Buffer; + update(data: NodeJS.ArrayBufferView, input_encoding: undefined, output_encoding: HexBase64BinaryEncoding): string; + update(data: string, input_encoding: Utf8AsciiBinaryEncoding | undefined, output_encoding: HexBase64BinaryEncoding): string; + final(): Buffer; + final(output_encoding: string): string; + setAutoPadding(auto_padding?: boolean): this; + // getAuthTag(): Buffer; + // setAAD(buffer: Buffer): this; // docs only say buffer + } + interface CipherCCM extends Cipher { + setAAD(buffer: Buffer, options: { plaintextLength: number }): this; + getAuthTag(): Buffer; + } + interface CipherGCM extends Cipher { + setAAD(buffer: Buffer, options?: { plaintextLength: number }): this; + getAuthTag(): Buffer; + } + /** @deprecated since v10.0.0 use createDecipheriv() */ + function createDecipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): DecipherCCM; + /** @deprecated since v10.0.0 use createDecipheriv() */ + function createDecipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): DecipherGCM; + /** @deprecated since v10.0.0 use createDecipheriv() */ + function createDecipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Decipher; + + function createDecipheriv( + algorithm: CipherCCMTypes, + key: BinaryLike, + iv: BinaryLike | null, + options: CipherCCMOptions, + ): DecipherCCM; + function createDecipheriv( + algorithm: CipherGCMTypes, + key: BinaryLike, + iv: BinaryLike | null, + options?: CipherGCMOptions, + ): DecipherGCM; + function createDecipheriv(algorithm: string, key: BinaryLike, iv: BinaryLike | null, options?: stream.TransformOptions): Decipher; + + class Decipher extends stream.Transform { + private constructor(); + update(data: NodeJS.ArrayBufferView): Buffer; + update(data: string, input_encoding: HexBase64BinaryEncoding): Buffer; + update(data: NodeJS.ArrayBufferView, input_encoding: HexBase64BinaryEncoding | undefined, output_encoding: Utf8AsciiBinaryEncoding): string; + update(data: string, input_encoding: HexBase64BinaryEncoding | undefined, output_encoding: Utf8AsciiBinaryEncoding): string; + final(): Buffer; + final(output_encoding: string): string; + setAutoPadding(auto_padding?: boolean): this; + // setAuthTag(tag: NodeJS.ArrayBufferView): this; + // setAAD(buffer: NodeJS.ArrayBufferView): this; + } + interface DecipherCCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD(buffer: NodeJS.ArrayBufferView, options: { plaintextLength: number }): this; + } + interface DecipherGCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD(buffer: NodeJS.ArrayBufferView, options?: { plaintextLength: number }): this; + } + + interface PrivateKeyInput { + key: string | Buffer; + format?: KeyFormat; + type?: 'pkcs1' | 'pkcs8' | 'sec1'; + passphrase?: string | Buffer; + } + + interface PublicKeyInput { + key: string | Buffer; + format?: KeyFormat; + type?: 'pkcs1' | 'spki'; + } + + function createPrivateKey(key: PrivateKeyInput | string | Buffer): KeyObject; + function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject): KeyObject; + function createSecretKey(key: Buffer): KeyObject; + + function createSign(algorithm: string, options?: stream.WritableOptions): Signer; + + interface SigningOptions { + /** + * @See crypto.constants.RSA_PKCS1_PADDING + */ + padding?: number; + saltLength?: number; + } + + interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions { + } + + type KeyLike = string | Buffer | KeyObject; + + class Signer extends stream.Writable { + private constructor(); + + update(data: BinaryLike): Signer; + update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Signer; + sign(private_key: SignPrivateKeyInput | KeyLike): Buffer; + sign(private_key: SignPrivateKeyInput | KeyLike, output_format: HexBase64Latin1Encoding): string; + } + + function createVerify(algorithm: string, options?: stream.WritableOptions): Verify; + class Verify extends stream.Writable { + private constructor(); + + update(data: BinaryLike): Verify; + update(data: string, input_encoding: Utf8AsciiLatin1Encoding): Verify; + verify(object: Object | KeyLike, signature: NodeJS.ArrayBufferView): boolean; + verify(object: Object | KeyLike, signature: string, signature_format?: HexBase64Latin1Encoding): boolean; + // https://nodejs.org/api/crypto.html#crypto_verifier_verify_object_signature_signature_format + // The signature field accepts a TypedArray type, but it is only available starting ES2017 + } + function createDiffieHellman(prime_length: number, generator?: number | NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding): DiffieHellman; + function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: number | NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: string, prime_encoding: HexBase64Latin1Encoding, generator: string, generator_encoding: HexBase64Latin1Encoding): DiffieHellman; + class DiffieHellman { + private constructor(); + generateKeys(): Buffer; + generateKeys(encoding: HexBase64Latin1Encoding): string; + computeSecret(other_public_key: NodeJS.ArrayBufferView): Buffer; + computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer; + computeSecret(other_public_key: NodeJS.ArrayBufferView, output_encoding: HexBase64Latin1Encoding): string; + computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string; + getPrime(): Buffer; + getPrime(encoding: HexBase64Latin1Encoding): string; + getGenerator(): Buffer; + getGenerator(encoding: HexBase64Latin1Encoding): string; + getPublicKey(): Buffer; + getPublicKey(encoding: HexBase64Latin1Encoding): string; + getPrivateKey(): Buffer; + getPrivateKey(encoding: HexBase64Latin1Encoding): string; + setPublicKey(public_key: NodeJS.ArrayBufferView): void; + setPublicKey(public_key: string, encoding: string): void; + setPrivateKey(private_key: NodeJS.ArrayBufferView): void; + setPrivateKey(private_key: string, encoding: string): void; + verifyError: number; + } + function getDiffieHellman(group_name: string): DiffieHellman; + function pbkdf2( + password: BinaryLike, + salt: BinaryLike, + iterations: number, + keylen: number, + digest: string, + callback: (err: Error | null, derivedKey: Buffer) => any, + ): void; + function pbkdf2Sync(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string): Buffer; + + function randomBytes(size: number): Buffer; + function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + function pseudoRandomBytes(size: number): Buffer; + function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + + function randomFillSync(buffer: T, offset?: number, size?: number): T; + function randomFill(buffer: T, callback: (err: Error | null, buf: T) => void): void; + function randomFill(buffer: T, offset: number, callback: (err: Error | null, buf: T) => void): void; + function randomFill(buffer: T, offset: number, size: number, callback: (err: Error | null, buf: T) => void): void; + + interface ScryptOptions { + N?: number; + r?: number; + p?: number; + maxmem?: number; + } + function scrypt( + password: BinaryLike, + salt: BinaryLike, + keylen: number, callback: (err: Error | null, derivedKey: Buffer) => void, + ): void; + function scrypt( + password: BinaryLike, + salt: BinaryLike, + keylen: number, + options: ScryptOptions, + callback: (err: Error | null, derivedKey: Buffer) => void, + ): void; + function scryptSync(password: BinaryLike, salt: BinaryLike, keylen: number, options?: ScryptOptions): Buffer; + + interface RsaPublicKey { + key: KeyLike; + padding?: number; + } + interface RsaPrivateKey { + key: KeyLike; + passphrase?: string; + /** + * @default 'sha1' + */ + oaepHash?: string; + oaepLabel?: NodeJS.TypedArray; + padding?: number; + } + function publicEncrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function publicDecrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function privateDecrypt(private_key: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function privateEncrypt(private_key: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + function getCiphers(): string[]; + function getCurves(): string[]; + function getHashes(): string[]; + class ECDH { + private constructor(); + static convertKey( + key: BinaryLike, + curve: string, + inputEncoding?: HexBase64Latin1Encoding, + outputEncoding?: "latin1" | "hex" | "base64", + format?: "uncompressed" | "compressed" | "hybrid", + ): Buffer | string; + generateKeys(): Buffer; + generateKeys(encoding: HexBase64Latin1Encoding, format?: ECDHKeyFormat): string; + computeSecret(other_public_key: NodeJS.ArrayBufferView): Buffer; + computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding): Buffer; + computeSecret(other_public_key: NodeJS.ArrayBufferView, output_encoding: HexBase64Latin1Encoding): string; + computeSecret(other_public_key: string, input_encoding: HexBase64Latin1Encoding, output_encoding: HexBase64Latin1Encoding): string; + getPrivateKey(): Buffer; + getPrivateKey(encoding: HexBase64Latin1Encoding): string; + getPublicKey(): Buffer; + getPublicKey(encoding: HexBase64Latin1Encoding, format?: ECDHKeyFormat): string; + setPrivateKey(private_key: NodeJS.ArrayBufferView): void; + setPrivateKey(private_key: string, encoding: HexBase64Latin1Encoding): void; + } + function createECDH(curve_name: string): ECDH; + function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean; + /** @deprecated since v10.0.0 */ + const DEFAULT_ENCODING: string; + + type KeyType = 'rsa' | 'dsa' | 'ec'; + type KeyFormat = 'pem' | 'der'; + + interface BasePrivateKeyEncodingOptions { + format: T; + cipher?: string; + passphrase?: string; + } + + interface KeyPairKeyObjectResult { + publicKey: KeyObject; + privateKey: KeyObject; + } + + interface ECKeyPairKeyObjectOptions { + /** + * Name of the curve to use. + */ + namedCurve: string; + } + + interface RSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + + /** + * @default 0x10001 + */ + publicExponent?: number; + } + + interface DSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + + /** + * Size of q in bits + */ + divisorLength: number; + } + + interface RSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * @default 0x10001 + */ + publicExponent?: number; + + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs1' | 'pkcs8'; + }; + } + + interface DSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Size of q in bits + */ + divisorLength: number; + + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + + interface ECKeyPairOptions { + /** + * Name of the curve to use. + */ + namedCurve: string; + + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'sec1' | 'pkcs8'; + }; + } + + interface KeyPairSyncResult { + publicKey: T1; + privateKey: T2; + } + + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + + namespace generateKeyPair { + function __promisify__(type: "rsa", options: RSAKeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>; + function __promisify__(type: "rsa", options: RSAKeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>; + function __promisify__(type: "rsa", options: RSAKeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>; + function __promisify__(type: "rsa", options: RSAKeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>; + function __promisify__(type: "rsa", options: RSAKeyPairKeyObjectOptions): Promise; + + function __promisify__(type: "dsa", options: DSAKeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>; + function __promisify__(type: "dsa", options: DSAKeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>; + function __promisify__(type: "dsa", options: DSAKeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>; + function __promisify__(type: "dsa", options: DSAKeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>; + function __promisify__(type: "dsa", options: DSAKeyPairKeyObjectOptions): Promise; + + function __promisify__(type: "ec", options: ECKeyPairOptions<'pem', 'pem'>): Promise<{ publicKey: string, privateKey: string }>; + function __promisify__(type: "ec", options: ECKeyPairOptions<'pem', 'der'>): Promise<{ publicKey: string, privateKey: Buffer }>; + function __promisify__(type: "ec", options: ECKeyPairOptions<'der', 'pem'>): Promise<{ publicKey: Buffer, privateKey: string }>; + function __promisify__(type: "ec", options: ECKeyPairOptions<'der', 'der'>): Promise<{ publicKey: Buffer, privateKey: Buffer }>; + function __promisify__(type: "ec", options: ECKeyPairKeyObjectOptions): Promise; + } + + /** + * Calculates and returns the signature for `data` using the given private key and + * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is + * dependent upon the key type (especially Ed25519 and Ed448). + * + * If `key` is not a [`KeyObject`][], this function behaves as if `key` had been + * passed to [`crypto.createPrivateKey()`][]. + */ + function sign(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | SignPrivateKeyInput): Buffer; + + interface VerifyKeyWithOptions extends KeyObject, SigningOptions { + } + + /** + * Calculates and returns the signature for `data` using the given private key and + * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is + * dependent upon the key type (especially Ed25519 and Ed448). + * + * If `key` is not a [`KeyObject`][], this function behaves as if `key` had been + * passed to [`crypto.createPublicKey()`][]. + */ + function verify(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | VerifyKeyWithOptions, signature: NodeJS.ArrayBufferView): Buffer; +} diff --git a/node_modules/@types/node/dgram.d.ts b/node_modules/@types/node/dgram.d.ts new file mode 100644 index 0000000..f04e9a2 --- /dev/null +++ b/node_modules/@types/node/dgram.d.ts @@ -0,0 +1,118 @@ +declare module "dgram" { + import { AddressInfo } from "net"; + import * as dns from "dns"; + import * as events from "events"; + + interface RemoteInfo { + address: string; + family: 'IPv4' | 'IPv6'; + port: number; + size: number; + } + + interface BindOptions { + port?: number; + address?: string; + exclusive?: boolean; + fd?: number; + } + + type SocketType = "udp4" | "udp6"; + + interface SocketOptions { + type: SocketType; + reuseAddr?: boolean; + /** + * @default false + */ + ipv6Only?: boolean; + recvBufferSize?: number; + sendBufferSize?: number; + lookup?: (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void; + } + + function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + + class Socket extends events.EventEmitter { + addMembership(multicastAddress: string, multicastInterface?: string): void; + address(): AddressInfo; + bind(port?: number, address?: string, callback?: () => void): void; + bind(port?: number, callback?: () => void): void; + bind(callback?: () => void): void; + bind(options: BindOptions, callback?: () => void): void; + close(callback?: () => void): void; + connect(port: number, address?: string, callback?: () => void): void; + connect(port: number, callback: () => void): void; + disconnect(): void; + dropMembership(multicastAddress: string, multicastInterface?: string): void; + getRecvBufferSize(): number; + getSendBufferSize(): number; + ref(): this; + remoteAddress(): AddressInfo; + send(msg: string | Uint8Array | any[], port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | any[], port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | any[], callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void; + setBroadcast(flag: boolean): void; + setMulticastInterface(multicastInterface: string): void; + setMulticastLoopback(flag: boolean): void; + setMulticastTTL(ttl: number): void; + setRecvBufferSize(size: number): void; + setSendBufferSize(size: number): void; + setTTL(ttl: number): void; + unref(): this; + + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. error + * 4. listening + * 5. message + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "connect", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "listening", listener: () => void): this; + addListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "connect"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "listening"): boolean; + emit(event: "message", msg: Buffer, rinfo: RemoteInfo): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "connect", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "listening", listener: () => void): this; + on(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "connect", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "listening", listener: () => void): this; + once(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "connect", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "listening", listener: () => void): this; + prependListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "connect", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "listening", listener: () => void): this; + prependOnceListener(event: "message", listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + } +} diff --git a/node_modules/@types/node/dns.d.ts b/node_modules/@types/node/dns.d.ts new file mode 100644 index 0000000..d2b0505 --- /dev/null +++ b/node_modules/@types/node/dns.d.ts @@ -0,0 +1,366 @@ +declare module "dns" { + // Supported getaddrinfo flags. + const ADDRCONFIG: number; + const V4MAPPED: number; + + interface LookupOptions { + family?: number; + hints?: number; + all?: boolean; + verbatim?: boolean; + } + + interface LookupOneOptions extends LookupOptions { + all?: false; + } + + interface LookupAllOptions extends LookupOptions { + all: true; + } + + interface LookupAddress { + address: string; + family: number; + } + + function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void; + function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void; + function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace lookup { + function __promisify__(hostname: string, options: LookupAllOptions): Promise; + function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise; + function __promisify__(hostname: string, options: LookupOptions): Promise; + } + + function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void; + + namespace lookupService { + function __promisify__(address: string, port: number): Promise<{ hostname: string, service: string }>; + } + + interface ResolveOptions { + ttl: boolean; + } + + interface ResolveWithTtlOptions extends ResolveOptions { + ttl: true; + } + + interface RecordWithTtl { + address: string; + ttl: number; + } + + /** @deprecated Use AnyARecord or AnyAaaaRecord instead. */ + type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord; + + interface AnyARecord extends RecordWithTtl { + type: "A"; + } + + interface AnyAaaaRecord extends RecordWithTtl { + type: "AAAA"; + } + + interface MxRecord { + priority: number; + exchange: string; + } + + interface AnyMxRecord extends MxRecord { + type: "MX"; + } + + interface NaptrRecord { + flags: string; + service: string; + regexp: string; + replacement: string; + order: number; + preference: number; + } + + interface AnyNaptrRecord extends NaptrRecord { + type: "NAPTR"; + } + + interface SoaRecord { + nsname: string; + hostmaster: string; + serial: number; + refresh: number; + retry: number; + expire: number; + minttl: number; + } + + interface AnySoaRecord extends SoaRecord { + type: "SOA"; + } + + interface SrvRecord { + priority: number; + weight: number; + port: number; + name: string; + } + + interface AnySrvRecord extends SrvRecord { + type: "SRV"; + } + + interface AnyTxtRecord { + type: "TXT"; + entries: string[]; + } + + interface AnyNsRecord { + type: "NS"; + value: string; + } + + interface AnyPtrRecord { + type: "PTR"; + value: string; + } + + interface AnyCnameRecord { + type: "CNAME"; + value: string; + } + + type AnyRecord = AnyARecord | + AnyAaaaRecord | + AnyCnameRecord | + AnyMxRecord | + AnyNaptrRecord | + AnyNsRecord | + AnyPtrRecord | + AnySoaRecord | + AnySrvRecord | + AnyTxtRecord; + + function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve(hostname: string, rrtype: "A", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve(hostname: string, rrtype: "AAAA", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve(hostname: string, rrtype: "ANY", callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + function resolve(hostname: string, rrtype: "CNAME", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve(hostname: string, rrtype: "MX", callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + function resolve(hostname: string, rrtype: "NAPTR", callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + function resolve(hostname: string, rrtype: "NS", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve(hostname: string, rrtype: "PTR", callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve(hostname: string, rrtype: "SOA", callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void; + function resolve(hostname: string, rrtype: "SRV", callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + function resolve(hostname: string, rrtype: "TXT", callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + function resolve( + hostname: string, + rrtype: string, + callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void, + ): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace resolve { + function __promisify__(hostname: string, rrtype?: "A" | "AAAA" | "CNAME" | "NS" | "PTR"): Promise; + function __promisify__(hostname: string, rrtype: "ANY"): Promise; + function __promisify__(hostname: string, rrtype: "MX"): Promise; + function __promisify__(hostname: string, rrtype: "NAPTR"): Promise; + function __promisify__(hostname: string, rrtype: "SOA"): Promise; + function __promisify__(hostname: string, rrtype: "SRV"): Promise; + function __promisify__(hostname: string, rrtype: "TXT"): Promise; + function __promisify__(hostname: string, rrtype: string): Promise; + } + + function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace resolve4 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + + function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace resolve6 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + + function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + namespace resolveCname { + function __promisify__(hostname: string): Promise; + } + + function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + namespace resolveMx { + function __promisify__(hostname: string): Promise; + } + + function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + namespace resolveNaptr { + function __promisify__(hostname: string): Promise; + } + + function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + namespace resolveNs { + function __promisify__(hostname: string): Promise; + } + + function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + namespace resolvePtr { + function __promisify__(hostname: string): Promise; + } + + function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void; + namespace resolveSoa { + function __promisify__(hostname: string): Promise; + } + + function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + namespace resolveSrv { + function __promisify__(hostname: string): Promise; + } + + function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + namespace resolveTxt { + function __promisify__(hostname: string): Promise; + } + + function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + namespace resolveAny { + function __promisify__(hostname: string): Promise; + } + + function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void; + function setServers(servers: ReadonlyArray): void; + function getServers(): string[]; + + // Error codes + const NODATA: string; + const FORMERR: string; + const SERVFAIL: string; + const NOTFOUND: string; + const NOTIMP: string; + const REFUSED: string; + const BADQUERY: string; + const BADNAME: string; + const BADFAMILY: string; + const BADRESP: string; + const CONNREFUSED: string; + const TIMEOUT: string; + const EOF: string; + const FILE: string; + const NOMEM: string; + const DESTRUCTION: string; + const BADSTR: string; + const BADFLAGS: string; + const NONAME: string; + const BADHINTS: string; + const NOTINITIALIZED: string; + const LOADIPHLPAPI: string; + const ADDRGETNETWORKPARAMS: string; + const CANCELLED: string; + + class Resolver { + getServers: typeof getServers; + setServers: typeof setServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + cancel(): void; + } + + namespace promises { + function getServers(): string[]; + + function lookup(hostname: string, family: number): Promise; + function lookup(hostname: string, options: LookupOneOptions): Promise; + function lookup(hostname: string, options: LookupAllOptions): Promise; + function lookup(hostname: string, options: LookupOptions): Promise; + function lookup(hostname: string): Promise; + + function lookupService(address: string, port: number): Promise<{ hostname: string, service: string }>; + + function resolve(hostname: string): Promise; + function resolve(hostname: string, rrtype: "A"): Promise; + function resolve(hostname: string, rrtype: "AAAA"): Promise; + function resolve(hostname: string, rrtype: "ANY"): Promise; + function resolve(hostname: string, rrtype: "CNAME"): Promise; + function resolve(hostname: string, rrtype: "MX"): Promise; + function resolve(hostname: string, rrtype: "NAPTR"): Promise; + function resolve(hostname: string, rrtype: "NS"): Promise; + function resolve(hostname: string, rrtype: "PTR"): Promise; + function resolve(hostname: string, rrtype: "SOA"): Promise; + function resolve(hostname: string, rrtype: "SRV"): Promise; + function resolve(hostname: string, rrtype: "TXT"): Promise; + function resolve(hostname: string, rrtype: string): Promise; + + function resolve4(hostname: string): Promise; + function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve4(hostname: string, options: ResolveOptions): Promise; + + function resolve6(hostname: string): Promise; + function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve6(hostname: string, options: ResolveOptions): Promise; + + function resolveAny(hostname: string): Promise; + + function resolveCname(hostname: string): Promise; + + function resolveMx(hostname: string): Promise; + + function resolveNaptr(hostname: string): Promise; + + function resolveNs(hostname: string): Promise; + + function resolvePtr(hostname: string): Promise; + + function resolveSoa(hostname: string): Promise; + + function resolveSrv(hostname: string): Promise; + + function resolveTxt(hostname: string): Promise; + + function reverse(ip: string): Promise; + + function setServers(servers: ReadonlyArray): void; + + class Resolver { + getServers: typeof getServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + setServers: typeof setServers; + } + } +} diff --git a/node_modules/@types/node/domain.d.ts b/node_modules/@types/node/domain.d.ts new file mode 100644 index 0000000..45e388c --- /dev/null +++ b/node_modules/@types/node/domain.d.ts @@ -0,0 +1,16 @@ +declare module "domain" { + import * as events from "events"; + + class Domain extends events.EventEmitter implements NodeJS.Domain { + run(fn: (...args: any[]) => T, ...args: any[]): T; + add(emitter: events.EventEmitter | NodeJS.Timer): void; + remove(emitter: events.EventEmitter | NodeJS.Timer): void; + bind(cb: T): T; + intercept(cb: T): T; + members: Array; + enter(): void; + exit(): void; + } + + function create(): Domain; +} diff --git a/node_modules/@types/node/events.d.ts b/node_modules/@types/node/events.d.ts new file mode 100644 index 0000000..03f5b90 --- /dev/null +++ b/node_modules/@types/node/events.d.ts @@ -0,0 +1,39 @@ +declare module "events" { + class internal extends NodeJS.EventEmitter { } + + interface NodeEventTarget { + once(event: string | symbol, listener: (...args: any[]) => void): this; + } + + interface DOMEventTarget { + addEventListener(event: string, listener: (...args: any[]) => void, opts?: { once: boolean }): any; + } + + namespace internal { + function once(emitter: NodeEventTarget, event: string | symbol): Promise; + function once(emitter: DOMEventTarget, event: string): Promise; + class EventEmitter extends internal { + /** @deprecated since v4.0.0 */ + static listenerCount(emitter: EventEmitter, event: string | symbol): number; + static defaultMaxListeners: number; + + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + off(event: string | symbol, listener: (...args: any[]) => void): this; + removeAllListeners(event?: string | symbol): this; + setMaxListeners(n: number): this; + getMaxListeners(): number; + listeners(event: string | symbol): Function[]; + rawListeners(event: string | symbol): Function[]; + emit(event: string | symbol, ...args: any[]): boolean; + eventNames(): Array; + listenerCount(type: string | symbol): number; + } + } + + export = internal; +} diff --git a/node_modules/@types/node/fs.d.ts b/node_modules/@types/node/fs.d.ts new file mode 100644 index 0000000..6992b5f --- /dev/null +++ b/node_modules/@types/node/fs.d.ts @@ -0,0 +1,2451 @@ +declare module "fs" { + import * as stream from "stream"; + import * as events from "events"; + import { URL } from "url"; + + /** + * Valid types for path values in "fs". + */ + type PathLike = string | Buffer | URL; + + type NoParamCallback = (err: NodeJS.ErrnoException | null) => void; + + interface StatsBase { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + + dev: number; + ino: number; + mode: number; + nlink: number; + uid: number; + gid: number; + rdev: number; + size: number; + blksize: number; + blocks: number; + atimeMs: number; + mtimeMs: number; + ctimeMs: number; + birthtimeMs: number; + atime: Date; + mtime: Date; + ctime: Date; + birthtime: Date; + } + + interface Stats extends StatsBase { + } + + class Stats { + } + + class Dirent { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + name: string; + } + + /** + * A class representing a directory stream. + */ + class Dir { + readonly path: string; + + /** + * Asynchronously iterates over the directory via `readdir(3)` until all entries have been read. + */ + [Symbol.asyncIterator](): AsyncIterableIterator; + + /** + * Asynchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + */ + close(): Promise; + close(cb: NoParamCallback): void; + + /** + * Synchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + */ + closeSync(): void; + + /** + * Asynchronously read the next directory entry via `readdir(3)` as an `Dirent`. + * After the read is completed, a value is returned that will be resolved with an `Dirent`, or `null` if there are no more directory entries to read. + * Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. + */ + read(): Promise; + read(cb: (err: NodeJS.ErrnoException | null, dirEnt: Dirent | null) => void): void; + + /** + * Synchronously read the next directory entry via `readdir(3)` as a `Dirent`. + * If there are no more directory entries to read, null will be returned. + * Directory entries returned by this function are in no particular order as provided by the operating system's underlying directory mechanisms. + */ + readSync(): Dirent; + } + + interface FSWatcher extends events.EventEmitter { + close(): void; + + /** + * events.EventEmitter + * 1. change + * 2. error + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + addListener(event: "error", listener: (error: Error) => void): this; + addListener(event: "close", listener: () => void): this; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + on(event: "error", listener: (error: Error) => void): this; + on(event: "close", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + once(event: "error", listener: (error: Error) => void): this; + once(event: "close", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + prependListener(event: "error", listener: (error: Error) => void): this; + prependListener(event: "close", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "change", listener: (eventType: string, filename: string | Buffer) => void): this; + prependOnceListener(event: "error", listener: (error: Error) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + } + + class ReadStream extends stream.Readable { + close(): void; + bytesRead: number; + path: string | Buffer; + + /** + * events.EventEmitter + * 1. open + * 2. close + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "open", listener: (fd: number) => void): this; + addListener(event: "close", listener: () => void): this; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "open", listener: (fd: number) => void): this; + on(event: "close", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "open", listener: (fd: number) => void): this; + once(event: "close", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "open", listener: (fd: number) => void): this; + prependListener(event: "close", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "open", listener: (fd: number) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + } + + class WriteStream extends stream.Writable { + close(): void; + bytesWritten: number; + path: string | Buffer; + + /** + * events.EventEmitter + * 1. open + * 2. close + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "open", listener: (fd: number) => void): this; + addListener(event: "close", listener: () => void): this; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "open", listener: (fd: number) => void): this; + on(event: "close", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "open", listener: (fd: number) => void): this; + once(event: "close", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "open", listener: (fd: number) => void): this; + prependListener(event: "close", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "open", listener: (fd: number) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + } + + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function rename(oldPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace rename { + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(oldPath: PathLike, newPath: PathLike): Promise; + } + + /** + * Synchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function renameSync(oldPath: PathLike, newPath: PathLike): void; + + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function truncate(path: PathLike, len: number | undefined | null, callback: NoParamCallback): void; + + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function truncate(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace truncate { + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(path: PathLike, len?: number | null): Promise; + } + + /** + * Synchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function truncateSync(path: PathLike, len?: number | null): void; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + function ftruncate(fd: number, len: number | undefined | null, callback: NoParamCallback): void; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + */ + function ftruncate(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace ftruncate { + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(fd: number, len?: number | null): Promise; + } + + /** + * Synchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + function ftruncateSync(fd: number, len?: number | null): void; + + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function chown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace chown { + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + + /** + * Synchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function chownSync(path: PathLike, uid: number, gid: number): void; + + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + function fchown(fd: number, uid: number, gid: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace fchown { + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + function __promisify__(fd: number, uid: number, gid: number): Promise; + } + + /** + * Synchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + function fchownSync(fd: number, uid: number, gid: number): void; + + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lchown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace lchown { + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + + /** + * Synchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lchownSync(path: PathLike, uid: number, gid: number): void; + + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function chmod(path: PathLike, mode: string | number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace chmod { + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: string | number): Promise; + } + + /** + * Synchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function chmodSync(path: PathLike, mode: string | number): void; + + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function fchmod(fd: number, mode: string | number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace fchmod { + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(fd: number, mode: string | number): Promise; + } + + /** + * Synchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function fchmodSync(fd: number, mode: string | number): void; + + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function lchmod(path: PathLike, mode: string | number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace lchmod { + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: string | number): Promise; + } + + /** + * Synchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function lchmodSync(path: PathLike, mode: string | number): void; + + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function stat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace stat { + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike): Promise; + } + + /** + * Synchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function statSync(path: PathLike): Stats; + + /** + * Asynchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + function fstat(fd: number, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace fstat { + /** + * Asynchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + + /** + * Synchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + function fstatSync(fd: number): Stats; + + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lstat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace lstat { + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike): Promise; + } + + /** + * Synchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lstatSync(path: PathLike): Stats; + + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function link(existingPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace link { + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(existingPath: PathLike, newPath: PathLike): Promise; + } + + /** + * Synchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function linkSync(existingPath: PathLike, newPath: PathLike): void; + + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function symlink(target: PathLike, path: PathLike, type: symlink.Type | undefined | null, callback: NoParamCallback): void; + + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + */ + function symlink(target: PathLike, path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace symlink { + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function __promisify__(target: PathLike, path: PathLike, type?: string | null): Promise; + + type Type = "dir" | "file" | "junction"; + } + + /** + * Synchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type | null): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink( + path: PathLike, + options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, linkString: string) => void + ): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options: { encoding: "buffer" } | "buffer", callback: (err: NodeJS.ErrnoException | null, linkString: Buffer) => void): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, linkString: string | Buffer) => void): void; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function readlink(path: PathLike, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace readlink { + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; + } + + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlinkSync(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; + + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlinkSync(path: PathLike, options: { encoding: "buffer" } | "buffer"): Buffer; + + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlinkSync(path: PathLike, options?: { encoding?: string | null } | string | null): string | Buffer; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath( + path: PathLike, + options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void + ): void; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options: { encoding: "buffer" } | "buffer", callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function realpath(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace realpath { + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; + + function native( + path: PathLike, + options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void + ): void; + function native(path: PathLike, options: { encoding: "buffer" } | "buffer", callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + function native(path: PathLike, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + function native(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + } + + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpathSync(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; + + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpathSync(path: PathLike, options: { encoding: "buffer" } | "buffer"): Buffer; + + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpathSync(path: PathLike, options?: { encoding?: string | null } | string | null): string | Buffer; + + namespace realpathSync { + function native(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; + function native(path: PathLike, options: { encoding: "buffer" } | "buffer"): Buffer; + function native(path: PathLike, options?: { encoding?: string | null } | string | null): string | Buffer; + } + + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function unlink(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace unlink { + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike): Promise; + } + + /** + * Synchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function unlinkSync(path: PathLike): void; + + interface RmDirOptions { + /** + * If `true`, perform a recursive directory removal. In + * recursive mode, errors are not reported if `path` does not exist, and + * operations are retried on failure. + * @experimental + * @default false + */ + recursive?: boolean; + } + + interface RmDirAsyncOptions extends RmDirOptions { + /** + * If an `EMFILE` error is encountered, Node.js will + * retry the operation with a linear backoff of 1ms longer on each try until the + * timeout duration passes this limit. This option is ignored if the `recursive` + * option is not `true`. + * @default 1000 + */ + emfileWait?: number; + /** + * If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error is + * encountered, Node.js will retry the operation with a linear backoff wait of + * 100ms longer on each try. This option represents the number of retries. This + * option is ignored if the `recursive` option is not `true`. + * @default 3 + */ + maxBusyTries?: number; + } + + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function rmdir(path: PathLike, callback: NoParamCallback): void; + function rmdir(path: PathLike, options: RmDirAsyncOptions, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace rmdir { + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, options?: RmDirAsyncOptions): Promise; + } + + /** + * Synchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function rmdirSync(path: PathLike, options?: RmDirOptions): void; + + interface MakeDirectoryOptions { + /** + * Indicates whether parent folders should be created. + * @default false + */ + recursive?: boolean; + /** + * A file mode. If a string is passed, it is parsed as an octal integer. If not specified + * @default 0o777. + */ + mode?: number; + } + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options: number | string | MakeDirectoryOptions | undefined | null, callback: NoParamCallback): void; + + /** + * Asynchronous mkdir(2) - create a directory with a mode of `0o777`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function mkdir(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace mkdir { + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__(path: PathLike, options?: number | string | MakeDirectoryOptions | null): Promise; + } + + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdirSync(path: PathLike, options?: number | string | MakeDirectoryOptions | null): void; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: { encoding?: BufferEncoding | null } | BufferEncoding | undefined | null, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: "buffer" | { encoding: "buffer" }, callback: (err: NodeJS.ErrnoException | null, folder: Buffer) => void): void; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: { encoding?: string | null } | string | undefined | null, callback: (err: NodeJS.ErrnoException | null, folder: string | Buffer) => void): void; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + */ + function mkdtemp(prefix: string, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace mkdtemp { + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options: { encoding: "buffer" } | "buffer"): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: { encoding?: string | null } | string | null): Promise; + } + + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtempSync(prefix: string, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): string; + + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtempSync(prefix: string, options: { encoding: "buffer" } | "buffer"): Buffer; + + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtempSync(prefix: string, options?: { encoding?: string | null } | string | null): string | Buffer; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, files: string[]) => void, + ): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer", callback: (err: NodeJS.ErrnoException | null, files: Buffer[]) => void): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options: { encoding?: string | null; withFileTypes?: false } | string | undefined | null, + callback: (err: NodeJS.ErrnoException | null, files: string[] | Buffer[]) => void, + ): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function readdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null, files: string[]) => void): void; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdir(path: PathLike, options: { encoding?: string | null; withFileTypes: true }, callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace readdir { + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: "buffer" | { encoding: "buffer"; withFileTypes?: false }): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent + */ + function __promisify__(path: PathLike, options: { encoding?: string | null; withFileTypes: true }): Promise; + } + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdirSync(path: PathLike, options?: { encoding: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): string[]; + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdirSync(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer"): Buffer[]; + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdirSync(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): string[] | Buffer[]; + + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdirSync(path: PathLike, options: { encoding?: string | null; withFileTypes: true }): Dirent[]; + + /** + * Asynchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + function close(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace close { + /** + * Asynchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + + /** + * Synchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + function closeSync(fd: number): void; + + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + function open(path: PathLike, flags: string | number, mode: string | number | undefined | null, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function open(path: PathLike, flags: string | number, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace open { + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + function __promisify__(path: PathLike, flags: string | number, mode?: string | number | null): Promise; + } + + /** + * Synchronous open(2) - open and possibly create a file, returning a file descriptor.. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + function openSync(path: PathLike, flags: string | number, mode?: string | number | null): number; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace utimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; + } + + /** + * Synchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function utimesSync(path: PathLike, atime: string | number | Date, mtime: string | number | Date): void; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function futimes(fd: number, atime: string | number | Date, mtime: string | number | Date, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace futimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(fd: number, atime: string | number | Date, mtime: string | number | Date): Promise; + } + + /** + * Synchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function futimesSync(fd: number, atime: string | number | Date, mtime: string | number | Date): void; + + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + function fsync(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace fsync { + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + + /** + * Synchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + function fsyncSync(fd: number): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + position: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + */ + function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void, + ): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + */ + function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + */ + function write(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void): void; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. If something other than a string is supplied it will be coerced to a string. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function write( + fd: number, + string: any, + position: number | undefined | null, + encoding: string | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void, + ): void; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. If something other than a string is supplied it will be coerced to a string. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function write(fd: number, string: any, position: number | undefined | null, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. If something other than a string is supplied it will be coerced to a string. + */ + function write(fd: number, string: any, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace write { + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function __promisify__( + fd: number, + buffer?: TBuffer, + offset?: number, + length?: number, + position?: number | null, + ): Promise<{ bytesWritten: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. If something other than a string is supplied it will be coerced to a string. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function __promisify__(fd: number, string: any, position?: number | null, encoding?: string | null): Promise<{ bytesWritten: number, buffer: string }>; + } + + /** + * Synchronously writes `buffer` to the file referenced by the supplied file descriptor, returning the number of bytes written. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function writeSync(fd: number, buffer: NodeJS.ArrayBufferView, offset?: number | null, length?: number | null, position?: number | null): number; + + /** + * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written. + * @param fd A file descriptor. + * @param string A string to write. If something other than a string is supplied it will be coerced to a string. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function writeSync(fd: number, string: any, position?: number | null, encoding?: string | null): number; + + /** + * Asynchronously reads data from the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + function read( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: number | null, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void, + ): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace read { + /** + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + function __promisify__( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: number | null + ): Promise<{ bytesRead: number, buffer: TBuffer }>; + } + + /** + * Synchronously reads data from the file referenced by the supplied file descriptor, returning the number of bytes read. + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + function readSync(fd: number, buffer: NodeJS.ArrayBufferView, offset: number, length: number, position: number | null): number; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | number, options: { encoding?: null; flag?: string; } | undefined | null, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | number, options: { encoding: string; flag?: string; } | string, callback: (err: NodeJS.ErrnoException | null, data: string) => void): void; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathLike | number, + options: { encoding?: string | null; flag?: string; } | string | undefined | null, + callback: (err: NodeJS.ErrnoException | null, data: string | Buffer) => void, + ): void; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + */ + function readFile(path: PathLike | number, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace readFile { + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__(path: PathLike | number, options?: { encoding?: null; flag?: string; } | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__(path: PathLike | number, options: { encoding: string; flag?: string; } | string): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__(path: PathLike | number, options?: { encoding?: string | null; flag?: string; } | string | null): Promise; + } + + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. If a flag is not provided, it defaults to `'r'`. + */ + function readFileSync(path: PathLike | number, options?: { encoding?: null; flag?: string; } | null): Buffer; + + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFileSync(path: PathLike | number, options: { encoding: string; flag?: string; } | string): string; + + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFileSync(path: PathLike | number, options?: { encoding?: string | null; flag?: string; } | string | null): string | Buffer; + + type WriteFileOptions = { encoding?: string | null; mode?: number | string; flag?: string; } | string | null; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function writeFile(path: PathLike | number, data: any, options: WriteFileOptions, callback: NoParamCallback): void; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + function writeFile(path: PathLike | number, data: any, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace writeFile { + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function __promisify__(path: PathLike | number, data: any, options?: WriteFileOptions): Promise; + } + + /** + * Synchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function writeFileSync(path: PathLike | number, data: any, options?: WriteFileOptions): void; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function appendFile(file: PathLike | number, data: any, options: WriteFileOptions, callback: NoParamCallback): void; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + function appendFile(file: PathLike | number, data: any, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace appendFile { + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function __promisify__(file: PathLike | number, data: any, options?: WriteFileOptions): Promise; + } + + /** + * Synchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function appendFileSync(file: PathLike | number, data: any, options?: WriteFileOptions): void; + + /** + * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. + */ + function watchFile(filename: PathLike, options: { persistent?: boolean; interval?: number; } | undefined, listener: (curr: Stats, prev: Stats) => void): void; + + /** + * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function watchFile(filename: PathLike, listener: (curr: Stats, prev: Stats) => void): void; + + /** + * Stop watching for changes on `filename`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function unwatchFile(filename: PathLike, listener?: (curr: Stats, prev: Stats) => void): void; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch( + filename: PathLike, + options: { encoding?: BufferEncoding | null, persistent?: boolean, recursive?: boolean } | BufferEncoding | undefined | null, + listener?: (event: string, filename: string) => void, + ): FSWatcher; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch(filename: PathLike, options: { encoding: "buffer", persistent?: boolean, recursive?: boolean } | "buffer", listener?: (event: string, filename: Buffer) => void): FSWatcher; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch( + filename: PathLike, + options: { encoding?: string | null, persistent?: boolean, recursive?: boolean } | string | null, + listener?: (event: string, filename: string | Buffer) => void, + ): FSWatcher; + + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function watch(filename: PathLike, listener?: (event: string, filename: string) => any): FSWatcher; + + /** + * Asynchronously tests whether or not the given path exists by checking with the file system. + * @deprecated + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function exists(path: PathLike, callback: (exists: boolean) => void): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace exists { + /** + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike): Promise; + } + + /** + * Synchronously tests whether or not the given path exists by checking with the file system. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function existsSync(path: PathLike): boolean; + + namespace constants { + // File Access Constants + + /** Constant for fs.access(). File is visible to the calling process. */ + const F_OK: number; + + /** Constant for fs.access(). File can be read by the calling process. */ + const R_OK: number; + + /** Constant for fs.access(). File can be written by the calling process. */ + const W_OK: number; + + /** Constant for fs.access(). File can be executed by the calling process. */ + const X_OK: number; + + // File Copy Constants + + /** Constant for fs.copyFile. Flag indicating the destination file should not be overwritten if it already exists. */ + const COPYFILE_EXCL: number; + + /** + * Constant for fs.copyFile. copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used. + */ + const COPYFILE_FICLONE: number; + + /** + * Constant for fs.copyFile. Copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then the operation will fail with an error. + */ + const COPYFILE_FICLONE_FORCE: number; + + // File Open Constants + + /** Constant for fs.open(). Flag indicating to open a file for read-only access. */ + const O_RDONLY: number; + + /** Constant for fs.open(). Flag indicating to open a file for write-only access. */ + const O_WRONLY: number; + + /** Constant for fs.open(). Flag indicating to open a file for read-write access. */ + const O_RDWR: number; + + /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */ + const O_CREAT: number; + + /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */ + const O_EXCL: number; + + /** + * Constant for fs.open(). Flag indicating that if path identifies a terminal device, + * opening the path shall not cause that terminal to become the controlling terminal for the process + * (if the process does not already have one). + */ + const O_NOCTTY: number; + + /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */ + const O_TRUNC: number; + + /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */ + const O_APPEND: number; + + /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */ + const O_DIRECTORY: number; + + /** + * constant for fs.open(). + * Flag indicating reading accesses to the file system will no longer result in + * an update to the atime information associated with the file. + * This flag is available on Linux operating systems only. + */ + const O_NOATIME: number; + + /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */ + const O_NOFOLLOW: number; + + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */ + const O_SYNC: number; + + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O with write operations waiting for data integrity. */ + const O_DSYNC: number; + + /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */ + const O_SYMLINK: number; + + /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */ + const O_DIRECT: number; + + /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */ + const O_NONBLOCK: number; + + // File Type Constants + + /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */ + const S_IFMT: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */ + const S_IFREG: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */ + const S_IFDIR: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */ + const S_IFCHR: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */ + const S_IFBLK: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */ + const S_IFIFO: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */ + const S_IFLNK: number; + + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */ + const S_IFSOCK: number; + + // File Mode Constants + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */ + const S_IRWXU: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */ + const S_IRUSR: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */ + const S_IWUSR: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */ + const S_IXUSR: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */ + const S_IRWXG: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */ + const S_IRGRP: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */ + const S_IWGRP: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */ + const S_IXGRP: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */ + const S_IRWXO: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */ + const S_IROTH: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */ + const S_IWOTH: number; + + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */ + const S_IXOTH: number; + + /** + * When set, a memory file mapping is used to access the file. This flag + * is available on Windows operating systems only. On other operating systems, + * this flag is ignored. + */ + const UV_FS_O_FILEMAP: number; + } + + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function access(path: PathLike, mode: number | undefined, callback: NoParamCallback): void; + + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function access(path: PathLike, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace access { + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike, mode?: number): Promise; + } + + /** + * Synchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function accessSync(path: PathLike, mode?: number): void; + + /** + * Returns a new `ReadStream` object. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function createReadStream(path: PathLike, options?: string | { + flags?: string; + encoding?: string; + fd?: number; + mode?: number; + autoClose?: boolean; + /** + * @default false + */ + emitClose?: boolean; + start?: number; + end?: number; + highWaterMark?: number; + }): ReadStream; + + /** + * Returns a new `WriteStream` object. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function createWriteStream(path: PathLike, options?: string | { + flags?: string; + encoding?: string; + fd?: number; + mode?: number; + autoClose?: boolean; + start?: number; + highWaterMark?: number; + }): WriteStream; + + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + function fdatasync(fd: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace fdatasync { + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + + /** + * Synchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + function fdatasyncSync(fd: number): void; + + /** + * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. + * No arguments other than a possible exception are given to the callback function. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + */ + function copyFile(src: PathLike, dest: PathLike, callback: NoParamCallback): void; + /** + * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. + * No arguments other than a possible exception are given to the callback function. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An integer that specifies the behavior of the copy operation. The only supported flag is fs.constants.COPYFILE_EXCL, which causes the copy operation to fail if dest already exists. + */ + function copyFile(src: PathLike, dest: PathLike, flags: number, callback: NoParamCallback): void; + + // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime. + namespace copyFile { + /** + * Asynchronously copies src to dest. By default, dest is overwritten if it already exists. + * No arguments other than a possible exception are given to the callback function. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An optional integer that specifies the behavior of the copy operation. + * The only supported flag is fs.constants.COPYFILE_EXCL, + * which causes the copy operation to fail if dest already exists. + */ + function __promisify__(src: PathLike, dst: PathLike, flags?: number): Promise; + } + + /** + * Synchronously copies src to dest. By default, dest is overwritten if it already exists. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An optional integer that specifies the behavior of the copy operation. + * The only supported flag is fs.constants.COPYFILE_EXCL, which causes the copy operation to fail if dest already exists. + */ + function copyFileSync(src: PathLike, dest: PathLike, flags?: number): void; + + /** + * Write an array of ArrayBufferViews to the file specified by fd using writev(). + * position is the offset from the beginning of the file where this data should be written. + * It is unsafe to use fs.writev() multiple times on the same file without waiting for the callback. For this scenario, use fs.createWriteStream(). + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to the end of the file. + */ + function writev( + fd: number, + buffers: NodeJS.ArrayBufferView[], + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + function writev( + fd: number, + buffers: NodeJS.ArrayBufferView[], + position: number, + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + + interface WriteVResult { + bytesWritten: number; + buffers: NodeJS.ArrayBufferView[]; + } + + namespace writev { + function __promisify__(fd: number, buffers: NodeJS.ArrayBufferView[], position?: number): Promise; + } + + /** + * See `writev`. + */ + function writevSync(fd: number, buffers: NodeJS.ArrayBufferView[], position?: number): number; + + interface OpenDirOptions { + encoding?: BufferEncoding; + } + + function opendirSync(path: string, options?: OpenDirOptions): Dir; + + function opendir(path: string, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + function opendir(path: string, options: OpenDirOptions, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + + namespace opendir { + function __promisify__(path: string, options?: OpenDirOptions): Promise; + } + + namespace promises { + interface FileHandle { + /** + * Gets the file descriptor for this file handle. + */ + readonly fd: number; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for appending. + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + appendFile(data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; + + /** + * Asynchronous fchown(2) - Change ownership of a file. + */ + chown(uid: number, gid: number): Promise; + + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + chmod(mode: string | number): Promise; + + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + */ + datasync(): Promise; + + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + */ + sync(): Promise; + + /** + * Asynchronously reads data from the file. + * The `FileHandle` must have been opened for reading. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + read(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesRead: number, buffer: TBuffer }>; + + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile(options?: { encoding?: null, flag?: string | number } | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile(options: { encoding: BufferEncoding, flag?: string | number } | BufferEncoding): Promise; + + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile(options?: { encoding?: string | null, flag?: string | number } | string | null): Promise; + + /** + * Asynchronous fstat(2) - Get file status. + */ + stat(): Promise; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param len If not specified, defaults to `0`. + */ + truncate(len?: number): Promise; + + /** + * Asynchronously change file timestamps of the file. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + utimes(atime: string | number | Date, mtime: string | number | Date): Promise; + + /** + * Asynchronously writes `buffer` to the file. + * The `FileHandle` must have been opened for writing. + * @param buffer The buffer that the data will be written to. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + write(buffer: TBuffer, offset?: number | null, length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `string` to the file. + * The `FileHandle` must have been opened for writing. + * It is unsafe to call `write()` multiple times on the same file without waiting for the `Promise` + * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. + * @param string A string to write. If something other than a string is supplied it will be coerced to a string. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + write(data: any, position?: number | null, encoding?: string | null): Promise<{ bytesWritten: number, buffer: string }>; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for writing. + * It is unsafe to call `writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected). + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + writeFile(data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; + + /** + * See `fs.writev` promisified version. + */ + writev(buffers: NodeJS.ArrayBufferView[], position?: number): Promise; + + /** + * Asynchronous close(2) - close a `FileHandle`. + */ + close(): Promise; + } + + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function access(path: PathLike, mode?: number): Promise; + + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it already exists. + * Node.js makes no guarantees about the atomicity of the copy operation. + * If an error occurs after the destination file has been opened for writing, Node.js will attempt + * to remove the destination. + * @param src A path to the source file. + * @param dest A path to the destination file. + * @param flags An optional integer that specifies the behavior of the copy operation. The only + * supported flag is `fs.constants.COPYFILE_EXCL`, which causes the copy operation to fail if + * `dest` already exists. + */ + function copyFile(src: PathLike, dest: PathLike, flags?: number): Promise; + + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not + * supplied, defaults to `0o666`. + */ + function open(path: PathLike, flags: string | number, mode?: string | number): Promise; + + /** + * Asynchronously reads data from the file referenced by the supplied `FileHandle`. + * @param handle A `FileHandle`. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If + * `null`, data will be read from the current position. + */ + function read( + handle: FileHandle, + buffer: TBuffer, + offset?: number | null, + length?: number | null, + position?: number | null, + ): Promise<{ bytesRead: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `buffer` to the file referenced by the supplied `FileHandle`. + * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise` + * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. + * @param handle A `FileHandle`. + * @param buffer The buffer that the data will be written to. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function write( + handle: FileHandle, + buffer: TBuffer, + offset?: number | null, + length?: number | null, position?: number | null): Promise<{ bytesWritten: number, buffer: TBuffer }>; + + /** + * Asynchronously writes `string` to the file referenced by the supplied `FileHandle`. + * It is unsafe to call `fsPromises.write()` multiple times on the same file without waiting for the `Promise` + * to be resolved (or rejected). For this scenario, `fs.createWriteStream` is strongly recommended. + * @param handle A `FileHandle`. + * @param string A string to write. If something other than a string is supplied it will be coerced to a string. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function write(handle: FileHandle, string: any, position?: number | null, encoding?: string | null): Promise<{ bytesWritten: number, buffer: string }>; + + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function rename(oldPath: PathLike, newPath: PathLike): Promise; + + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function truncate(path: PathLike, len?: number): Promise; + + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param handle A `FileHandle`. + * @param len If not specified, defaults to `0`. + */ + function ftruncate(handle: FileHandle, len?: number): Promise; + + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function rmdir(path: PathLike, options?: RmDirAsyncOptions): Promise; + + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param handle A `FileHandle`. + */ + function fdatasync(handle: FileHandle): Promise; + + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param handle A `FileHandle`. + */ + function fsync(handle: FileHandle): Promise; + + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options?: number | string | MakeDirectoryOptions | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir(path: PathLike, options?: { encoding?: BufferEncoding | null; withFileTypes?: false } | BufferEncoding | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir(path: PathLike, options: { encoding: "buffer"; withFileTypes?: false } | "buffer"): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir(path: PathLike, options?: { encoding?: string | null; withFileTypes?: false } | string | null): Promise; + + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdir(path: PathLike, options: { encoding?: string | null; withFileTypes: true }): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; + + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; + + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function symlink(target: PathLike, path: PathLike, type?: string | null): Promise; + + /** + * Asynchronous fstat(2) - Get file status. + * @param handle A `FileHandle`. + */ + function fstat(handle: FileHandle): Promise; + + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lstat(path: PathLike): Promise; + + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function stat(path: PathLike): Promise; + + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function link(existingPath: PathLike, newPath: PathLike): Promise; + + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function unlink(path: PathLike): Promise; + + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param handle A `FileHandle`. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function fchmod(handle: FileHandle, mode: string | number): Promise; + + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function chmod(path: PathLike, mode: string | number): Promise; + + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function lchmod(path: PathLike, mode: string | number): Promise; + + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function lchown(path: PathLike, uid: number, gid: number): Promise; + + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param handle A `FileHandle`. + */ + function fchown(handle: FileHandle, uid: number, gid: number): Promise; + + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function chown(path: PathLike, uid: number, gid: number): Promise; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function utimes(path: PathLike, atime: string | number | Date, mtime: string | number | Date): Promise; + + /** + * Asynchronously change file timestamps of the file referenced by the supplied `FileHandle`. + * @param handle A `FileHandle`. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function futimes(handle: FileHandle, atime: string | number | Date, mtime: string | number | Date): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options: { encoding: "buffer" } | "buffer"): Promise; + + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options?: { encoding?: string | null } | string | null): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options?: { encoding?: BufferEncoding | null } | BufferEncoding | null): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: { encoding: "buffer" } | "buffer"): Promise; + + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options?: { encoding?: string | null } | string | null): Promise; + + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * It is unsafe to call `fsPromises.writeFile()` multiple times on the same file without waiting for the `Promise` to be resolved (or rejected). + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function writeFile(path: PathLike | FileHandle, data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; + + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a `Buffer` or `Uint8Array` is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function appendFile(path: PathLike | FileHandle, data: any, options?: { encoding?: string | null, mode?: string | number, flag?: string | number } | string | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | FileHandle, options?: { encoding?: null, flag?: string | number } | null): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | FileHandle, options: { encoding: BufferEncoding, flag?: string | number } | BufferEncoding): Promise; + + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile(path: PathLike | FileHandle, options?: { encoding?: string | null, flag?: string | number } | string | null): Promise; + + function opendir(path: string, options?: OpenDirOptions): Promise; + } +} diff --git a/node_modules/@types/node/globals.d.ts b/node_modules/@types/node/globals.d.ts new file mode 100644 index 0000000..d9505f1 --- /dev/null +++ b/node_modules/@types/node/globals.d.ts @@ -0,0 +1,1165 @@ +// This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build +interface Console { + Console: NodeJS.ConsoleConstructor; + /** + * A simple assertion test that verifies whether `value` is truthy. + * If it is not, an `AssertionError` is thrown. + * If provided, the error `message` is formatted using `util.format()` and used as the error message. + */ + assert(value: any, message?: string, ...optionalParams: any[]): void; + /** + * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the TTY. + * When `stdout` is not a TTY, this method does nothing. + */ + clear(): void; + /** + * Maintains an internal counter specific to `label` and outputs to `stdout` the number of times `console.count()` has been called with the given `label`. + */ + count(label?: string): void; + /** + * Resets the internal counter specific to `label`. + */ + countReset(label?: string): void; + /** + * The `console.debug()` function is an alias for {@link console.log()}. + */ + debug(message?: any, ...optionalParams: any[]): void; + /** + * Uses {@link util.inspect()} on `obj` and prints the resulting string to `stdout`. + * This function bypasses any custom `inspect()` function defined on `obj`. + */ + dir(obj: any, options?: NodeJS.InspectOptions): void; + /** + * This method calls {@link console.log()} passing it the arguments received. Please note that this method does not produce any XML formatting + */ + dirxml(...data: any[]): void; + /** + * Prints to `stderr` with newline. + */ + error(message?: any, ...optionalParams: any[]): void; + /** + * Increases indentation of subsequent lines by two spaces. + * If one or more `label`s are provided, those are printed first without the additional indentation. + */ + group(...label: any[]): void; + /** + * The `console.groupCollapsed()` function is an alias for {@link console.group()}. + */ + groupCollapsed(...label: any[]): void; + /** + * Decreases indentation of subsequent lines by two spaces. + */ + groupEnd(): void; + /** + * The {@link console.info()} function is an alias for {@link console.log()}. + */ + info(message?: any, ...optionalParams: any[]): void; + /** + * Prints to `stdout` with newline. + */ + log(message?: any, ...optionalParams: any[]): void; + /** + * This method does not display anything unless used in the inspector. + * Prints to `stdout` the array `array` formatted as a table. + */ + table(tabularData: any, properties?: string[]): void; + /** + * Starts a timer that can be used to compute the duration of an operation. Timers are identified by a unique `label`. + */ + time(label?: string): void; + /** + * Stops a timer that was previously started by calling {@link console.time()} and prints the result to `stdout`. + */ + timeEnd(label?: string): void; + /** + * For a timer that was previously started by calling {@link console.time()}, prints the elapsed time and other `data` arguments to `stdout`. + */ + timeLog(label?: string, ...data: any[]): void; + /** + * Prints to `stderr` the string 'Trace :', followed by the {@link util.format()} formatted message and stack trace to the current position in the code. + */ + trace(message?: any, ...optionalParams: any[]): void; + /** + * The {@link console.warn()} function is an alias for {@link console.error()}. + */ + warn(message?: any, ...optionalParams: any[]): void; + + // --- Inspector mode only --- + /** + * This method does not display anything unless used in the inspector. + * The console.markTimeline() method is the deprecated form of console.timeStamp(). + * + * @deprecated Use console.timeStamp() instead. + */ + markTimeline(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Starts a JavaScript CPU profile with an optional label. + */ + profile(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector. + */ + profileEnd(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Adds an event with the label `label` to the Timeline panel of the inspector. + */ + timeStamp(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * The console.timeline() method is the deprecated form of console.time(). + * + * @deprecated Use console.time() instead. + */ + timeline(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * The console.timelineEnd() method is the deprecated form of console.timeEnd(). + * + * @deprecated Use console.timeEnd() instead. + */ + timelineEnd(label?: string): void; +} + +interface Error { + stack?: string; +} + +// Declare "static" methods in Error +interface ErrorConstructor { + /** Create .stack property on a target object */ + captureStackTrace(targetObject: Object, constructorOpt?: Function): void; + + /** + * Optional override for formatting stack traces + * + * @see https://github.com/v8/v8/wiki/Stack%20Trace%20API#customizing-stack-traces + */ + prepareStackTrace?: (err: Error, stackTraces: NodeJS.CallSite[]) => any; + + stackTraceLimit: number; +} + +interface SymbolConstructor { + readonly observable: symbol; +} + +// Node.js ESNEXT support +interface String { + /** Removes whitespace from the left end of a string. */ + trimLeft(): string; + /** Removes whitespace from the right end of a string. */ + trimRight(): string; +} + +interface ImportMeta { + url: string; +} + +/*-----------------------------------------------* + * * + * GLOBAL * + * * + ------------------------------------------------*/ +declare var process: NodeJS.Process; +declare var global: NodeJS.Global; +declare var console: Console; + +declare var __filename: string; +declare var __dirname: string; + +declare function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; +declare namespace setTimeout { + function __promisify__(ms: number): Promise; + function __promisify__(ms: number, value: T): Promise; +} +declare function clearTimeout(timeoutId: NodeJS.Timeout): void; +declare function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; +declare function clearInterval(intervalId: NodeJS.Timeout): void; +declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; +declare namespace setImmediate { + function __promisify__(): Promise; + function __promisify__(value: T): Promise; +} +declare function clearImmediate(immediateId: NodeJS.Immediate): void; + +declare function queueMicrotask(callback: () => void): void; + +// TODO: change to `type NodeRequireFunction = (id: string) => any;` in next mayor version. +interface NodeRequireFunction { + /* tslint:disable-next-line:callable-types */ + (id: string): any; +} + +interface NodeRequireCache { + [path: string]: NodeModule; +} + +interface NodeRequire extends NodeRequireFunction { + resolve: RequireResolve; + cache: NodeRequireCache; + /** + * @deprecated + */ + extensions: NodeExtensions; + main: NodeModule | undefined; +} + +interface RequireResolve { + (id: string, options?: { paths?: string[]; }): string; + paths(request: string): string[] | null; +} + +interface NodeExtensions { + '.js': (m: NodeModule, filename: string) => any; + '.json': (m: NodeModule, filename: string) => any; + '.node': (m: NodeModule, filename: string) => any; + [ext: string]: (m: NodeModule, filename: string) => any; +} + +declare var require: NodeRequire; + +interface NodeModule { + exports: any; + require: NodeRequireFunction; + id: string; + filename: string; + loaded: boolean; + parent: NodeModule | null; + children: NodeModule[]; + paths: string[]; +} + +declare var module: NodeModule; + +// Same as module.exports +declare var exports: any; + +// Buffer class +type BufferEncoding = "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex"; + +interface Buffer { + constructor: typeof Buffer; +} + +/** + * Raw data is stored in instances of the Buffer class. + * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized. + * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + */ +declare class Buffer extends Uint8Array { + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead. + */ + constructor(str: string, encoding?: BufferEncoding); + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`). + */ + constructor(size: number); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + constructor(array: Uint8Array); + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}/{SharedArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead. + */ + constructor(arrayBuffer: ArrayBuffer | SharedArrayBuffer); + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + constructor(array: any[]); + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + * @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead. + */ + constructor(buffer: Buffer); + /** + * When passed a reference to the .buffer property of a TypedArray instance, + * the newly created Buffer will share the same allocated memory as the TypedArray. + * The optional {byteOffset} and {length} arguments specify a memory range + * within the {arrayBuffer} that will be shared by the Buffer. + * + * @param arrayBuffer The .buffer property of any TypedArray or a new ArrayBuffer() + */ + static from(arrayBuffer: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param data data to create a new Buffer + */ + static from(data: number[]): Buffer; + static from(data: Uint8Array): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + */ + static from(str: string, encoding?: BufferEncoding): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param values to create a new Buffer + */ + static of(...items: number[]): Buffer; + /** + * Returns true if {obj} is a Buffer + * + * @param obj object to test. + */ + static isBuffer(obj: any): obj is Buffer; + /** + * Returns true if {encoding} is a valid encoding argument. + * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' + * + * @param encoding string to test. + */ + static isEncoding(encoding: string): encoding is BufferEncoding; + /** + * Gives the actual byte length of a string. encoding defaults to 'utf8'. + * This is not the same as String.prototype.length since that returns the number of characters in a string. + * + * @param string string to test. + * @param encoding encoding used to evaluate (defaults to 'utf8') + */ + static byteLength( + string: string | NodeJS.ArrayBufferView | ArrayBuffer | SharedArrayBuffer, + encoding?: BufferEncoding + ): number; + /** + * Returns a buffer which is the result of concatenating all the buffers in the list together. + * + * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer. + * If the list has exactly one item, then the first item of the list is returned. + * If the list has more than one item, then a new Buffer is created. + * + * @param list An array of Buffer objects to concatenate + * @param totalLength Total length of the buffers when concatenated. + * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly. + */ + static concat(list: Uint8Array[], totalLength?: number): Buffer; + /** + * The same as buf1.compare(buf2). + */ + static compare(buf1: Uint8Array, buf2: Uint8Array): number; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @param fill if specified, buffer will be initialized by calling buf.fill(fill). + * If parameter is omitted, buffer will be filled with zeros. + * @param encoding encoding used for call to buf.fill while initalizing + */ + static alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafe(size: number): Buffer; + /** + * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents + * of the newly created Buffer are unknown and may contain sensitive data. + * + * @param size count of octets to allocate + */ + static allocUnsafeSlow(size: number): Buffer; + /** + * This is the number of bytes used to determine the size of pre-allocated, internal Buffer instances used for pooling. This value may be modified. + */ + static poolSize: number; + + write(string: string, encoding?: BufferEncoding): number; + write(string: string, offset: number, encoding?: BufferEncoding): number; + write(string: string, offset: number, length: number, encoding?: BufferEncoding): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: 'Buffer'; data: number[] }; + equals(otherBuffer: Uint8Array): boolean; + compare( + otherBuffer: Uint8Array, + targetStart?: number, + targetEnd?: number, + sourceStart?: number, + sourceEnd?: number + ): number; + copy(targetBuffer: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + /** + * Returns a new `Buffer` that references **the same memory as the original**, but offset and cropped by the start and end indices. + * + * This method is incompatible with `Uint8Array#slice()`, which returns a copy of the original memory. + * + * @param begin Where the new `Buffer` will start. Default: `0`. + * @param end Where the new `Buffer` will end (not inclusive). Default: `buf.length`. + */ + slice(begin?: number, end?: number): Buffer; + /** + * Returns a new `Buffer` that references **the same memory as the original**, but offset and cropped by the start and end indices. + * + * This method is compatible with `Uint8Array#subarray()`. + * + * @param begin Where the new `Buffer` will start. Default: `0`. + * @param end Where the new `Buffer` will end (not inclusive). Default: `buf.length`. + */ + subarray(begin?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number): number; + writeUIntBE(value: number, offset: number, byteLength: number): number; + writeIntLE(value: number, offset: number, byteLength: number): number; + writeIntBE(value: number, offset: number, byteLength: number): number; + readUIntLE(offset: number, byteLength: number): number; + readUIntBE(offset: number, byteLength: number): number; + readIntLE(offset: number, byteLength: number): number; + readIntBE(offset: number, byteLength: number): number; + readUInt8(offset: number): number; + readUInt16LE(offset: number): number; + readUInt16BE(offset: number): number; + readUInt32LE(offset: number): number; + readUInt32BE(offset: number): number; + readInt8(offset: number): number; + readInt16LE(offset: number): number; + readInt16BE(offset: number): number; + readInt32LE(offset: number): number; + readInt32BE(offset: number): number; + readFloatLE(offset: number): number; + readFloatBE(offset: number): number; + readDoubleLE(offset: number): number; + readDoubleBE(offset: number): number; + reverse(): this; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number): number; + writeUInt16LE(value: number, offset: number): number; + writeUInt16BE(value: number, offset: number): number; + writeUInt32LE(value: number, offset: number): number; + writeUInt32BE(value: number, offset: number): number; + writeInt8(value: number, offset: number): number; + writeInt16LE(value: number, offset: number): number; + writeInt16BE(value: number, offset: number): number; + writeInt32LE(value: number, offset: number): number; + writeInt32BE(value: number, offset: number): number; + writeFloatLE(value: number, offset: number): number; + writeFloatBE(value: number, offset: number): number; + writeDoubleLE(value: number, offset: number): number; + writeDoubleBE(value: number, offset: number): number; + + fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this; + + indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + entries(): IterableIterator<[number, number]>; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean; + keys(): IterableIterator; + values(): IterableIterator; +} + +/*----------------------------------------------* +* * +* GLOBAL INTERFACES * +* * +*-----------------------------------------------*/ +declare namespace NodeJS { + interface InspectOptions { + /** + * If set to `true`, getters are going to be + * inspected as well. If set to `'get'` only getters without setter are going + * to be inspected. If set to `'set'` only getters having a corresponding + * setter are going to be inspected. This might cause side effects depending on + * the getter function. + * @default `false` + */ + getters?: 'get' | 'set' | boolean; + showHidden?: boolean; + /** + * @default 2 + */ + depth?: number | null; + colors?: boolean; + customInspect?: boolean; + showProxy?: boolean; + maxArrayLength?: number | null; + breakLength?: number; + /** + * Setting this to `false` causes each object key + * to be displayed on a new line. It will also add new lines to text that is + * longer than `breakLength`. If set to a number, the most `n` inner elements + * are united on a single line as long as all properties fit into + * `breakLength`. Short array elements are also grouped together. Note that no + * text will be reduced below 16 characters, no matter the `breakLength` size. + * For more information, see the example below. + * @default `true` + */ + compact?: boolean | number; + sorted?: boolean | ((a: string, b: string) => number); + } + + interface ConsoleConstructorOptions { + stdout: WritableStream; + stderr?: WritableStream; + ignoreErrors?: boolean; + colorMode?: boolean | 'auto'; + inspectOptions?: InspectOptions; + } + + interface ConsoleConstructor { + prototype: Console; + new(stdout: WritableStream, stderr?: WritableStream, ignoreErrors?: boolean): Console; + new(options: ConsoleConstructorOptions): Console; + } + + interface CallSite { + /** + * Value of "this" + */ + getThis(): any; + + /** + * Type of "this" as a string. + * This is the name of the function stored in the constructor field of + * "this", if available. Otherwise the object's [[Class]] internal + * property. + */ + getTypeName(): string | null; + + /** + * Current function + */ + getFunction(): Function | undefined; + + /** + * Name of the current function, typically its name property. + * If a name property is not available an attempt will be made to try + * to infer a name from the function's context. + */ + getFunctionName(): string | null; + + /** + * Name of the property [of "this" or one of its prototypes] that holds + * the current function + */ + getMethodName(): string | null; + + /** + * Name of the script [if this function was defined in a script] + */ + getFileName(): string | null; + + /** + * Current line number [if this function was defined in a script] + */ + getLineNumber(): number | null; + + /** + * Current column number [if this function was defined in a script] + */ + getColumnNumber(): number | null; + + /** + * A call site object representing the location where eval was called + * [if this function was created using a call to eval] + */ + getEvalOrigin(): string | undefined; + + /** + * Is this a toplevel invocation, that is, is "this" the global object? + */ + isToplevel(): boolean; + + /** + * Does this call take place in code defined by a call to eval? + */ + isEval(): boolean; + + /** + * Is this call in native V8 code? + */ + isNative(): boolean; + + /** + * Is this a constructor call? + */ + isConstructor(): boolean; + } + + interface ErrnoException extends Error { + errno?: number; + code?: string; + path?: string; + syscall?: string; + stack?: string; + } + + class EventEmitter { + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + off(event: string | symbol, listener: (...args: any[]) => void): this; + removeAllListeners(event?: string | symbol): this; + setMaxListeners(n: number): this; + getMaxListeners(): number; + listeners(event: string | symbol): Function[]; + rawListeners(event: string | symbol): Function[]; + emit(event: string | symbol, ...args: any[]): boolean; + listenerCount(type: string | symbol): number; + // Added in Node 6... + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + eventNames(): Array; + } + + interface ReadableStream extends EventEmitter { + readable: boolean; + read(size?: number): string | Buffer; + setEncoding(encoding: string): this; + pause(): this; + resume(): this; + isPaused(): boolean; + pipe(destination: T, options?: { end?: boolean; }): T; + unpipe(destination?: WritableStream): this; + unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void; + wrap(oldStream: ReadableStream): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + interface WritableStream extends EventEmitter { + writable: boolean; + write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean; + write(str: string, encoding?: string, cb?: (err?: Error | null) => void): boolean; + end(cb?: () => void): void; + end(data: string | Uint8Array, cb?: () => void): void; + end(str: string, encoding?: string, cb?: () => void): void; + } + + interface ReadWriteStream extends ReadableStream, WritableStream { } + + interface Domain extends EventEmitter { + run(fn: (...args: any[]) => T, ...args: any[]): T; + add(emitter: EventEmitter | Timer): void; + remove(emitter: EventEmitter | Timer): void; + bind(cb: T): T; + intercept(cb: T): T; + + addListener(event: string, listener: (...args: any[]) => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + removeListener(event: string, listener: (...args: any[]) => void): this; + removeAllListeners(event?: string): this; + } + + interface MemoryUsage { + rss: number; + heapTotal: number; + heapUsed: number; + external: number; + } + + interface CpuUsage { + user: number; + system: number; + } + + interface ProcessRelease { + name: string; + sourceUrl?: string; + headersUrl?: string; + libUrl?: string; + lts?: string; + } + + interface ProcessVersions { + http_parser: string; + node: string; + v8: string; + ares: string; + uv: string; + zlib: string; + modules: string; + openssl: string; + } + + type Platform = 'aix' + | 'android' + | 'darwin' + | 'freebsd' + | 'linux' + | 'openbsd' + | 'sunos' + | 'win32' + | 'cygwin' + | 'netbsd'; + + type Signals = + "SIGABRT" | "SIGALRM" | "SIGBUS" | "SIGCHLD" | "SIGCONT" | "SIGFPE" | "SIGHUP" | "SIGILL" | "SIGINT" | "SIGIO" | + "SIGIOT" | "SIGKILL" | "SIGPIPE" | "SIGPOLL" | "SIGPROF" | "SIGPWR" | "SIGQUIT" | "SIGSEGV" | "SIGSTKFLT" | + "SIGSTOP" | "SIGSYS" | "SIGTERM" | "SIGTRAP" | "SIGTSTP" | "SIGTTIN" | "SIGTTOU" | "SIGUNUSED" | "SIGURG" | + "SIGUSR1" | "SIGUSR2" | "SIGVTALRM" | "SIGWINCH" | "SIGXCPU" | "SIGXFSZ" | "SIGBREAK" | "SIGLOST" | "SIGINFO"; + + type MultipleResolveType = 'resolve' | 'reject'; + + type BeforeExitListener = (code: number) => void; + type DisconnectListener = () => void; + type ExitListener = (code: number) => void; + type RejectionHandledListener = (promise: Promise) => void; + type UncaughtExceptionListener = (error: Error) => void; + type UnhandledRejectionListener = (reason: {} | null | undefined, promise: Promise) => void; + type WarningListener = (warning: Error) => void; + type MessageListener = (message: any, sendHandle: any) => void; + type SignalsListener = (signal: Signals) => void; + type NewListenerListener = (type: string | symbol, listener: (...args: any[]) => void) => void; + type RemoveListenerListener = (type: string | symbol, listener: (...args: any[]) => void) => void; + type MultipleResolveListener = (type: MultipleResolveType, promise: Promise, value: any) => void; + + interface Socket extends ReadWriteStream { + isTTY?: true; + } + + interface ProcessEnv { + [key: string]: string | undefined; + } + + interface HRTime { + (time?: [number, number]): [number, number]; + } + + interface ProcessReport { + /** + * Directory where the report is written. + * working directory of the Node.js process. + * @default '' indicating that reports are written to the current + */ + directory: string; + + /** + * Filename where the report is written. + * The default value is the empty string. + * @default '' the output filename will be comprised of a timestamp, + * PID, and sequence number. + */ + filename: string; + + /** + * Returns a JSON-formatted diagnostic report for the running process. + * The report's JavaScript stack trace is taken from err, if present. + */ + getReport(err?: Error): string; + + /** + * If true, a diagnostic report is generated on fatal errors, + * such as out of memory errors or failed C++ assertions. + * @default false + */ + reportOnFatalError: boolean; + + /** + * If true, a diagnostic report is generated when the process + * receives the signal specified by process.report.signal. + * @defaul false + */ + reportOnSignal: boolean; + + /** + * If true, a diagnostic report is generated on uncaught exception. + * @default false + */ + reportOnUncaughtException: boolean; + + /** + * The signal used to trigger the creation of a diagnostic report. + * @default 'SIGUSR2' + */ + signal: Signals; + + /** + * Writes a diagnostic report to a file. If filename is not provided, the default filename + * includes the date, time, PID, and a sequence number. + * The report's JavaScript stack trace is taken from err, if present. + * + * @param fileName Name of the file where the report is written. + * This should be a relative path, that will be appended to the directory specified in + * `process.report.directory`, or the current working directory of the Node.js process, + * if unspecified. + * @param error A custom error used for reporting the JavaScript stack. + * @return Filename of the generated report. + */ + writeReport(fileName?: string): string; + writeReport(error?: Error): string; + writeReport(fileName?: string, err?: Error): string; + } + + interface ResourceUsage { + fsRead: number; + fsWrite: number; + involuntaryContextSwitches: number; + ipcReceived: number; + ipcSent: number; + majorPageFault: number; + maxRSS: number; + minorPageFault: number; + sharedMemorySize: number; + signalsCount: number; + swappedOut: number; + systemCPUTime: number; + unsharedDataSize: number; + unsharedStackSize: number; + userCPUTime: number; + voluntaryContextSwitches: number; + } + + interface Process extends EventEmitter { + /** + * Can also be a tty.WriteStream, not typed due to limitation.s + */ + stdout: WriteStream; + /** + * Can also be a tty.WriteStream, not typed due to limitation.s + */ + stderr: WriteStream; + stdin: ReadStream; + openStdin(): Socket; + argv: string[]; + argv0: string; + execArgv: string[]; + execPath: string; + abort(): void; + chdir(directory: string): void; + cwd(): string; + debugPort: number; + emitWarning(warning: string | Error, name?: string, ctor?: Function): void; + env: ProcessEnv; + exit(code?: number): never; + exitCode?: number; + getgid(): number; + setgid(id: number | string): void; + getuid(): number; + setuid(id: number | string): void; + geteuid(): number; + seteuid(id: number | string): void; + getegid(): number; + setegid(id: number | string): void; + getgroups(): number[]; + setgroups(groups: Array): void; + setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void; + hasUncaughtExceptionCaptureCallback(): boolean; + version: string; + versions: ProcessVersions; + config: { + target_defaults: { + cflags: any[]; + default_configuration: string; + defines: string[]; + include_dirs: string[]; + libraries: string[]; + }; + variables: { + clang: number; + host_arch: string; + node_install_npm: boolean; + node_install_waf: boolean; + node_prefix: string; + node_shared_openssl: boolean; + node_shared_v8: boolean; + node_shared_zlib: boolean; + node_use_dtrace: boolean; + node_use_etw: boolean; + node_use_openssl: boolean; + target_arch: string; + v8_no_strict_aliasing: number; + v8_use_snapshot: boolean; + visibility: string; + }; + }; + kill(pid: number, signal?: string | number): void; + pid: number; + ppid: number; + title: string; + arch: string; + platform: Platform; + mainModule?: NodeModule; + memoryUsage(): MemoryUsage; + cpuUsage(previousValue?: CpuUsage): CpuUsage; + nextTick(callback: Function, ...args: any[]): void; + release: ProcessRelease; + features: { + inspector: boolean; + debug: boolean; + uv: boolean; + ipv6: boolean; + tls_alpn: boolean; + tls_sni: boolean; + tls_ocsp: boolean; + tls: boolean; + }; + /** + * Can only be set if not in worker thread. + */ + umask(mask?: number): number; + uptime(): number; + hrtime: HRTime; + domain: Domain; + + // Worker + send?(message: any, sendHandle?: any, options?: { swallowErrors?: boolean}, callback?: (error: Error | null) => void): boolean; + disconnect(): void; + connected: boolean; + + /** + * The `process.allowedNodeEnvironmentFlags` property is a special, + * read-only `Set` of flags allowable within the [`NODE_OPTIONS`][] + * environment variable. + */ + allowedNodeEnvironmentFlags: ReadonlySet; + + /** + * Only available with `--experimental-report` + */ + report?: ProcessReport; + + resourceUsage(): ResourceUsage; + + /** + * EventEmitter + * 1. beforeExit + * 2. disconnect + * 3. exit + * 4. message + * 5. rejectionHandled + * 6. uncaughtException + * 7. unhandledRejection + * 8. warning + * 9. message + * 10. + * 11. newListener/removeListener inherited from EventEmitter + */ + addListener(event: "beforeExit", listener: BeforeExitListener): this; + addListener(event: "disconnect", listener: DisconnectListener): this; + addListener(event: "exit", listener: ExitListener): this; + addListener(event: "rejectionHandled", listener: RejectionHandledListener): this; + addListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; + addListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + addListener(event: "warning", listener: WarningListener): this; + addListener(event: "message", listener: MessageListener): this; + addListener(event: Signals, listener: SignalsListener): this; + addListener(event: "newListener", listener: NewListenerListener): this; + addListener(event: "removeListener", listener: RemoveListenerListener): this; + addListener(event: "multipleResolves", listener: MultipleResolveListener): this; + + emit(event: "beforeExit", code: number): boolean; + emit(event: "disconnect"): boolean; + emit(event: "exit", code: number): boolean; + emit(event: "rejectionHandled", promise: Promise): boolean; + emit(event: "uncaughtException", error: Error): boolean; + emit(event: "unhandledRejection", reason: any, promise: Promise): boolean; + emit(event: "warning", warning: Error): boolean; + emit(event: "message", message: any, sendHandle: any): this; + emit(event: Signals, signal: Signals): boolean; + emit(event: "newListener", eventName: string | symbol, listener: (...args: any[]) => void): this; + emit(event: "removeListener", eventName: string, listener: (...args: any[]) => void): this; + emit(event: "multipleResolves", listener: MultipleResolveListener): this; + + on(event: "beforeExit", listener: BeforeExitListener): this; + on(event: "disconnect", listener: DisconnectListener): this; + on(event: "exit", listener: ExitListener): this; + on(event: "rejectionHandled", listener: RejectionHandledListener): this; + on(event: "uncaughtException", listener: UncaughtExceptionListener): this; + on(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + on(event: "warning", listener: WarningListener): this; + on(event: "message", listener: MessageListener): this; + on(event: Signals, listener: SignalsListener): this; + on(event: "newListener", listener: NewListenerListener): this; + on(event: "removeListener", listener: RemoveListenerListener): this; + on(event: "multipleResolves", listener: MultipleResolveListener): this; + + once(event: "beforeExit", listener: BeforeExitListener): this; + once(event: "disconnect", listener: DisconnectListener): this; + once(event: "exit", listener: ExitListener): this; + once(event: "rejectionHandled", listener: RejectionHandledListener): this; + once(event: "uncaughtException", listener: UncaughtExceptionListener): this; + once(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + once(event: "warning", listener: WarningListener): this; + once(event: "message", listener: MessageListener): this; + once(event: Signals, listener: SignalsListener): this; + once(event: "newListener", listener: NewListenerListener): this; + once(event: "removeListener", listener: RemoveListenerListener): this; + once(event: "multipleResolves", listener: MultipleResolveListener): this; + + prependListener(event: "beforeExit", listener: BeforeExitListener): this; + prependListener(event: "disconnect", listener: DisconnectListener): this; + prependListener(event: "exit", listener: ExitListener): this; + prependListener(event: "rejectionHandled", listener: RejectionHandledListener): this; + prependListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; + prependListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + prependListener(event: "warning", listener: WarningListener): this; + prependListener(event: "message", listener: MessageListener): this; + prependListener(event: Signals, listener: SignalsListener): this; + prependListener(event: "newListener", listener: NewListenerListener): this; + prependListener(event: "removeListener", listener: RemoveListenerListener): this; + prependListener(event: "multipleResolves", listener: MultipleResolveListener): this; + + prependOnceListener(event: "beforeExit", listener: BeforeExitListener): this; + prependOnceListener(event: "disconnect", listener: DisconnectListener): this; + prependOnceListener(event: "exit", listener: ExitListener): this; + prependOnceListener(event: "rejectionHandled", listener: RejectionHandledListener): this; + prependOnceListener(event: "uncaughtException", listener: UncaughtExceptionListener): this; + prependOnceListener(event: "unhandledRejection", listener: UnhandledRejectionListener): this; + prependOnceListener(event: "warning", listener: WarningListener): this; + prependOnceListener(event: "message", listener: MessageListener): this; + prependOnceListener(event: Signals, listener: SignalsListener): this; + prependOnceListener(event: "newListener", listener: NewListenerListener): this; + prependOnceListener(event: "removeListener", listener: RemoveListenerListener): this; + prependOnceListener(event: "multipleResolves", listener: MultipleResolveListener): this; + + listeners(event: "beforeExit"): BeforeExitListener[]; + listeners(event: "disconnect"): DisconnectListener[]; + listeners(event: "exit"): ExitListener[]; + listeners(event: "rejectionHandled"): RejectionHandledListener[]; + listeners(event: "uncaughtException"): UncaughtExceptionListener[]; + listeners(event: "unhandledRejection"): UnhandledRejectionListener[]; + listeners(event: "warning"): WarningListener[]; + listeners(event: "message"): MessageListener[]; + listeners(event: Signals): SignalsListener[]; + listeners(event: "newListener"): NewListenerListener[]; + listeners(event: "removeListener"): RemoveListenerListener[]; + listeners(event: "multipleResolves"): MultipleResolveListener[]; + } + + interface Global { + Array: typeof Array; + ArrayBuffer: typeof ArrayBuffer; + Boolean: typeof Boolean; + Buffer: typeof Buffer; + DataView: typeof DataView; + Date: typeof Date; + Error: typeof Error; + EvalError: typeof EvalError; + Float32Array: typeof Float32Array; + Float64Array: typeof Float64Array; + Function: typeof Function; + GLOBAL: Global; + Infinity: typeof Infinity; + Int16Array: typeof Int16Array; + Int32Array: typeof Int32Array; + Int8Array: typeof Int8Array; + Intl: typeof Intl; + JSON: typeof JSON; + Map: MapConstructor; + Math: typeof Math; + NaN: typeof NaN; + Number: typeof Number; + Object: typeof Object; + Promise: Function; + RangeError: typeof RangeError; + ReferenceError: typeof ReferenceError; + RegExp: typeof RegExp; + Set: SetConstructor; + String: typeof String; + Symbol: Function; + SyntaxError: typeof SyntaxError; + TypeError: typeof TypeError; + URIError: typeof URIError; + Uint16Array: typeof Uint16Array; + Uint32Array: typeof Uint32Array; + Uint8Array: typeof Uint8Array; + Uint8ClampedArray: Function; + WeakMap: WeakMapConstructor; + WeakSet: WeakSetConstructor; + clearImmediate: (immediateId: Immediate) => void; + clearInterval: (intervalId: Timeout) => void; + clearTimeout: (timeoutId: Timeout) => void; + console: typeof console; + decodeURI: typeof decodeURI; + decodeURIComponent: typeof decodeURIComponent; + encodeURI: typeof encodeURI; + encodeURIComponent: typeof encodeURIComponent; + escape: (str: string) => string; + eval: typeof eval; + global: Global; + isFinite: typeof isFinite; + isNaN: typeof isNaN; + parseFloat: typeof parseFloat; + parseInt: typeof parseInt; + process: Process; + root: Global; + setImmediate: (callback: (...args: any[]) => void, ...args: any[]) => Immediate; + setInterval: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => Timeout; + setTimeout: (callback: (...args: any[]) => void, ms: number, ...args: any[]) => Timeout; + queueMicrotask: typeof queueMicrotask; + undefined: typeof undefined; + unescape: (str: string) => string; + gc: () => void; + v8debug?: any; + } + + // compatibility with older typings + interface Timer { + hasRef(): boolean; + ref(): this; + refresh(): this; + unref(): this; + } + + class Immediate { + hasRef(): boolean; + ref(): this; + unref(): this; + _onImmediate: Function; // to distinguish it from the Timeout class + } + + class Timeout implements Timer { + hasRef(): boolean; + ref(): this; + refresh(): this; + unref(): this; + } + + class Module { + static runMain(): void; + static wrap(code: string): string; + + /** + * @deprecated Deprecated since: v12.2.0. Please use createRequire() instead. + */ + static createRequireFromPath(path: string): NodeRequire; + static createRequire(path: string): NodeRequire; + static builtinModules: string[]; + + static Module: typeof Module; + + exports: any; + require: NodeRequireFunction; + id: string; + filename: string; + loaded: boolean; + parent: Module | null; + children: Module[]; + paths: string[]; + + constructor(id: string, parent?: Module); + } + + type TypedArray = Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | Int8Array | Int16Array | Int32Array | Float32Array | Float64Array; + type ArrayBufferView = TypedArray | DataView; + + // The value type here is a "poor man's `unknown`". When these types support TypeScript + // 3.0+, we can replace this with `unknown`. + type PoorMansUnknown = {} | null | undefined; +} diff --git a/node_modules/@types/node/http.d.ts b/node_modules/@types/node/http.d.ts new file mode 100644 index 0000000..139a9fb --- /dev/null +++ b/node_modules/@types/node/http.d.ts @@ -0,0 +1,371 @@ +declare module "http" { + import * as events from "events"; + import * as stream from "stream"; + import { URL } from "url"; + import { Socket, Server as NetServer } from "net"; + + // incoming headers will never contain number + interface IncomingHttpHeaders { + 'accept'?: string; + 'accept-language'?: string; + 'accept-patch'?: string; + 'accept-ranges'?: string; + 'access-control-allow-credentials'?: string; + 'access-control-allow-headers'?: string; + 'access-control-allow-methods'?: string; + 'access-control-allow-origin'?: string; + 'access-control-expose-headers'?: string; + 'access-control-max-age'?: string; + 'age'?: string; + 'allow'?: string; + 'alt-svc'?: string; + 'authorization'?: string; + 'cache-control'?: string; + 'connection'?: string; + 'content-disposition'?: string; + 'content-encoding'?: string; + 'content-language'?: string; + 'content-length'?: string; + 'content-location'?: string; + 'content-range'?: string; + 'content-type'?: string; + 'cookie'?: string; + 'date'?: string; + 'expect'?: string; + 'expires'?: string; + 'forwarded'?: string; + 'from'?: string; + 'host'?: string; + 'if-match'?: string; + 'if-modified-since'?: string; + 'if-none-match'?: string; + 'if-unmodified-since'?: string; + 'last-modified'?: string; + 'location'?: string; + 'pragma'?: string; + 'proxy-authenticate'?: string; + 'proxy-authorization'?: string; + 'public-key-pins'?: string; + 'range'?: string; + 'referer'?: string; + 'retry-after'?: string; + 'set-cookie'?: string[]; + 'strict-transport-security'?: string; + 'tk'?: string; + 'trailer'?: string; + 'transfer-encoding'?: string; + 'upgrade'?: string; + 'user-agent'?: string; + 'vary'?: string; + 'via'?: string; + 'warning'?: string; + 'www-authenticate'?: string; + [header: string]: string | string[] | undefined; + } + + // outgoing headers allows numbers (as they are converted internally to strings) + interface OutgoingHttpHeaders { + [header: string]: number | string | string[] | undefined; + } + + interface ClientRequestArgs { + protocol?: string | null; + host?: string | null; + hostname?: string | null; + family?: number; + port?: number | string | null; + defaultPort?: number | string; + localAddress?: string; + socketPath?: string; + method?: string; + path?: string | null; + headers?: OutgoingHttpHeaders; + auth?: string | null; + agent?: Agent | boolean; + _defaultAgent?: Agent; + timeout?: number; + setHost?: boolean; + // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L278 + createConnection?: (options: ClientRequestArgs, oncreate: (err: Error, socket: Socket) => void) => Socket; + } + + interface ServerOptions { + IncomingMessage?: typeof IncomingMessage; + ServerResponse?: typeof ServerResponse; + } + + type RequestListener = (req: IncomingMessage, res: ServerResponse) => void; + + class Server extends NetServer { + constructor(requestListener?: RequestListener); + constructor(options: ServerOptions, requestListener?: RequestListener); + + setTimeout(msecs?: number, callback?: () => void): this; + setTimeout(callback: () => void): this; + /** + * Limits maximum incoming headers count. If set to 0, no limit will be applied. + * @default 2000 + * {@link https://nodejs.org/api/http.html#http_server_maxheaderscount} + */ + maxHeadersCount: number | null; + timeout: number; + /** + * Limit the amount of time the parser will wait to receive the complete HTTP headers. + * @default 40000 + * {@link https://nodejs.org/api/http.html#http_server_headerstimeout} + */ + headersTimeout: number; + keepAliveTimeout: number; + } + + // https://github.com/nodejs/node/blob/master/lib/_http_outgoing.js + class OutgoingMessage extends stream.Writable { + upgrading: boolean; + chunkedEncoding: boolean; + shouldKeepAlive: boolean; + useChunkedEncodingByDefault: boolean; + sendDate: boolean; + finished: boolean; + headersSent: boolean; + connection: Socket; + + constructor(); + + setTimeout(msecs: number, callback?: () => void): this; + setHeader(name: string, value: number | string | string[]): void; + getHeader(name: string): number | string | string[] | undefined; + getHeaders(): OutgoingHttpHeaders; + getHeaderNames(): string[]; + hasHeader(name: string): boolean; + removeHeader(name: string): void; + addTrailers(headers: OutgoingHttpHeaders | Array<[string, string]>): void; + flushHeaders(): void; + } + + // https://github.com/nodejs/node/blob/master/lib/_http_server.js#L108-L256 + class ServerResponse extends OutgoingMessage { + statusCode: number; + statusMessage: string; + writableFinished: boolean; + + constructor(req: IncomingMessage); + + assignSocket(socket: Socket): void; + detachSocket(socket: Socket): void; + // https://github.com/nodejs/node/blob/master/test/parallel/test-http-write-callbacks.js#L53 + // no args in writeContinue callback + writeContinue(callback?: () => void): void; + writeHead(statusCode: number, reasonPhrase?: string, headers?: OutgoingHttpHeaders): this; + writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this; + writeProcessing(): void; + } + + interface InformationEvent { + statusCode: number; + statusMessage: string; + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + headers: IncomingHttpHeaders; + rawHeaders: string[]; + } + + // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L77 + class ClientRequest extends OutgoingMessage { + connection: Socket; + socket: Socket; + aborted: number; + + constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void); + + readonly path: string; + abort(): void; + onSocket(socket: Socket): void; + setTimeout(timeout: number, callback?: () => void): this; + setNoDelay(noDelay?: boolean): void; + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + + addListener(event: 'abort', listener: () => void): this; + addListener(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + addListener(event: 'continue', listener: () => void): this; + addListener(event: 'information', listener: (info: InformationEvent) => void): this; + addListener(event: 'response', listener: (response: IncomingMessage) => void): this; + addListener(event: 'socket', listener: (socket: Socket) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + on(event: 'abort', listener: () => void): this; + on(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'continue', listener: () => void): this; + on(event: 'information', listener: (info: InformationEvent) => void): this; + on(event: 'response', listener: (response: IncomingMessage) => void): this; + on(event: 'socket', listener: (socket: Socket) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: 'abort', listener: () => void): this; + once(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'continue', listener: () => void): this; + once(event: 'information', listener: (info: InformationEvent) => void): this; + once(event: 'response', listener: (response: IncomingMessage) => void): this; + once(event: 'socket', listener: (socket: Socket) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: 'abort', listener: () => void): this; + prependListener(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependListener(event: 'continue', listener: () => void): this; + prependListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependListener(event: 'socket', listener: (socket: Socket) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: 'abort', listener: () => void): this; + prependOnceListener(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependOnceListener(event: 'continue', listener: () => void): this; + prependOnceListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependOnceListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependOnceListener(event: 'socket', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + class IncomingMessage extends stream.Readable { + constructor(socket: Socket); + + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + complete: boolean; + connection: Socket; + headers: IncomingHttpHeaders; + rawHeaders: string[]; + trailers: { [key: string]: string | undefined }; + rawTrailers: string[]; + setTimeout(msecs: number, callback?: () => void): this; + /** + * Only valid for request obtained from http.Server. + */ + method?: string; + /** + * Only valid for request obtained from http.Server. + */ + url?: string; + /** + * Only valid for response obtained from http.ClientRequest. + */ + statusCode?: number; + /** + * Only valid for response obtained from http.ClientRequest. + */ + statusMessage?: string; + socket: Socket; + destroy(error?: Error): void; + } + + interface AgentOptions { + /** + * Keep sockets around in a pool to be used by other requests in the future. Default = false + */ + keepAlive?: boolean; + /** + * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. + * Only relevant if keepAlive is set to true. + */ + keepAliveMsecs?: number; + /** + * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity + */ + maxSockets?: number; + /** + * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. + */ + maxFreeSockets?: number; + /** + * Socket timeout in milliseconds. This will set the timeout after the socket is connected. + */ + timeout?: number; + } + + class Agent { + maxFreeSockets: number; + maxSockets: number; + readonly sockets: { + readonly [key: string]: Socket[]; + }; + readonly requests: { + readonly [key: string]: IncomingMessage[]; + }; + + constructor(opts?: AgentOptions); + + /** + * Destroy any sockets that are currently in use by the agent. + * It is usually not necessary to do this. However, if you are using an agent with KeepAlive enabled, + * then it is best to explicitly shut down the agent when you know that it will no longer be used. Otherwise, + * sockets may hang open for quite a long time before the server terminates them. + */ + destroy(): void; + } + + const METHODS: string[]; + + const STATUS_CODES: { + [errorCode: number]: string | undefined; + [errorCode: string]: string | undefined; + }; + + function createServer(requestListener?: RequestListener): Server; + function createServer(options: ServerOptions, requestListener?: RequestListener): Server; + + // although RequestOptions are passed as ClientRequestArgs to ClientRequest directly, + // create interface RequestOptions would make the naming more clear to developers + interface RequestOptions extends ClientRequestArgs { } + function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function request(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + let globalAgent: Agent; + + /** + * Read-only property specifying the maximum allowed size of HTTP headers in bytes. + * Defaults to 8KB. Configurable using the [`--max-http-header-size`][] CLI option. + */ + const maxHeaderSize: number; +} diff --git a/node_modules/@types/node/http2.d.ts b/node_modules/@types/node/http2.d.ts new file mode 100644 index 0000000..8c16e10 --- /dev/null +++ b/node_modules/@types/node/http2.d.ts @@ -0,0 +1,947 @@ +declare module "http2" { + import * as events from "events"; + import * as fs from "fs"; + import * as net from "net"; + import * as stream from "stream"; + import * as tls from "tls"; + import * as url from "url"; + + import { IncomingHttpHeaders as Http1IncomingHttpHeaders, OutgoingHttpHeaders, IncomingMessage, ServerResponse } from "http"; + export { OutgoingHttpHeaders } from "http"; + + export interface IncomingHttpStatusHeader { + ":status"?: number; + } + + export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders { + ":path"?: string; + ":method"?: string; + ":authority"?: string; + ":scheme"?: string; + } + + // Http2Stream + + export interface StreamPriorityOptions { + exclusive?: boolean; + parent?: number; + weight?: number; + silent?: boolean; + } + + export interface StreamState { + localWindowSize?: number; + state?: number; + localClose?: number; + remoteClose?: number; + sumDependencyWeight?: number; + weight?: number; + } + + export interface ServerStreamResponseOptions { + endStream?: boolean; + waitForTrailers?: boolean; + } + + export interface StatOptions { + offset: number; + length: number; + } + + export interface ServerStreamFileResponseOptions { + statCheck?(stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions): void | boolean; + waitForTrailers?: boolean; + offset?: number; + length?: number; + } + + export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions { + onError?(err: NodeJS.ErrnoException): void; + } + + export interface Http2Stream extends stream.Duplex { + readonly aborted: boolean; + readonly bufferSize: number; + readonly closed: boolean; + readonly destroyed: boolean; + /** + * Set the true if the END_STREAM flag was set in the request or response HEADERS frame received, + * indicating that no additional data should be received and the readable side of the Http2Stream will be closed. + */ + readonly endAfterHeaders: boolean; + readonly id?: number; + readonly pending: boolean; + readonly rstCode: number; + readonly sentHeaders: OutgoingHttpHeaders; + readonly sentInfoHeaders?: OutgoingHttpHeaders[]; + readonly sentTrailers?: OutgoingHttpHeaders; + readonly session: Http2Session; + readonly state: StreamState; + + close(code?: number, callback?: () => void): void; + priority(options: StreamPriorityOptions): void; + setTimeout(msecs: number, callback?: () => void): void; + sendTrailers(headers: OutgoingHttpHeaders): void; + + addListener(event: "aborted", listener: () => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: Buffer | string) => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + addListener(event: "pipe", listener: (src: stream.Readable) => void): this; + addListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + addListener(event: "streamClosed", listener: (code: number) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "wantTrailers", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "aborted"): boolean; + emit(event: "close"): boolean; + emit(event: "data", chunk: Buffer | string): boolean; + emit(event: "drain"): boolean; + emit(event: "end"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "finish"): boolean; + emit(event: "frameError", frameType: number, errorCode: number): boolean; + emit(event: "pipe", src: stream.Readable): boolean; + emit(event: "unpipe", src: stream.Readable): boolean; + emit(event: "streamClosed", code: number): boolean; + emit(event: "timeout"): boolean; + emit(event: "trailers", trailers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "wantTrailers"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "aborted", listener: () => void): this; + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: Buffer | string) => void): this; + on(event: "drain", listener: () => void): this; + on(event: "end", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + on(event: "pipe", listener: (src: stream.Readable) => void): this; + on(event: "unpipe", listener: (src: stream.Readable) => void): this; + on(event: "streamClosed", listener: (code: number) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "wantTrailers", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "aborted", listener: () => void): this; + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: Buffer | string) => void): this; + once(event: "drain", listener: () => void): this; + once(event: "end", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + once(event: "pipe", listener: (src: stream.Readable) => void): this; + once(event: "unpipe", listener: (src: stream.Readable) => void): this; + once(event: "streamClosed", listener: (code: number) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "wantTrailers", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "aborted", listener: () => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + prependListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependListener(event: "streamClosed", listener: (code: number) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "wantTrailers", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "aborted", listener: () => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number) => void): this; + prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: "streamClosed", listener: (code: number) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "wantTrailers", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface ClientHttp2Stream extends Http2Stream { + addListener(event: "continue", listener: () => {}): this; + addListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "continue"): boolean; + emit(event: "headers", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: "push", headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "response", headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "continue", listener: () => {}): this; + on(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "continue", listener: () => {}): this; + once(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "continue", listener: () => {}): this; + prependListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "continue", listener: () => {}): this; + prependOnceListener(event: "headers", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "response", listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface ServerHttp2Stream extends Http2Stream { + readonly headersSent: boolean; + readonly pushAllowed: boolean; + additionalHeaders(headers: OutgoingHttpHeaders): void; + pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void; + respondWithFD(fd: number | fs.promises.FileHandle, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void; + respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void; + } + + // Http2Session + + export interface Settings { + headerTableSize?: number; + enablePush?: boolean; + initialWindowSize?: number; + maxFrameSize?: number; + maxConcurrentStreams?: number; + maxHeaderListSize?: number; + enableConnectProtocol?: boolean; + } + + export interface ClientSessionRequestOptions { + endStream?: boolean; + exclusive?: boolean; + parent?: number; + weight?: number; + waitForTrailers?: boolean; + } + + export interface SessionState { + effectiveLocalWindowSize?: number; + effectiveRecvDataLength?: number; + nextStreamID?: number; + localWindowSize?: number; + lastProcStreamID?: number; + remoteWindowSize?: number; + outboundQueueSize?: number; + deflateDynamicTableSize?: number; + inflateDynamicTableSize?: number; + } + + export interface Http2Session extends events.EventEmitter { + readonly alpnProtocol?: string; + readonly closed: boolean; + readonly connecting: boolean; + readonly destroyed: boolean; + readonly encrypted?: boolean; + readonly localSettings: Settings; + readonly originSet?: string[]; + readonly pendingSettingsAck: boolean; + readonly remoteSettings: Settings; + readonly socket: net.Socket | tls.TLSSocket; + readonly state: SessionState; + readonly type: number; + + close(callback?: () => void): void; + destroy(error?: Error, code?: number): void; + goaway(code?: number, lastStreamID?: number, opaqueData?: NodeJS.ArrayBufferView): void; + ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + ping(payload: NodeJS.ArrayBufferView, callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + ref(): void; + setTimeout(msecs: number, callback?: () => void): void; + settings(settings: Settings): void; + unref(): void; + + addListener(event: "close", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + addListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + addListener(event: "localSettings", listener: (settings: Settings) => void): this; + addListener(event: "ping", listener: () => void): this; + addListener(event: "remoteSettings", listener: (settings: Settings) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "frameError", frameType: number, errorCode: number, streamID: number): boolean; + emit(event: "goaway", errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean; + emit(event: "localSettings", settings: Settings): boolean; + emit(event: "ping"): boolean; + emit(event: "remoteSettings", settings: Settings): boolean; + emit(event: "timeout"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + on(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + on(event: "localSettings", listener: (settings: Settings) => void): this; + on(event: "ping", listener: () => void): this; + on(event: "remoteSettings", listener: (settings: Settings) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + once(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + once(event: "localSettings", listener: (settings: Settings) => void): this; + once(event: "ping", listener: () => void): this; + once(event: "remoteSettings", listener: (settings: Settings) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependListener(event: "localSettings", listener: (settings: Settings) => void): this; + prependListener(event: "ping", listener: () => void): this; + prependListener(event: "remoteSettings", listener: (settings: Settings) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "frameError", listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependOnceListener(event: "goaway", listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependOnceListener(event: "localSettings", listener: (settings: Settings) => void): this; + prependOnceListener(event: "ping", listener: () => void): this; + prependOnceListener(event: "remoteSettings", listener: (settings: Settings) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface ClientHttp2Session extends Http2Session { + request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream; + + addListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + addListener(event: "origin", listener: (origins: string[]) => void): this; + addListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "altsvc", alt: string, origin: string, stream: number): boolean; + emit(event: "origin", origins: string[]): boolean; + emit(event: "connect", session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: "stream", stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + on(event: "origin", listener: (origins: string[]) => void): this; + on(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + once(event: "origin", listener: (origins: string[]) => void): this; + once(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + prependListener(event: "origin", listener: (origins: string[]) => void): this; + prependListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "altsvc", listener: (alt: string, origin: string, stream: number) => void): this; + prependOnceListener(event: "origin", listener: (origins: string[]) => void): this; + prependOnceListener(event: "connect", listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: "stream", listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export interface AlternativeServiceOptions { + origin: number | string | url.URL; + } + + export interface ServerHttp2Session extends Http2Session { + readonly server: Http2Server | Http2SecureServer; + + altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void; + origin(...args: Array): void; + + addListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "connect", session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "connect", listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + // Http2Server + + export interface SessionOptions { + maxDeflateDynamicTableSize?: number; + maxSessionMemory?: number; + maxHeaderListPairs?: number; + maxOutstandingPings?: number; + maxSendHeaderBlockLength?: number; + paddingStrategy?: number; + peerMaxConcurrentStreams?: number; + settings?: Settings; + + selectPadding?(frameLen: number, maxFrameLen: number): number; + createConnection?(authority: url.URL, option: SessionOptions): stream.Duplex; + } + + export interface ClientSessionOptions extends SessionOptions { + maxReservedRemoteStreams?: number; + createConnection?: (authority: url.URL, option: SessionOptions) => stream.Duplex; + } + + export interface ServerSessionOptions extends SessionOptions { + Http1IncomingMessage?: typeof IncomingMessage; + Http1ServerResponse?: typeof ServerResponse; + Http2ServerRequest?: typeof Http2ServerRequest; + Http2ServerResponse?: typeof Http2ServerResponse; + } + + export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions { } + export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions { } + + export interface ServerOptions extends ServerSessionOptions { } + + export interface SecureServerOptions extends SecureServerSessionOptions { + allowHTTP1?: boolean; + origins?: string[]; + } + + export interface Http2Server extends net.Server { + addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + addListener(event: "sessionError", listener: (err: Error) => void): this; + addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "session", session: ServerHttp2Session): boolean; + emit(event: "sessionError", err: Error): boolean; + emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "timeout"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "session", listener: (session: ServerHttp2Session) => void): this; + on(event: "sessionError", listener: (err: Error) => void): this; + on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "session", listener: (session: ServerHttp2Session) => void): this; + once(event: "sessionError", listener: (err: Error) => void): this; + once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependListener(event: "sessionError", listener: (err: Error) => void): this; + prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: "sessionError", listener: (err: Error) => void): this; + prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + setTimeout(msec?: number, callback?: () => void): this; + } + + export interface Http2SecureServer extends tls.Server { + addListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + addListener(event: "sessionError", listener: (err: Error) => void): this; + addListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: "timeout", listener: () => void): this; + addListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "checkContinue", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "request", request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: "session", session: ServerHttp2Session): boolean; + emit(event: "sessionError", err: Error): boolean; + emit(event: "stream", stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: "timeout"): boolean; + emit(event: "unknownProtocol", socket: tls.TLSSocket): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: "session", listener: (session: ServerHttp2Session) => void): this; + on(event: "sessionError", listener: (err: Error) => void): this; + on(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: "timeout", listener: () => void): this; + on(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: "session", listener: (session: ServerHttp2Session) => void): this; + once(event: "sessionError", listener: (err: Error) => void): this; + once(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: "timeout", listener: () => void): this; + once(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependListener(event: "sessionError", listener: (err: Error) => void): this; + prependListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: "timeout", listener: () => void): this; + prependListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "checkContinue", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "request", listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: "session", listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: "sessionError", listener: (err: Error) => void): this; + prependOnceListener(event: "stream", listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + prependOnceListener(event: "unknownProtocol", listener: (socket: tls.TLSSocket) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + setTimeout(msec?: number, callback?: () => void): this; + } + + export class Http2ServerRequest extends stream.Readable { + constructor(stream: ServerHttp2Stream, headers: IncomingHttpHeaders, options: stream.ReadableOptions, rawHeaders: string[]); + + readonly aborted: boolean; + readonly authority: string; + readonly headers: IncomingHttpHeaders; + readonly httpVersion: string; + readonly method: string; + readonly rawHeaders: string[]; + readonly rawTrailers: string[]; + readonly scheme: string; + readonly socket: net.Socket | tls.TLSSocket; + readonly stream: ServerHttp2Stream; + readonly trailers: IncomingHttpHeaders; + readonly url: string; + + setTimeout(msecs: number, callback?: () => void): void; + read(size?: number): Buffer | string | null; + + addListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: Buffer | string) => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "readable", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "aborted", hadError: boolean, code: number): boolean; + emit(event: "close"): boolean; + emit(event: "data", chunk: Buffer | string): boolean; + emit(event: "end"): boolean; + emit(event: "readable"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: Buffer | string) => void): this; + on(event: "end", listener: () => void): this; + on(event: "readable", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: Buffer | string) => void): this; + once(event: "end", listener: () => void): this; + once(event: "readable", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "readable", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "aborted", listener: (hadError: boolean, code: number) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "readable", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + export class Http2ServerResponse extends stream.Stream { + constructor(stream: ServerHttp2Stream); + + readonly connection: net.Socket | tls.TLSSocket; + readonly finished: boolean; + readonly headersSent: boolean; + readonly socket: net.Socket | tls.TLSSocket; + readonly stream: ServerHttp2Stream; + sendDate: boolean; + statusCode: number; + statusMessage: ''; + addTrailers(trailers: OutgoingHttpHeaders): void; + end(callback?: () => void): void; + end(data: string | Uint8Array, callback?: () => void): void; + end(data: string | Uint8Array, encoding: string, callback?: () => void): void; + getHeader(name: string): string; + getHeaderNames(): string[]; + getHeaders(): OutgoingHttpHeaders; + hasHeader(name: string): boolean; + removeHeader(name: string): void; + setHeader(name: string, value: number | string | string[]): void; + setTimeout(msecs: number, callback?: () => void): void; + write(chunk: string | Uint8Array, callback?: (err: Error) => void): boolean; + write(chunk: string | Uint8Array, encoding: string, callback?: (err: Error) => void): boolean; + writeContinue(): void; + writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this; + writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this; + createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void; + + addListener(event: "close", listener: () => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "error", listener: (error: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "pipe", listener: (src: stream.Readable) => void): this; + addListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "drain"): boolean; + emit(event: "error", error: Error): boolean; + emit(event: "finish"): boolean; + emit(event: "pipe", src: stream.Readable): boolean; + emit(event: "unpipe", src: stream.Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "drain", listener: () => void): this; + on(event: "error", listener: (error: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "pipe", listener: (src: stream.Readable) => void): this; + on(event: "unpipe", listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "drain", listener: () => void): this; + once(event: "error", listener: (error: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "pipe", listener: (src: stream.Readable) => void): this; + once(event: "unpipe", listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "error", listener: (error: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "error", listener: (error: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + // Public API + + export namespace constants { + const NGHTTP2_SESSION_SERVER: number; + const NGHTTP2_SESSION_CLIENT: number; + const NGHTTP2_STREAM_STATE_IDLE: number; + const NGHTTP2_STREAM_STATE_OPEN: number; + const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number; + const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number; + const NGHTTP2_STREAM_STATE_CLOSED: number; + const NGHTTP2_NO_ERROR: number; + const NGHTTP2_PROTOCOL_ERROR: number; + const NGHTTP2_INTERNAL_ERROR: number; + const NGHTTP2_FLOW_CONTROL_ERROR: number; + const NGHTTP2_SETTINGS_TIMEOUT: number; + const NGHTTP2_STREAM_CLOSED: number; + const NGHTTP2_FRAME_SIZE_ERROR: number; + const NGHTTP2_REFUSED_STREAM: number; + const NGHTTP2_CANCEL: number; + const NGHTTP2_COMPRESSION_ERROR: number; + const NGHTTP2_CONNECT_ERROR: number; + const NGHTTP2_ENHANCE_YOUR_CALM: number; + const NGHTTP2_INADEQUATE_SECURITY: number; + const NGHTTP2_HTTP_1_1_REQUIRED: number; + const NGHTTP2_ERR_FRAME_SIZE_ERROR: number; + const NGHTTP2_FLAG_NONE: number; + const NGHTTP2_FLAG_END_STREAM: number; + const NGHTTP2_FLAG_END_HEADERS: number; + const NGHTTP2_FLAG_ACK: number; + const NGHTTP2_FLAG_PADDED: number; + const NGHTTP2_FLAG_PRIORITY: number; + const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number; + const DEFAULT_SETTINGS_ENABLE_PUSH: number; + const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number; + const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number; + const MAX_MAX_FRAME_SIZE: number; + const MIN_MAX_FRAME_SIZE: number; + const MAX_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_DEFAULT_WEIGHT: number; + const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number; + const NGHTTP2_SETTINGS_ENABLE_PUSH: number; + const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number; + const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number; + const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number; + const PADDING_STRATEGY_NONE: number; + const PADDING_STRATEGY_MAX: number; + const PADDING_STRATEGY_CALLBACK: number; + const HTTP2_HEADER_STATUS: string; + const HTTP2_HEADER_METHOD: string; + const HTTP2_HEADER_AUTHORITY: string; + const HTTP2_HEADER_SCHEME: string; + const HTTP2_HEADER_PATH: string; + const HTTP2_HEADER_ACCEPT_CHARSET: string; + const HTTP2_HEADER_ACCEPT_ENCODING: string; + const HTTP2_HEADER_ACCEPT_LANGUAGE: string; + const HTTP2_HEADER_ACCEPT_RANGES: string; + const HTTP2_HEADER_ACCEPT: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string; + const HTTP2_HEADER_AGE: string; + const HTTP2_HEADER_ALLOW: string; + const HTTP2_HEADER_AUTHORIZATION: string; + const HTTP2_HEADER_CACHE_CONTROL: string; + const HTTP2_HEADER_CONNECTION: string; + const HTTP2_HEADER_CONTENT_DISPOSITION: string; + const HTTP2_HEADER_CONTENT_ENCODING: string; + const HTTP2_HEADER_CONTENT_LANGUAGE: string; + const HTTP2_HEADER_CONTENT_LENGTH: string; + const HTTP2_HEADER_CONTENT_LOCATION: string; + const HTTP2_HEADER_CONTENT_MD5: string; + const HTTP2_HEADER_CONTENT_RANGE: string; + const HTTP2_HEADER_CONTENT_TYPE: string; + const HTTP2_HEADER_COOKIE: string; + const HTTP2_HEADER_DATE: string; + const HTTP2_HEADER_ETAG: string; + const HTTP2_HEADER_EXPECT: string; + const HTTP2_HEADER_EXPIRES: string; + const HTTP2_HEADER_FROM: string; + const HTTP2_HEADER_HOST: string; + const HTTP2_HEADER_IF_MATCH: string; + const HTTP2_HEADER_IF_MODIFIED_SINCE: string; + const HTTP2_HEADER_IF_NONE_MATCH: string; + const HTTP2_HEADER_IF_RANGE: string; + const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string; + const HTTP2_HEADER_LAST_MODIFIED: string; + const HTTP2_HEADER_LINK: string; + const HTTP2_HEADER_LOCATION: string; + const HTTP2_HEADER_MAX_FORWARDS: string; + const HTTP2_HEADER_PREFER: string; + const HTTP2_HEADER_PROXY_AUTHENTICATE: string; + const HTTP2_HEADER_PROXY_AUTHORIZATION: string; + const HTTP2_HEADER_RANGE: string; + const HTTP2_HEADER_REFERER: string; + const HTTP2_HEADER_REFRESH: string; + const HTTP2_HEADER_RETRY_AFTER: string; + const HTTP2_HEADER_SERVER: string; + const HTTP2_HEADER_SET_COOKIE: string; + const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string; + const HTTP2_HEADER_TRANSFER_ENCODING: string; + const HTTP2_HEADER_TE: string; + const HTTP2_HEADER_UPGRADE: string; + const HTTP2_HEADER_USER_AGENT: string; + const HTTP2_HEADER_VARY: string; + const HTTP2_HEADER_VIA: string; + const HTTP2_HEADER_WWW_AUTHENTICATE: string; + const HTTP2_HEADER_HTTP2_SETTINGS: string; + const HTTP2_HEADER_KEEP_ALIVE: string; + const HTTP2_HEADER_PROXY_CONNECTION: string; + const HTTP2_METHOD_ACL: string; + const HTTP2_METHOD_BASELINE_CONTROL: string; + const HTTP2_METHOD_BIND: string; + const HTTP2_METHOD_CHECKIN: string; + const HTTP2_METHOD_CHECKOUT: string; + const HTTP2_METHOD_CONNECT: string; + const HTTP2_METHOD_COPY: string; + const HTTP2_METHOD_DELETE: string; + const HTTP2_METHOD_GET: string; + const HTTP2_METHOD_HEAD: string; + const HTTP2_METHOD_LABEL: string; + const HTTP2_METHOD_LINK: string; + const HTTP2_METHOD_LOCK: string; + const HTTP2_METHOD_MERGE: string; + const HTTP2_METHOD_MKACTIVITY: string; + const HTTP2_METHOD_MKCALENDAR: string; + const HTTP2_METHOD_MKCOL: string; + const HTTP2_METHOD_MKREDIRECTREF: string; + const HTTP2_METHOD_MKWORKSPACE: string; + const HTTP2_METHOD_MOVE: string; + const HTTP2_METHOD_OPTIONS: string; + const HTTP2_METHOD_ORDERPATCH: string; + const HTTP2_METHOD_PATCH: string; + const HTTP2_METHOD_POST: string; + const HTTP2_METHOD_PRI: string; + const HTTP2_METHOD_PROPFIND: string; + const HTTP2_METHOD_PROPPATCH: string; + const HTTP2_METHOD_PUT: string; + const HTTP2_METHOD_REBIND: string; + const HTTP2_METHOD_REPORT: string; + const HTTP2_METHOD_SEARCH: string; + const HTTP2_METHOD_TRACE: string; + const HTTP2_METHOD_UNBIND: string; + const HTTP2_METHOD_UNCHECKOUT: string; + const HTTP2_METHOD_UNLINK: string; + const HTTP2_METHOD_UNLOCK: string; + const HTTP2_METHOD_UPDATE: string; + const HTTP2_METHOD_UPDATEREDIRECTREF: string; + const HTTP2_METHOD_VERSION_CONTROL: string; + const HTTP_STATUS_CONTINUE: number; + const HTTP_STATUS_SWITCHING_PROTOCOLS: number; + const HTTP_STATUS_PROCESSING: number; + const HTTP_STATUS_OK: number; + const HTTP_STATUS_CREATED: number; + const HTTP_STATUS_ACCEPTED: number; + const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number; + const HTTP_STATUS_NO_CONTENT: number; + const HTTP_STATUS_RESET_CONTENT: number; + const HTTP_STATUS_PARTIAL_CONTENT: number; + const HTTP_STATUS_MULTI_STATUS: number; + const HTTP_STATUS_ALREADY_REPORTED: number; + const HTTP_STATUS_IM_USED: number; + const HTTP_STATUS_MULTIPLE_CHOICES: number; + const HTTP_STATUS_MOVED_PERMANENTLY: number; + const HTTP_STATUS_FOUND: number; + const HTTP_STATUS_SEE_OTHER: number; + const HTTP_STATUS_NOT_MODIFIED: number; + const HTTP_STATUS_USE_PROXY: number; + const HTTP_STATUS_TEMPORARY_REDIRECT: number; + const HTTP_STATUS_PERMANENT_REDIRECT: number; + const HTTP_STATUS_BAD_REQUEST: number; + const HTTP_STATUS_UNAUTHORIZED: number; + const HTTP_STATUS_PAYMENT_REQUIRED: number; + const HTTP_STATUS_FORBIDDEN: number; + const HTTP_STATUS_NOT_FOUND: number; + const HTTP_STATUS_METHOD_NOT_ALLOWED: number; + const HTTP_STATUS_NOT_ACCEPTABLE: number; + const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number; + const HTTP_STATUS_REQUEST_TIMEOUT: number; + const HTTP_STATUS_CONFLICT: number; + const HTTP_STATUS_GONE: number; + const HTTP_STATUS_LENGTH_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_FAILED: number; + const HTTP_STATUS_PAYLOAD_TOO_LARGE: number; + const HTTP_STATUS_URI_TOO_LONG: number; + const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number; + const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number; + const HTTP_STATUS_EXPECTATION_FAILED: number; + const HTTP_STATUS_TEAPOT: number; + const HTTP_STATUS_MISDIRECTED_REQUEST: number; + const HTTP_STATUS_UNPROCESSABLE_ENTITY: number; + const HTTP_STATUS_LOCKED: number; + const HTTP_STATUS_FAILED_DEPENDENCY: number; + const HTTP_STATUS_UNORDERED_COLLECTION: number; + const HTTP_STATUS_UPGRADE_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_REQUIRED: number; + const HTTP_STATUS_TOO_MANY_REQUESTS: number; + const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number; + const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number; + const HTTP_STATUS_INTERNAL_SERVER_ERROR: number; + const HTTP_STATUS_NOT_IMPLEMENTED: number; + const HTTP_STATUS_BAD_GATEWAY: number; + const HTTP_STATUS_SERVICE_UNAVAILABLE: number; + const HTTP_STATUS_GATEWAY_TIMEOUT: number; + const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number; + const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number; + const HTTP_STATUS_INSUFFICIENT_STORAGE: number; + const HTTP_STATUS_LOOP_DETECTED: number; + const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number; + const HTTP_STATUS_NOT_EXTENDED: number; + const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number; + } + + export function getDefaultSettings(): Settings; + export function getPackedSettings(settings: Settings): Buffer; + export function getUnpackedSettings(buf: Uint8Array): Settings; + + export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + + export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + + export function connect(authority: string | url.URL, listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session; + export function connect( + authority: string | url.URL, + options?: ClientSessionOptions | SecureClientSessionOptions, + listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void + ): ClientHttp2Session; +} diff --git a/node_modules/@types/node/https.d.ts b/node_modules/@types/node/https.d.ts new file mode 100644 index 0000000..6f33dbd --- /dev/null +++ b/node_modules/@types/node/https.d.ts @@ -0,0 +1,53 @@ +declare module "https" { + import * as tls from "tls"; + import * as events from "events"; + import * as http from "http"; + import { URL } from "url"; + + type ServerOptions = tls.SecureContextOptions & tls.TlsOptions & http.ServerOptions; + + type RequestOptions = http.RequestOptions & tls.SecureContextOptions & { + rejectUnauthorized?: boolean; // Defaults to true + servername?: string; // SNI TLS Extension + }; + + interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions { + rejectUnauthorized?: boolean; + maxCachedSessions?: number; + } + + class Agent extends http.Agent { + constructor(options?: AgentOptions); + options: AgentOptions; + } + + class Server extends tls.Server { + constructor(requestListener?: http.RequestListener); + constructor(options: ServerOptions, requestListener?: http.RequestListener); + + setTimeout(callback: () => void): this; + setTimeout(msecs?: number, callback?: () => void): this; + /** + * Limits maximum incoming headers count. If set to 0, no limit will be applied. + * @default 2000 + * {@link https://nodejs.org/api/http.html#http_server_maxheaderscount} + */ + maxHeadersCount: number | null; + timeout: number; + /** + * Limit the amount of time the parser will wait to receive the complete HTTP headers. + * @default 40000 + * {@link https://nodejs.org/api/http.html#http_server_headerstimeout} + */ + headersTimeout: number; + keepAliveTimeout: number; + } + + function createServer(requestListener?: http.RequestListener): Server; + function createServer(options: ServerOptions, requestListener?: http.RequestListener): Server; + function request(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + function request(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + function get(options: RequestOptions | string | URL, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + function get(url: string | URL, options: RequestOptions, callback?: (res: http.IncomingMessage) => void): http.ClientRequest; + let globalAgent: Agent; +} diff --git a/node_modules/@types/node/index.d.ts b/node_modules/@types/node/index.d.ts new file mode 100644 index 0000000..3f30673 --- /dev/null +++ b/node_modules/@types/node/index.d.ts @@ -0,0 +1,104 @@ +// Type definitions for non-npm package Node.js 12.12 +// Project: http://nodejs.org/ +// Definitions by: Microsoft TypeScript +// DefinitelyTyped +// Alberto Schiabel +// Alexander T. +// Alvis HT Tang +// Andrew Makarov +// Benjamin Toueg +// Bruno Scheufler +// Chigozirim C. +// Christian Vaagland Tellnes +// David Junger +// Deividas Bakanas +// Eugene Y. Q. Shen +// Flarna +// Hannes Magnusson +// Hoàng Văn Khải +// Huw +// Kelvin Jin +// Klaus Meinhardt +// Lishude +// Mariusz Wiktorczyk +// Mohsen Azimi +// Nicolas Even +// Nicolas Voigt +// Nikita Galkin +// Parambir Singh +// Sebastian Silbermann +// Simon Schick +// Thomas den Hollander +// Wilco Bakker +// wwwy3y3 +// Zane Hannan AU +// Samuel Ainsworth +// Kyle Uehlein +// Jordi Oliveras Rovira +// Thanik Bhongbhibhat +// Marcin Kopacz +// Trivikram Kamat +// Minh Son Nguyen +// Junxiao Shi +// Ilia Baryshnikov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +// NOTE: These definitions support NodeJS and TypeScript 3.2. + +// NOTE: TypeScript version-specific augmentations can be found in the following paths: +// - ~/base.d.ts - Shared definitions common to all TypeScript versions +// - ~/index.d.ts - Definitions specific to TypeScript 2.1 +// - ~/ts3.2/index.d.ts - Definitions specific to TypeScript 3.2 + +// NOTE: Augmentations for TypeScript 3.2 and later should use individual files for overrides +// within the respective ~/ts3.2 (or later) folder. However, this is disallowed for versions +// prior to TypeScript 3.2, so the older definitions will be found here. + +// Base definitions for all NodeJS modules that are not specific to any version of TypeScript: +/// + +// TypeScript 2.1-specific augmentations: + +// Forward-declarations for needed types from es2015 and later (in case users are using `--lib es5`) +// Empty interfaces are used here which merge fine with the real declarations in the lib XXX files +// just to ensure the names are known and node typings can be used without importing these libs. +// if someone really needs these types the libs need to be added via --lib or in tsconfig.json +interface MapConstructor { } +interface WeakMapConstructor { } +interface SetConstructor { } +interface WeakSetConstructor { } +interface Set {} +interface Map {} +interface ReadonlySet {} +interface Iterable { } +interface IteratorResult { } +interface AsyncIterable { } +interface Iterator { + next(value?: any): IteratorResult; +} +interface IterableIterator { } +interface AsyncIterableIterator {} +interface SymbolConstructor { + readonly iterator: symbol; + readonly asyncIterator: symbol; +} +declare var Symbol: SymbolConstructor; +// even this is just a forward declaration some properties are added otherwise +// it would be allowed to pass anything to e.g. Buffer.from() +interface SharedArrayBuffer { + readonly byteLength: number; + slice(begin?: number, end?: number): SharedArrayBuffer; +} + +declare module "util" { + namespace inspect { + const custom: symbol; + } + namespace promisify { + const custom: symbol; + } + namespace types { + function isBigInt64Array(value: any): boolean; + function isBigUint64Array(value: any): boolean; + } +} diff --git a/node_modules/@types/node/inspector.d.ts b/node_modules/@types/node/inspector.d.ts new file mode 100644 index 0000000..b14aed2 --- /dev/null +++ b/node_modules/@types/node/inspector.d.ts @@ -0,0 +1,3034 @@ +// tslint:disable-next-line:dt-header +// Type definitions for inspector + +// These definitions are auto-generated. +// Please see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/19330 +// for more information. + +// tslint:disable:max-line-length + +/** + * The inspector module provides an API for interacting with the V8 inspector. + */ +declare module "inspector" { + import { EventEmitter } from 'events'; + + interface InspectorNotification { + method: string; + params: T; + } + + namespace Schema { + /** + * Description of the protocol domain. + */ + interface Domain { + /** + * Domain name. + */ + name: string; + /** + * Domain version. + */ + version: string; + } + + interface GetDomainsReturnType { + /** + * List of supported domains. + */ + domains: Domain[]; + } + } + + namespace Runtime { + /** + * Unique script identifier. + */ + type ScriptId = string; + + /** + * Unique object identifier. + */ + type RemoteObjectId = string; + + /** + * Primitive value which cannot be JSON-stringified. + */ + type UnserializableValue = string; + + /** + * Mirror object referencing original JavaScript object. + */ + interface RemoteObject { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string; + /** + * Object class (constructor) name. Specified for object type values only. + */ + className?: string; + /** + * Remote object value in case of primitive values or JSON values (if it was requested). + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified does not have value, but gets this property. + */ + unserializableValue?: UnserializableValue; + /** + * String representation of the object. + */ + description?: string; + /** + * Unique object identifier (for non-primitive values). + */ + objectId?: RemoteObjectId; + /** + * Preview containing abbreviated property values. Specified for object type values only. + * @experimental + */ + preview?: ObjectPreview; + /** + * @experimental + */ + customPreview?: CustomPreview; + } + + /** + * @experimental + */ + interface CustomPreview { + header: string; + hasBody: boolean; + formatterObjectId: RemoteObjectId; + bindRemoteObjectFunctionId: RemoteObjectId; + configObjectId?: RemoteObjectId; + } + + /** + * Object containing abbreviated remote object value. + * @experimental + */ + interface ObjectPreview { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string; + /** + * String representation of the object. + */ + description?: string; + /** + * True iff some of the properties or entries of the original object did not fit. + */ + overflow: boolean; + /** + * List of the properties. + */ + properties: PropertyPreview[]; + /** + * List of the entries. Specified for map and set subtype values only. + */ + entries?: EntryPreview[]; + } + + /** + * @experimental + */ + interface PropertyPreview { + /** + * Property name. + */ + name: string; + /** + * Object type. Accessor means that the property itself is an accessor property. + */ + type: string; + /** + * User-friendly property value string. + */ + value?: string; + /** + * Nested value preview. + */ + valuePreview?: ObjectPreview; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string; + } + + /** + * @experimental + */ + interface EntryPreview { + /** + * Preview of the key. Specified for map-like collection entries. + */ + key?: ObjectPreview; + /** + * Preview of the value. + */ + value: ObjectPreview; + } + + /** + * Object property descriptor. + */ + interface PropertyDescriptor { + /** + * Property name or symbol description. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject; + /** + * True if the value associated with the property may be changed (data descriptors only). + */ + writable?: boolean; + /** + * A function which serves as a getter for the property, or undefined if there is no getter (accessor descriptors only). + */ + get?: RemoteObject; + /** + * A function which serves as a setter for the property, or undefined if there is no setter (accessor descriptors only). + */ + set?: RemoteObject; + /** + * True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object. + */ + configurable: boolean; + /** + * True if this property shows up during enumeration of the properties on the corresponding object. + */ + enumerable: boolean; + /** + * True if the result was thrown during the evaluation. + */ + wasThrown?: boolean; + /** + * True if the property is owned for the object. + */ + isOwn?: boolean; + /** + * Property symbol object, if the property is of the symbol type. + */ + symbol?: RemoteObject; + } + + /** + * Object internal property descriptor. This property isn't normally visible in JavaScript code. + */ + interface InternalPropertyDescriptor { + /** + * Conventional property name. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject; + } + + /** + * Represents function call argument. Either remote object id objectId, primitive value, unserializable primitive value or neither of (for undefined) them should be specified. + */ + interface CallArgument { + /** + * Primitive value or serializable javascript object. + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified. + */ + unserializableValue?: UnserializableValue; + /** + * Remote object handle. + */ + objectId?: RemoteObjectId; + } + + /** + * Id of an execution context. + */ + type ExecutionContextId = number; + + /** + * Description of an isolated world. + */ + interface ExecutionContextDescription { + /** + * Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed. + */ + id: ExecutionContextId; + /** + * Execution context origin. + */ + origin: string; + /** + * Human readable name describing given context. + */ + name: string; + /** + * Embedder-specific auxiliary data. + */ + auxData?: {}; + } + + /** + * Detailed information about exception (or error) that was thrown during script compilation or execution. + */ + interface ExceptionDetails { + /** + * Exception id. + */ + exceptionId: number; + /** + * Exception text, which should be used together with exception object when available. + */ + text: string; + /** + * Line number of the exception location (0-based). + */ + lineNumber: number; + /** + * Column number of the exception location (0-based). + */ + columnNumber: number; + /** + * Script ID of the exception location. + */ + scriptId?: ScriptId; + /** + * URL of the exception location, to be used when the script was not reported. + */ + url?: string; + /** + * JavaScript stack trace if available. + */ + stackTrace?: StackTrace; + /** + * Exception object if available. + */ + exception?: RemoteObject; + /** + * Identifier of the context where exception happened. + */ + executionContextId?: ExecutionContextId; + } + + /** + * Number of milliseconds since epoch. + */ + type Timestamp = number; + + /** + * Stack entry for runtime errors and assertions. + */ + interface CallFrame { + /** + * JavaScript function name. + */ + functionName: string; + /** + * JavaScript script id. + */ + scriptId: ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * JavaScript script line number (0-based). + */ + lineNumber: number; + /** + * JavaScript script column number (0-based). + */ + columnNumber: number; + } + + /** + * Call frames for assertions or error messages. + */ + interface StackTrace { + /** + * String label of this stack trace. For async traces this may be a name of the function that initiated the async call. + */ + description?: string; + /** + * JavaScript function name. + */ + callFrames: CallFrame[]; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + */ + parent?: StackTrace; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + * @experimental + */ + parentId?: StackTraceId; + } + + /** + * Unique identifier of current debugger. + * @experimental + */ + type UniqueDebuggerId = string; + + /** + * If debuggerId is set stack trace comes from another debugger and can be resolved there. This allows to track cross-debugger calls. See Runtime.StackTrace and Debugger.paused for usages. + * @experimental + */ + interface StackTraceId { + id: string; + debuggerId?: UniqueDebuggerId; + } + + interface EvaluateParameterType { + /** + * Expression to evaluate. + */ + expression: string; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + contextId?: ExecutionContextId; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean; + } + + interface AwaitPromiseParameterType { + /** + * Identifier of the promise. + */ + promiseObjectId: RemoteObjectId; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean; + } + + interface CallFunctionOnParameterType { + /** + * Declaration of the function to call. + */ + functionDeclaration: string; + /** + * Identifier of the object to call function on. Either objectId or executionContextId should be specified. + */ + objectId?: RemoteObjectId; + /** + * Call arguments. All call arguments must belong to the same JavaScript world as the target object. + */ + arguments?: CallArgument[]; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean; + /** + * Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified. + */ + executionContextId?: ExecutionContextId; + /** + * Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object. + */ + objectGroup?: string; + } + + interface GetPropertiesParameterType { + /** + * Identifier of the object to return properties for. + */ + objectId: RemoteObjectId; + /** + * If true, returns properties belonging only to the element itself, not to its prototype chain. + */ + ownProperties?: boolean; + /** + * If true, returns accessor properties (with getter/setter) only; internal properties are not returned either. + * @experimental + */ + accessorPropertiesOnly?: boolean; + /** + * Whether preview should be generated for the results. + * @experimental + */ + generatePreview?: boolean; + } + + interface ReleaseObjectParameterType { + /** + * Identifier of the object to release. + */ + objectId: RemoteObjectId; + } + + interface ReleaseObjectGroupParameterType { + /** + * Symbolic object group name. + */ + objectGroup: string; + } + + interface SetCustomObjectFormatterEnabledParameterType { + enabled: boolean; + } + + interface CompileScriptParameterType { + /** + * Expression to compile. + */ + expression: string; + /** + * Source url to be set for the script. + */ + sourceURL: string; + /** + * Specifies whether the compiled script should be persisted. + */ + persistScript: boolean; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId; + } + + interface RunScriptParameterType { + /** + * Id of the script to run. + */ + scriptId: ScriptId; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean; + } + + interface QueryObjectsParameterType { + /** + * Identifier of the prototype to return objects for. + */ + prototypeObjectId: RemoteObjectId; + } + + interface GlobalLexicalScopeNamesParameterType { + /** + * Specifies in which execution context to lookup global scope variables. + */ + executionContextId?: ExecutionContextId; + } + + interface EvaluateReturnType { + /** + * Evaluation result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface AwaitPromiseReturnType { + /** + * Promise result. Will contain rejected value if promise was rejected. + */ + result: RemoteObject; + /** + * Exception details if stack strace is available. + */ + exceptionDetails?: ExceptionDetails; + } + + interface CallFunctionOnReturnType { + /** + * Call result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface GetPropertiesReturnType { + /** + * Object properties. + */ + result: PropertyDescriptor[]; + /** + * Internal object properties (only of the element itself). + */ + internalProperties?: InternalPropertyDescriptor[]; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface CompileScriptReturnType { + /** + * Id of the script. + */ + scriptId?: ScriptId; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface RunScriptReturnType { + /** + * Run result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails; + } + + interface QueryObjectsReturnType { + /** + * Array with objects. + */ + objects: RemoteObject; + } + + interface GlobalLexicalScopeNamesReturnType { + names: string[]; + } + + interface ExecutionContextCreatedEventDataType { + /** + * A newly created execution context. + */ + context: ExecutionContextDescription; + } + + interface ExecutionContextDestroyedEventDataType { + /** + * Id of the destroyed context + */ + executionContextId: ExecutionContextId; + } + + interface ExceptionThrownEventDataType { + /** + * Timestamp of the exception. + */ + timestamp: Timestamp; + exceptionDetails: ExceptionDetails; + } + + interface ExceptionRevokedEventDataType { + /** + * Reason describing why exception was revoked. + */ + reason: string; + /** + * The id of revoked exception, as reported in exceptionThrown. + */ + exceptionId: number; + } + + interface ConsoleAPICalledEventDataType { + /** + * Type of the call. + */ + type: string; + /** + * Call arguments. + */ + args: RemoteObject[]; + /** + * Identifier of the context where the call was made. + */ + executionContextId: ExecutionContextId; + /** + * Call timestamp. + */ + timestamp: Timestamp; + /** + * Stack trace captured when the call was made. + */ + stackTrace?: StackTrace; + /** + * Console context descriptor for calls on non-default console context (not console.*): 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call on named context. + * @experimental + */ + context?: string; + } + + interface InspectRequestedEventDataType { + object: RemoteObject; + hints: {}; + } + } + + namespace Debugger { + /** + * Breakpoint identifier. + */ + type BreakpointId = string; + + /** + * Call frame identifier. + */ + type CallFrameId = string; + + /** + * Location in the source code. + */ + interface Location { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number; + } + + /** + * Location in the source code. + * @experimental + */ + interface ScriptPosition { + lineNumber: number; + columnNumber: number; + } + + /** + * JavaScript call frame. Array of call frames form the call stack. + */ + interface CallFrame { + /** + * Call frame identifier. This identifier is only valid while the virtual machine is paused. + */ + callFrameId: CallFrameId; + /** + * Name of the JavaScript function called on this call frame. + */ + functionName: string; + /** + * Location in the source code. + */ + functionLocation?: Location; + /** + * Location in the source code. + */ + location: Location; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Scope chain for this call frame. + */ + scopeChain: Scope[]; + /** + * this object for this call frame. + */ + this: Runtime.RemoteObject; + /** + * The value being returned, if the function is at return point. + */ + returnValue?: Runtime.RemoteObject; + } + + /** + * Scope description. + */ + interface Scope { + /** + * Scope type. + */ + type: string; + /** + * Object representing the scope. For global and with scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties. + */ + object: Runtime.RemoteObject; + name?: string; + /** + * Location in the source code where scope starts + */ + startLocation?: Location; + /** + * Location in the source code where scope ends + */ + endLocation?: Location; + } + + /** + * Search match for resource. + */ + interface SearchMatch { + /** + * Line number in resource content. + */ + lineNumber: number; + /** + * Line with match content. + */ + lineContent: string; + } + + interface BreakLocation { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number; + type?: string; + } + + interface SetBreakpointsActiveParameterType { + /** + * New value for breakpoints active state. + */ + active: boolean; + } + + interface SetSkipAllPausesParameterType { + /** + * New value for skip pauses state. + */ + skip: boolean; + } + + interface SetBreakpointByUrlParameterType { + /** + * Line number to set breakpoint at. + */ + lineNumber: number; + /** + * URL of the resources to set breakpoint on. + */ + url?: string; + /** + * Regex pattern for the URLs of the resources to set breakpoints on. Either url or urlRegex must be specified. + */ + urlRegex?: string; + /** + * Script hash of the resources to set breakpoint on. + */ + scriptHash?: string; + /** + * Offset in the line to set breakpoint at. + */ + columnNumber?: number; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string; + } + + interface SetBreakpointParameterType { + /** + * Location to set breakpoint in. + */ + location: Location; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string; + } + + interface RemoveBreakpointParameterType { + breakpointId: BreakpointId; + } + + interface GetPossibleBreakpointsParameterType { + /** + * Start of range to search possible breakpoint locations in. + */ + start: Location; + /** + * End of range to search possible breakpoint locations in (excluding). When not specified, end of scripts is used as end of range. + */ + end?: Location; + /** + * Only consider locations which are in the same (non-nested) function as start. + */ + restrictToFunction?: boolean; + } + + interface ContinueToLocationParameterType { + /** + * Location to continue to. + */ + location: Location; + targetCallFrames?: string; + } + + interface PauseOnAsyncCallParameterType { + /** + * Debugger will pause when async call with given stack trace is started. + */ + parentStackTraceId: Runtime.StackTraceId; + } + + interface StepIntoParameterType { + /** + * Debugger will issue additional Debugger.paused notification if any async task is scheduled before next pause. + * @experimental + */ + breakOnAsyncCall?: boolean; + } + + interface GetStackTraceParameterType { + stackTraceId: Runtime.StackTraceId; + } + + interface SearchInContentParameterType { + /** + * Id of the script to search in. + */ + scriptId: Runtime.ScriptId; + /** + * String to search for. + */ + query: string; + /** + * If true, search is case sensitive. + */ + caseSensitive?: boolean; + /** + * If true, treats string parameter as regex. + */ + isRegex?: boolean; + } + + interface SetScriptSourceParameterType { + /** + * Id of the script to edit. + */ + scriptId: Runtime.ScriptId; + /** + * New content of the script. + */ + scriptSource: string; + /** + * If true the change will not actually be applied. Dry run may be used to get result description without actually modifying the code. + */ + dryRun?: boolean; + } + + interface RestartFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + } + + interface GetScriptSourceParameterType { + /** + * Id of the script to get source for. + */ + scriptId: Runtime.ScriptId; + } + + interface SetPauseOnExceptionsParameterType { + /** + * Pause on exceptions mode. + */ + state: string; + } + + interface EvaluateOnCallFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + /** + * Expression to evaluate. + */ + expression: string; + /** + * String object group name to put result into (allows rapid releasing resulting object handles using releaseObjectGroup). + */ + objectGroup?: string; + /** + * Specifies whether command line API should be available to the evaluated expression, defaults to false. + */ + includeCommandLineAPI?: boolean; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean; + /** + * Whether to throw an exception if side effect cannot be ruled out during evaluation. + */ + throwOnSideEffect?: boolean; + } + + interface SetVariableValueParameterType { + /** + * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' scope types are allowed. Other scopes could be manipulated manually. + */ + scopeNumber: number; + /** + * Variable name. + */ + variableName: string; + /** + * New variable value. + */ + newValue: Runtime.CallArgument; + /** + * Id of callframe that holds variable. + */ + callFrameId: CallFrameId; + } + + interface SetReturnValueParameterType { + /** + * New return value. + */ + newValue: Runtime.CallArgument; + } + + interface SetAsyncCallStackDepthParameterType { + /** + * Maximum depth of async call stacks. Setting to 0 will effectively disable collecting async call stacks (default). + */ + maxDepth: number; + } + + interface SetBlackboxPatternsParameterType { + /** + * Array of regexps that will be used to check script url for blackbox state. + */ + patterns: string[]; + } + + interface SetBlackboxedRangesParameterType { + /** + * Id of the script. + */ + scriptId: Runtime.ScriptId; + positions: ScriptPosition[]; + } + + interface EnableReturnType { + /** + * Unique identifier of the debugger. + * @experimental + */ + debuggerId: Runtime.UniqueDebuggerId; + } + + interface SetBreakpointByUrlReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * List of the locations this breakpoint resolved into upon addition. + */ + locations: Location[]; + } + + interface SetBreakpointReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * Location this breakpoint resolved into. + */ + actualLocation: Location; + } + + interface GetPossibleBreakpointsReturnType { + /** + * List of the possible breakpoint locations. + */ + locations: BreakLocation[]; + } + + interface GetStackTraceReturnType { + stackTrace: Runtime.StackTrace; + } + + interface SearchInContentReturnType { + /** + * List of search matches. + */ + result: SearchMatch[]; + } + + interface SetScriptSourceReturnType { + /** + * New stack trace in case editing has happened while VM was stopped. + */ + callFrames?: CallFrame[]; + /** + * Whether current call stack was modified after applying the changes. + */ + stackChanged?: boolean; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId; + /** + * Exception details if any. + */ + exceptionDetails?: Runtime.ExceptionDetails; + } + + interface RestartFrameReturnType { + /** + * New stack trace. + */ + callFrames: CallFrame[]; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId; + } + + interface GetScriptSourceReturnType { + /** + * Script source. + */ + scriptSource: string; + } + + interface EvaluateOnCallFrameReturnType { + /** + * Object wrapper for the evaluation result. + */ + result: Runtime.RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: Runtime.ExceptionDetails; + } + + interface ScriptParsedEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {}; + /** + * True, if this script is generated as a result of the live edit operation. + * @experimental + */ + isLiveEdit?: boolean; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean; + /** + * This script length. + */ + length?: number; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace; + } + + interface ScriptFailedToParseEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {}; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean; + /** + * This script length. + */ + length?: number; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace; + } + + interface BreakpointResolvedEventDataType { + /** + * Breakpoint unique identifier. + */ + breakpointId: BreakpointId; + /** + * Actual breakpoint location. + */ + location: Location; + } + + interface PausedEventDataType { + /** + * Call stack the virtual machine stopped on. + */ + callFrames: CallFrame[]; + /** + * Pause reason. + */ + reason: string; + /** + * Object containing break-specific auxiliary properties. + */ + data?: {}; + /** + * Hit breakpoints IDs + */ + hitBreakpoints?: string[]; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId; + /** + * Just scheduled async call will have this stack trace as parent stack during async execution. This field is available only after Debugger.stepInto call with breakOnAsynCall flag. + * @experimental + */ + asyncCallStackTraceId?: Runtime.StackTraceId; + } + } + + namespace Console { + /** + * Console message. + */ + interface ConsoleMessage { + /** + * Message source. + */ + source: string; + /** + * Message severity. + */ + level: string; + /** + * Message text. + */ + text: string; + /** + * URL of the message origin. + */ + url?: string; + /** + * Line number in the resource that generated this message (1-based). + */ + line?: number; + /** + * Column number in the resource that generated this message (1-based). + */ + column?: number; + } + + interface MessageAddedEventDataType { + /** + * Console message that has been added. + */ + message: ConsoleMessage; + } + } + + namespace Profiler { + /** + * Profile node. Holds callsite information, execution statistics and child nodes. + */ + interface ProfileNode { + /** + * Unique id of the node. + */ + id: number; + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Number of samples where this node was on top of the call stack. + */ + hitCount?: number; + /** + * Child node ids. + */ + children?: number[]; + /** + * The reason of being not optimized. The function may be deoptimized or marked as don't optimize. + */ + deoptReason?: string; + /** + * An array of source position ticks. + */ + positionTicks?: PositionTickInfo[]; + } + + /** + * Profile. + */ + interface Profile { + /** + * The list of profile nodes. First item is the root node. + */ + nodes: ProfileNode[]; + /** + * Profiling start timestamp in microseconds. + */ + startTime: number; + /** + * Profiling end timestamp in microseconds. + */ + endTime: number; + /** + * Ids of samples top nodes. + */ + samples?: number[]; + /** + * Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime. + */ + timeDeltas?: number[]; + } + + /** + * Specifies a number of samples attributed to a certain source position. + */ + interface PositionTickInfo { + /** + * Source line number (1-based). + */ + line: number; + /** + * Number of samples attributed to the source line. + */ + ticks: number; + } + + /** + * Coverage data for a source range. + */ + interface CoverageRange { + /** + * JavaScript script source offset for the range start. + */ + startOffset: number; + /** + * JavaScript script source offset for the range end. + */ + endOffset: number; + /** + * Collected execution count of the source range. + */ + count: number; + } + + /** + * Coverage data for a JavaScript function. + */ + interface FunctionCoverage { + /** + * JavaScript function name. + */ + functionName: string; + /** + * Source ranges inside the function with coverage data. + */ + ranges: CoverageRange[]; + /** + * Whether coverage data for this function has block granularity. + */ + isBlockCoverage: boolean; + } + + /** + * Coverage data for a JavaScript script. + */ + interface ScriptCoverage { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Functions contained in the script that has coverage data. + */ + functions: FunctionCoverage[]; + } + + /** + * Describes a type collected during runtime. + * @experimental + */ + interface TypeObject { + /** + * Name of a type collected with type profiling. + */ + name: string; + } + + /** + * Source offset and types for a parameter or return value. + * @experimental + */ + interface TypeProfileEntry { + /** + * Source offset of the parameter or end of function for return values. + */ + offset: number; + /** + * The types for this parameter or return value. + */ + types: TypeObject[]; + } + + /** + * Type profile data collected during runtime for a JavaScript script. + * @experimental + */ + interface ScriptTypeProfile { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Type profile entries for parameters and return values of the functions in the script. + */ + entries: TypeProfileEntry[]; + } + + interface SetSamplingIntervalParameterType { + /** + * New sampling interval in microseconds. + */ + interval: number; + } + + interface StartPreciseCoverageParameterType { + /** + * Collect accurate call counts beyond simple 'covered' or 'not covered'. + */ + callCount?: boolean; + /** + * Collect block-based coverage. + */ + detailed?: boolean; + } + + interface StopReturnType { + /** + * Recorded profile. + */ + profile: Profile; + } + + interface TakePreciseCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + + interface GetBestEffortCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + + interface TakeTypeProfileReturnType { + /** + * Type profile for all scripts since startTypeProfile() was turned on. + */ + result: ScriptTypeProfile[]; + } + + interface ConsoleProfileStartedEventDataType { + id: string; + /** + * Location of console.profile(). + */ + location: Debugger.Location; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string; + } + + interface ConsoleProfileFinishedEventDataType { + id: string; + /** + * Location of console.profileEnd(). + */ + location: Debugger.Location; + profile: Profile; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string; + } + } + + namespace HeapProfiler { + /** + * Heap snapshot object id. + */ + type HeapSnapshotObjectId = string; + + /** + * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes. + */ + interface SamplingHeapProfileNode { + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Allocations size in bytes for the node excluding children. + */ + selfSize: number; + /** + * Child nodes. + */ + children: SamplingHeapProfileNode[]; + } + + /** + * Profile. + */ + interface SamplingHeapProfile { + head: SamplingHeapProfileNode; + } + + interface StartTrackingHeapObjectsParameterType { + trackAllocations?: boolean; + } + + interface StopTrackingHeapObjectsParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped. + */ + reportProgress?: boolean; + } + + interface TakeHeapSnapshotParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. + */ + reportProgress?: boolean; + } + + interface GetObjectByHeapObjectIdParameterType { + objectId: HeapSnapshotObjectId; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string; + } + + interface AddInspectedHeapObjectParameterType { + /** + * Heap snapshot object id to be accessible by means of $x command line API. + */ + heapObjectId: HeapSnapshotObjectId; + } + + interface GetHeapObjectIdParameterType { + /** + * Identifier of the object to get heap object id for. + */ + objectId: Runtime.RemoteObjectId; + } + + interface StartSamplingParameterType { + /** + * Average sample interval in bytes. Poisson distribution is used for the intervals. The default value is 32768 bytes. + */ + samplingInterval?: number; + } + + interface GetObjectByHeapObjectIdReturnType { + /** + * Evaluation result. + */ + result: Runtime.RemoteObject; + } + + interface GetHeapObjectIdReturnType { + /** + * Id of the heap snapshot object corresponding to the passed remote object id. + */ + heapSnapshotObjectId: HeapSnapshotObjectId; + } + + interface StopSamplingReturnType { + /** + * Recorded sampling heap profile. + */ + profile: SamplingHeapProfile; + } + + interface GetSamplingProfileReturnType { + /** + * Return the sampling profile being collected. + */ + profile: SamplingHeapProfile; + } + + interface AddHeapSnapshotChunkEventDataType { + chunk: string; + } + + interface ReportHeapSnapshotProgressEventDataType { + done: number; + total: number; + finished?: boolean; + } + + interface LastSeenObjectIdEventDataType { + lastSeenObjectId: number; + timestamp: number; + } + + interface HeapStatsUpdateEventDataType { + /** + * An array of triplets. Each triplet describes a fragment. The first integer is the fragment index, the second integer is a total count of objects for the fragment, the third integer is a total size of the objects for the fragment. + */ + statsUpdate: number[]; + } + } + + namespace NodeTracing { + interface TraceConfig { + /** + * Controls how the trace buffer stores data. + */ + recordMode?: string; + /** + * Included category filters. + */ + includedCategories: string[]; + } + + interface StartParameterType { + traceConfig: TraceConfig; + } + + interface GetCategoriesReturnType { + /** + * A list of supported tracing categories. + */ + categories: string[]; + } + + interface DataCollectedEventDataType { + value: Array<{}>; + } + } + + namespace NodeWorker { + type WorkerID = string; + + /** + * Unique identifier of attached debugging session. + */ + type SessionID = string; + + interface WorkerInfo { + workerId: WorkerID; + type: string; + title: string; + url: string; + } + + interface SendMessageToWorkerParameterType { + message: string; + /** + * Identifier of the session. + */ + sessionId: SessionID; + } + + interface EnableParameterType { + /** + * Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger` + * message to run them. + */ + waitForDebuggerOnStart: boolean; + } + + interface DetachParameterType { + sessionId: SessionID; + } + + interface AttachedToWorkerEventDataType { + /** + * Identifier assigned to the session used to send/receive messages. + */ + sessionId: SessionID; + workerInfo: WorkerInfo; + waitingForDebugger: boolean; + } + + interface DetachedFromWorkerEventDataType { + /** + * Detached session identifier. + */ + sessionId: SessionID; + } + + interface ReceivedMessageFromWorkerEventDataType { + /** + * Identifier of a session which sends a message. + */ + sessionId: SessionID; + message: string; + } + } + + namespace NodeRuntime { + interface NotifyWhenWaitingForDisconnectParameterType { + enabled: boolean; + } + } + + /** + * The inspector.Session is used for dispatching messages to the V8 inspector back-end and receiving message responses and notifications. + */ + class Session extends EventEmitter { + /** + * Create a new instance of the inspector.Session class. + * The inspector session needs to be connected through session.connect() before the messages can be dispatched to the inspector backend. + */ + constructor(); + + /** + * Connects a session to the inspector back-end. + * An exception will be thrown if there is already a connected session established either + * through the API or by a front-end connected to the Inspector WebSocket port. + */ + connect(): void; + + /** + * Immediately close the session. All pending message callbacks will be called with an error. + * session.connect() will need to be called to be able to send messages again. + * Reconnected session will lose all inspector state, such as enabled agents or configured breakpoints. + */ + disconnect(): void; + + /** + * Posts a message to the inspector back-end. callback will be notified when a response is received. + * callback is a function that accepts two optional arguments - error and message-specific result. + */ + post(method: string, params?: {}, callback?: (err: Error | null, params?: {}) => void): void; + post(method: string, callback?: (err: Error | null, params?: {}) => void): void; + + /** + * Returns supported domains. + */ + post(method: "Schema.getDomains", callback?: (err: Error | null, params: Schema.GetDomainsReturnType) => void): void; + + /** + * Evaluates expression on global object. + */ + post(method: "Runtime.evaluate", params?: Runtime.EvaluateParameterType, callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + post(method: "Runtime.evaluate", callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + + /** + * Add handler to promise with given promise object id. + */ + post(method: "Runtime.awaitPromise", params?: Runtime.AwaitPromiseParameterType, callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + post(method: "Runtime.awaitPromise", callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + + /** + * Calls function with given declaration on the given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.callFunctionOn", params?: Runtime.CallFunctionOnParameterType, callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + post(method: "Runtime.callFunctionOn", callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + + /** + * Returns properties of a given object. Object group of the result is inherited from the target object. + */ + post(method: "Runtime.getProperties", params?: Runtime.GetPropertiesParameterType, callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + post(method: "Runtime.getProperties", callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + + /** + * Releases remote object with given id. + */ + post(method: "Runtime.releaseObject", params?: Runtime.ReleaseObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.releaseObject", callback?: (err: Error | null) => void): void; + + /** + * Releases all remote objects that belong to a given group. + */ + post(method: "Runtime.releaseObjectGroup", params?: Runtime.ReleaseObjectGroupParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.releaseObjectGroup", callback?: (err: Error | null) => void): void; + + /** + * Tells inspected instance to run if it was waiting for debugger to attach. + */ + post(method: "Runtime.runIfWaitingForDebugger", callback?: (err: Error | null) => void): void; + + /** + * Enables reporting of execution contexts creation by means of executionContextCreated event. When the reporting gets enabled the event will be sent immediately for each existing execution context. + */ + post(method: "Runtime.enable", callback?: (err: Error | null) => void): void; + + /** + * Disables reporting of execution contexts creation. + */ + post(method: "Runtime.disable", callback?: (err: Error | null) => void): void; + + /** + * Discards collected exceptions and console API calls. + */ + post(method: "Runtime.discardConsoleEntries", callback?: (err: Error | null) => void): void; + + /** + * @experimental + */ + post(method: "Runtime.setCustomObjectFormatterEnabled", params?: Runtime.SetCustomObjectFormatterEnabledParameterType, callback?: (err: Error | null) => void): void; + post(method: "Runtime.setCustomObjectFormatterEnabled", callback?: (err: Error | null) => void): void; + + /** + * Compiles expression. + */ + post(method: "Runtime.compileScript", params?: Runtime.CompileScriptParameterType, callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + post(method: "Runtime.compileScript", callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + + /** + * Runs script with given id in a given context. + */ + post(method: "Runtime.runScript", params?: Runtime.RunScriptParameterType, callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: "Runtime.runScript", callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + + post(method: "Runtime.queryObjects", params?: Runtime.QueryObjectsParameterType, callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + post(method: "Runtime.queryObjects", callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + + /** + * Returns all let, const and class variables from global scope. + */ + post( + method: "Runtime.globalLexicalScopeNames", + params?: Runtime.GlobalLexicalScopeNamesParameterType, + callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void + ): void; + post(method: "Runtime.globalLexicalScopeNames", callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void): void; + + /** + * Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received. + */ + post(method: "Debugger.enable", callback?: (err: Error | null, params: Debugger.EnableReturnType) => void): void; + + /** + * Disables debugger for given page. + */ + post(method: "Debugger.disable", callback?: (err: Error | null) => void): void; + + /** + * Activates / deactivates all breakpoints on the page. + */ + post(method: "Debugger.setBreakpointsActive", params?: Debugger.SetBreakpointsActiveParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBreakpointsActive", callback?: (err: Error | null) => void): void; + + /** + * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc). + */ + post(method: "Debugger.setSkipAllPauses", params?: Debugger.SetSkipAllPausesParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setSkipAllPauses", callback?: (err: Error | null) => void): void; + + /** + * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in locations property. Further matching script parsing will result in subsequent breakpointResolved events issued. This logical breakpoint will survive page reloads. + */ + post(method: "Debugger.setBreakpointByUrl", params?: Debugger.SetBreakpointByUrlParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + post(method: "Debugger.setBreakpointByUrl", callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + + /** + * Sets JavaScript breakpoint at a given location. + */ + post(method: "Debugger.setBreakpoint", params?: Debugger.SetBreakpointParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + post(method: "Debugger.setBreakpoint", callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + + /** + * Removes JavaScript breakpoint. + */ + post(method: "Debugger.removeBreakpoint", params?: Debugger.RemoveBreakpointParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.removeBreakpoint", callback?: (err: Error | null) => void): void; + + /** + * Returns possible locations for breakpoint. scriptId in start and end range locations should be the same. + */ + post( + method: "Debugger.getPossibleBreakpoints", + params?: Debugger.GetPossibleBreakpointsParameterType, + callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void + ): void; + post(method: "Debugger.getPossibleBreakpoints", callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void): void; + + /** + * Continues execution until specific location is reached. + */ + post(method: "Debugger.continueToLocation", params?: Debugger.ContinueToLocationParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.continueToLocation", callback?: (err: Error | null) => void): void; + + /** + * @experimental + */ + post(method: "Debugger.pauseOnAsyncCall", params?: Debugger.PauseOnAsyncCallParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.pauseOnAsyncCall", callback?: (err: Error | null) => void): void; + + /** + * Steps over the statement. + */ + post(method: "Debugger.stepOver", callback?: (err: Error | null) => void): void; + + /** + * Steps into the function call. + */ + post(method: "Debugger.stepInto", params?: Debugger.StepIntoParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.stepInto", callback?: (err: Error | null) => void): void; + + /** + * Steps out of the function call. + */ + post(method: "Debugger.stepOut", callback?: (err: Error | null) => void): void; + + /** + * Stops on the next JavaScript statement. + */ + post(method: "Debugger.pause", callback?: (err: Error | null) => void): void; + + /** + * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled before next pause. Returns success when async task is actually scheduled, returns error if no task were scheduled or another scheduleStepIntoAsync was called. + * @experimental + */ + post(method: "Debugger.scheduleStepIntoAsync", callback?: (err: Error | null) => void): void; + + /** + * Resumes JavaScript execution. + */ + post(method: "Debugger.resume", callback?: (err: Error | null) => void): void; + + /** + * Returns stack trace with given stackTraceId. + * @experimental + */ + post(method: "Debugger.getStackTrace", params?: Debugger.GetStackTraceParameterType, callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + post(method: "Debugger.getStackTrace", callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + + /** + * Searches for given string in script content. + */ + post(method: "Debugger.searchInContent", params?: Debugger.SearchInContentParameterType, callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + post(method: "Debugger.searchInContent", callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + + /** + * Edits JavaScript source live. + */ + post(method: "Debugger.setScriptSource", params?: Debugger.SetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + post(method: "Debugger.setScriptSource", callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + + /** + * Restarts particular call frame from the beginning. + */ + post(method: "Debugger.restartFrame", params?: Debugger.RestartFrameParameterType, callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + post(method: "Debugger.restartFrame", callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + + /** + * Returns source for the script with given id. + */ + post(method: "Debugger.getScriptSource", params?: Debugger.GetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + post(method: "Debugger.getScriptSource", callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + + /** + * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is none. + */ + post(method: "Debugger.setPauseOnExceptions", params?: Debugger.SetPauseOnExceptionsParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setPauseOnExceptions", callback?: (err: Error | null) => void): void; + + /** + * Evaluates expression on a given call frame. + */ + post(method: "Debugger.evaluateOnCallFrame", params?: Debugger.EvaluateOnCallFrameParameterType, callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + post(method: "Debugger.evaluateOnCallFrame", callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + + /** + * Changes value of variable in a callframe. Object-based scopes are not supported and must be mutated manually. + */ + post(method: "Debugger.setVariableValue", params?: Debugger.SetVariableValueParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setVariableValue", callback?: (err: Error | null) => void): void; + + /** + * Changes return value in top frame. Available only at return break position. + * @experimental + */ + post(method: "Debugger.setReturnValue", params?: Debugger.SetReturnValueParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setReturnValue", callback?: (err: Error | null) => void): void; + + /** + * Enables or disables async call stacks tracking. + */ + post(method: "Debugger.setAsyncCallStackDepth", params?: Debugger.SetAsyncCallStackDepthParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setAsyncCallStackDepth", callback?: (err: Error | null) => void): void; + + /** + * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in scripts with url matching one of the patterns. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. + * @experimental + */ + post(method: "Debugger.setBlackboxPatterns", params?: Debugger.SetBlackboxPatternsParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBlackboxPatterns", callback?: (err: Error | null) => void): void; + + /** + * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. Positions array contains positions where blackbox state is changed. First interval isn't blackboxed. Array should be sorted. + * @experimental + */ + post(method: "Debugger.setBlackboxedRanges", params?: Debugger.SetBlackboxedRangesParameterType, callback?: (err: Error | null) => void): void; + post(method: "Debugger.setBlackboxedRanges", callback?: (err: Error | null) => void): void; + + /** + * Enables console domain, sends the messages collected so far to the client by means of the messageAdded notification. + */ + post(method: "Console.enable", callback?: (err: Error | null) => void): void; + + /** + * Disables console domain, prevents further console messages from being reported to the client. + */ + post(method: "Console.disable", callback?: (err: Error | null) => void): void; + + /** + * Does nothing. + */ + post(method: "Console.clearMessages", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.enable", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.disable", callback?: (err: Error | null) => void): void; + + /** + * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started. + */ + post(method: "Profiler.setSamplingInterval", params?: Profiler.SetSamplingIntervalParameterType, callback?: (err: Error | null) => void): void; + post(method: "Profiler.setSamplingInterval", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.start", callback?: (err: Error | null) => void): void; + + post(method: "Profiler.stop", callback?: (err: Error | null, params: Profiler.StopReturnType) => void): void; + + /** + * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters. + */ + post(method: "Profiler.startPreciseCoverage", params?: Profiler.StartPreciseCoverageParameterType, callback?: (err: Error | null) => void): void; + post(method: "Profiler.startPreciseCoverage", callback?: (err: Error | null) => void): void; + + /** + * Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code. + */ + post(method: "Profiler.stopPreciseCoverage", callback?: (err: Error | null) => void): void; + + /** + * Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started. + */ + post(method: "Profiler.takePreciseCoverage", callback?: (err: Error | null, params: Profiler.TakePreciseCoverageReturnType) => void): void; + + /** + * Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection. + */ + post(method: "Profiler.getBestEffortCoverage", callback?: (err: Error | null, params: Profiler.GetBestEffortCoverageReturnType) => void): void; + + /** + * Enable type profile. + * @experimental + */ + post(method: "Profiler.startTypeProfile", callback?: (err: Error | null) => void): void; + + /** + * Disable type profile. Disabling releases type profile data collected so far. + * @experimental + */ + post(method: "Profiler.stopTypeProfile", callback?: (err: Error | null) => void): void; + + /** + * Collect type profile. + * @experimental + */ + post(method: "Profiler.takeTypeProfile", callback?: (err: Error | null, params: Profiler.TakeTypeProfileReturnType) => void): void; + + post(method: "HeapProfiler.enable", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.disable", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.startTrackingHeapObjects", params?: HeapProfiler.StartTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.startTrackingHeapObjects", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.stopTrackingHeapObjects", params?: HeapProfiler.StopTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.stopTrackingHeapObjects", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.takeHeapSnapshot", params?: HeapProfiler.TakeHeapSnapshotParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.takeHeapSnapshot", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.collectGarbage", callback?: (err: Error | null) => void): void; + + post( + method: "HeapProfiler.getObjectByHeapObjectId", + params?: HeapProfiler.GetObjectByHeapObjectIdParameterType, + callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void + ): void; + post(method: "HeapProfiler.getObjectByHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void): void; + + /** + * Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions). + */ + post(method: "HeapProfiler.addInspectedHeapObject", params?: HeapProfiler.AddInspectedHeapObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.addInspectedHeapObject", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.getHeapObjectId", params?: HeapProfiler.GetHeapObjectIdParameterType, callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: "HeapProfiler.getHeapObjectId", callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + + post(method: "HeapProfiler.startSampling", params?: HeapProfiler.StartSamplingParameterType, callback?: (err: Error | null) => void): void; + post(method: "HeapProfiler.startSampling", callback?: (err: Error | null) => void): void; + + post(method: "HeapProfiler.stopSampling", callback?: (err: Error | null, params: HeapProfiler.StopSamplingReturnType) => void): void; + + post(method: "HeapProfiler.getSamplingProfile", callback?: (err: Error | null, params: HeapProfiler.GetSamplingProfileReturnType) => void): void; + + /** + * Gets supported tracing categories. + */ + post(method: "NodeTracing.getCategories", callback?: (err: Error | null, params: NodeTracing.GetCategoriesReturnType) => void): void; + + /** + * Start trace events collection. + */ + post(method: "NodeTracing.start", params?: NodeTracing.StartParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeTracing.start", callback?: (err: Error | null) => void): void; + + /** + * Stop trace events collection. Remaining collected events will be sent as a sequence of + * dataCollected events followed by tracingComplete event. + */ + post(method: "NodeTracing.stop", callback?: (err: Error | null) => void): void; + + /** + * Sends protocol message over session with given id. + */ + post(method: "NodeWorker.sendMessageToWorker", params?: NodeWorker.SendMessageToWorkerParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.sendMessageToWorker", callback?: (err: Error | null) => void): void; + + /** + * Instructs the inspector to attach to running workers. Will also attach to new workers + * as they start + */ + post(method: "NodeWorker.enable", params?: NodeWorker.EnableParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.enable", callback?: (err: Error | null) => void): void; + + /** + * Detaches from all running workers and disables attaching to new workers as they are started. + */ + post(method: "NodeWorker.disable", callback?: (err: Error | null) => void): void; + + /** + * Detached from the worker with given sessionId. + */ + post(method: "NodeWorker.detach", params?: NodeWorker.DetachParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeWorker.detach", callback?: (err: Error | null) => void): void; + + /** + * Enable the `NodeRuntime.waitingForDisconnect`. + */ + post(method: "NodeRuntime.notifyWhenWaitingForDisconnect", params?: NodeRuntime.NotifyWhenWaitingForDisconnectParameterType, callback?: (err: Error | null) => void): void; + post(method: "NodeRuntime.notifyWhenWaitingForDisconnect", callback?: (err: Error | null) => void): void; + + // Events + + addListener(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + addListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + addListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + addListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + addListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + addListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + addListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + addListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + addListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + addListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + addListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + addListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + addListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + addListener(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + addListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + addListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + addListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + addListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + addListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + addListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + addListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + addListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + addListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + addListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + addListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + addListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + addListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "inspectorNotification", message: InspectorNotification<{}>): boolean; + emit(event: "Runtime.executionContextCreated", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextDestroyed", message: InspectorNotification): boolean; + emit(event: "Runtime.executionContextsCleared"): boolean; + emit(event: "Runtime.exceptionThrown", message: InspectorNotification): boolean; + emit(event: "Runtime.exceptionRevoked", message: InspectorNotification): boolean; + emit(event: "Runtime.consoleAPICalled", message: InspectorNotification): boolean; + emit(event: "Runtime.inspectRequested", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptParsed", message: InspectorNotification): boolean; + emit(event: "Debugger.scriptFailedToParse", message: InspectorNotification): boolean; + emit(event: "Debugger.breakpointResolved", message: InspectorNotification): boolean; + emit(event: "Debugger.paused", message: InspectorNotification): boolean; + emit(event: "Debugger.resumed"): boolean; + emit(event: "Console.messageAdded", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileStarted", message: InspectorNotification): boolean; + emit(event: "Profiler.consoleProfileFinished", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.addHeapSnapshotChunk", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.resetProfiles"): boolean; + emit(event: "HeapProfiler.reportHeapSnapshotProgress", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.lastSeenObjectId", message: InspectorNotification): boolean; + emit(event: "HeapProfiler.heapStatsUpdate", message: InspectorNotification): boolean; + emit(event: "NodeTracing.dataCollected", message: InspectorNotification): boolean; + emit(event: "NodeTracing.tracingComplete"): boolean; + emit(event: "NodeWorker.attachedToWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.detachedFromWorker", message: InspectorNotification): boolean; + emit(event: "NodeWorker.receivedMessageFromWorker", message: InspectorNotification): boolean; + emit(event: "NodeRuntime.waitingForDisconnect"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + on(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + on(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + on(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + on(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + on(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + on(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + on(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + on(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + on(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + on(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + on(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + on(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + on(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + on(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + on(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + on(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + on(event: "HeapProfiler.resetProfiles", listener: () => void): this; + on(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + on(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + on(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + on(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + on(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + on(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + on(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + on(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + on(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + once(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + once(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + once(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + once(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + once(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + once(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + once(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + once(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + once(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + once(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + once(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + once(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + once(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + once(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + once(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + once(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + once(event: "HeapProfiler.resetProfiles", listener: () => void): this; + once(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + once(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + once(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + once(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + once(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + once(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + once(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + once(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + once(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + prependListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + prependListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + prependListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + prependListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + prependListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + prependListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + prependListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + prependListener(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + prependListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + prependListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + prependListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + prependListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + prependListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependOnceListener(event: "inspectorNotification", listener: (message: InspectorNotification<{}>) => void): this; + + /** + * Issued when new execution context is created. + */ + prependOnceListener(event: "Runtime.executionContextCreated", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when execution context is destroyed. + */ + prependOnceListener(event: "Runtime.executionContextDestroyed", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when all executionContexts were cleared in browser + */ + prependOnceListener(event: "Runtime.executionContextsCleared", listener: () => void): this; + + /** + * Issued when exception was thrown and unhandled. + */ + prependOnceListener(event: "Runtime.exceptionThrown", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when unhandled exception was revoked. + */ + prependOnceListener(event: "Runtime.exceptionRevoked", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when console API was called. + */ + prependOnceListener(event: "Runtime.consoleAPICalled", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependOnceListener(event: "Runtime.inspectRequested", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependOnceListener(event: "Debugger.scriptParsed", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when virtual machine fails to parse the script. + */ + prependOnceListener(event: "Debugger.scriptFailedToParse", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependOnceListener(event: "Debugger.breakpointResolved", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependOnceListener(event: "Debugger.paused", listener: (message: InspectorNotification) => void): this; + + /** + * Fired when the virtual machine resumed execution. + */ + prependOnceListener(event: "Debugger.resumed", listener: () => void): this; + + /** + * Issued when new console message is added. + */ + prependOnceListener(event: "Console.messageAdded", listener: (message: InspectorNotification) => void): this; + + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependOnceListener(event: "Profiler.consoleProfileStarted", listener: (message: InspectorNotification) => void): this; + + prependOnceListener(event: "Profiler.consoleProfileFinished", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.addHeapSnapshotChunk", listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: "HeapProfiler.resetProfiles", listener: () => void): this; + prependOnceListener(event: "HeapProfiler.reportHeapSnapshotProgress", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependOnceListener(event: "HeapProfiler.lastSeenObjectId", listener: (message: InspectorNotification) => void): this; + + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependOnceListener(event: "HeapProfiler.heapStatsUpdate", listener: (message: InspectorNotification) => void): this; + + /** + * Contains an bucket of collected trace events. + */ + prependOnceListener(event: "NodeTracing.dataCollected", listener: (message: InspectorNotification) => void): this; + + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependOnceListener(event: "NodeTracing.tracingComplete", listener: () => void): this; + + /** + * Issued when attached to a worker. + */ + prependOnceListener(event: "NodeWorker.attachedToWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Issued when detached from the worker. + */ + prependOnceListener(event: "NodeWorker.detachedFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependOnceListener(event: "NodeWorker.receivedMessageFromWorker", listener: (message: InspectorNotification) => void): this; + + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependOnceListener(event: "NodeRuntime.waitingForDisconnect", listener: () => void): this; + } + + // Top Level API + + /** + * Activate inspector on host and port. Equivalent to node --inspect=[[host:]port], but can be done programatically after node has started. + * If wait is true, will block until a client has connected to the inspect port and flow control has been passed to the debugger client. + * @param port Port to listen on for inspector connections. Optional, defaults to what was specified on the CLI. + * @param host Host to listen on for inspector connections. Optional, defaults to what was specified on the CLI. + * @param wait Block until a client has connected. Optional, defaults to false. + */ + function open(port?: number, host?: string, wait?: boolean): void; + + /** + * Deactivate the inspector. Blocks until there are no active connections. + */ + function close(): void; + + /** + * Return the URL of the active inspector, or `undefined` if there is none. + */ + function url(): string | undefined; +} diff --git a/node_modules/@types/node/module.d.ts b/node_modules/@types/node/module.d.ts new file mode 100644 index 0000000..f512be7 --- /dev/null +++ b/node_modules/@types/node/module.d.ts @@ -0,0 +1,3 @@ +declare module "module" { + export = NodeJS.Module; +} diff --git a/node_modules/@types/node/net.d.ts b/node_modules/@types/node/net.d.ts new file mode 100644 index 0000000..1e4f971 --- /dev/null +++ b/node_modules/@types/node/net.d.ts @@ -0,0 +1,268 @@ +declare module "net" { + import * as stream from "stream"; + import * as events from "events"; + import * as dns from "dns"; + + type LookupFunction = (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void; + + interface AddressInfo { + address: string; + family: string; + port: number; + } + + interface SocketConstructorOpts { + fd?: number; + allowHalfOpen?: boolean; + readable?: boolean; + writable?: boolean; + } + + interface OnReadOpts { + buffer: Uint8Array | (() => Uint8Array); + /** + * This function is called for every chunk of incoming data. + * Two arguments are passed to it: the number of bytes written to buffer and a reference to buffer. + * Return false from this function to implicitly pause() the socket. + */ + callback(bytesWritten: number, buf: Uint8Array): boolean; + } + + interface ConnectOpts { + /** + * If specified, incoming data is stored in a single buffer and passed to the supplied callback when data arrives on the socket. + * Note: this will cause the streaming functionality to not provide any data, however events like 'error', 'end', and 'close' will + * still be emitted as normal and methods like pause() and resume() will also behave as expected. + */ + onread?: OnReadOpts; + } + + interface TcpSocketConnectOpts extends ConnectOpts { + port: number; + host?: string; + localAddress?: string; + localPort?: number; + hints?: number; + family?: number; + lookup?: LookupFunction; + } + + interface IpcSocketConnectOpts extends ConnectOpts { + path: string; + } + + type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts; + + class Socket extends stream.Duplex { + constructor(options?: SocketConstructorOpts); + + // Extended base methods + write(buffer: Uint8Array | string, cb?: (err?: Error) => void): boolean; + write(str: Uint8Array | string, encoding?: string, cb?: (err?: Error) => void): boolean; + + connect(options: SocketConnectOpts, connectionListener?: () => void): this; + connect(port: number, host: string, connectionListener?: () => void): this; + connect(port: number, connectionListener?: () => void): this; + connect(path: string, connectionListener?: () => void): this; + + setEncoding(encoding?: string): this; + pause(): this; + resume(): this; + setTimeout(timeout: number, callback?: () => void): this; + setNoDelay(noDelay?: boolean): this; + setKeepAlive(enable?: boolean, initialDelay?: number): this; + address(): AddressInfo | string; + unref(): void; + ref(): void; + + readonly bufferSize: number; + readonly bytesRead: number; + readonly bytesWritten: number; + readonly connecting: boolean; + readonly destroyed: boolean; + readonly localAddress: string; + readonly localPort: number; + readonly remoteAddress?: string; + readonly remoteFamily?: string; + readonly remotePort?: number; + + // Extended base methods + end(cb?: () => void): void; + end(buffer: Uint8Array | string, cb?: () => void): void; + end(str: Uint8Array | string, encoding?: string, cb?: () => void): void; + + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. data + * 4. drain + * 5. end + * 6. error + * 7. lookup + * 8. timeout + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: (had_error: boolean) => void): this; + addListener(event: "connect", listener: () => void): this; + addListener(event: "data", listener: (data: Buffer) => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + addListener(event: "timeout", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close", had_error: boolean): boolean; + emit(event: "connect"): boolean; + emit(event: "data", data: Buffer): boolean; + emit(event: "drain"): boolean; + emit(event: "end"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "lookup", err: Error, address: string, family: string | number, host: string): boolean; + emit(event: "timeout"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: (had_error: boolean) => void): this; + on(event: "connect", listener: () => void): this; + on(event: "data", listener: (data: Buffer) => void): this; + on(event: "drain", listener: () => void): this; + on(event: "end", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + on(event: "timeout", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: (had_error: boolean) => void): this; + once(event: "connect", listener: () => void): this; + once(event: "data", listener: (data: Buffer) => void): this; + once(event: "drain", listener: () => void): this; + once(event: "end", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + once(event: "timeout", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: (had_error: boolean) => void): this; + prependListener(event: "connect", listener: () => void): this; + prependListener(event: "data", listener: (data: Buffer) => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependListener(event: "timeout", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: (had_error: boolean) => void): this; + prependOnceListener(event: "connect", listener: () => void): this; + prependOnceListener(event: "data", listener: (data: Buffer) => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "lookup", listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependOnceListener(event: "timeout", listener: () => void): this; + } + + interface ListenOptions { + port?: number; + host?: string; + backlog?: number; + path?: string; + exclusive?: boolean; + readableAll?: boolean; + writableAll?: boolean; + /** + * @default false + */ + ipv6Only?: boolean; + } + + // https://github.com/nodejs/node/blob/master/lib/net.js + class Server extends events.EventEmitter { + constructor(connectionListener?: (socket: Socket) => void); + constructor(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void); + + listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, hostname?: string, listeningListener?: () => void): this; + listen(port?: number, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, listeningListener?: () => void): this; + listen(path: string, backlog?: number, listeningListener?: () => void): this; + listen(path: string, listeningListener?: () => void): this; + listen(options: ListenOptions, listeningListener?: () => void): this; + listen(handle: any, backlog?: number, listeningListener?: () => void): this; + listen(handle: any, listeningListener?: () => void): this; + close(callback?: (err?: Error) => void): this; + address(): AddressInfo | string | null; + getConnections(cb: (error: Error | null, count: number) => void): void; + ref(): this; + unref(): this; + maxConnections: number; + connections: number; + listening: boolean; + + /** + * events.EventEmitter + * 1. close + * 2. connection + * 3. error + * 4. listening + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "connection", listener: (socket: Socket) => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "listening", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "connection", socket: Socket): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "listening"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "connection", listener: (socket: Socket) => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "listening", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "connection", listener: (socket: Socket) => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "listening", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "connection", listener: (socket: Socket) => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "listening", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "connection", listener: (socket: Socket) => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "listening", listener: () => void): this; + } + + interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts { + timeout?: number; + } + + interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts { + timeout?: number; + } + + type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts; + + function createServer(connectionListener?: (socket: Socket) => void): Server; + function createServer(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void): Server; + function connect(options: NetConnectOpts, connectionListener?: () => void): Socket; + function connect(port: number, host?: string, connectionListener?: () => void): Socket; + function connect(path: string, connectionListener?: () => void): Socket; + function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket; + function createConnection(port: number, host?: string, connectionListener?: () => void): Socket; + function createConnection(path: string, connectionListener?: () => void): Socket; + function isIP(input: string): number; + function isIPv4(input: string): boolean; + function isIPv6(input: string): boolean; +} diff --git a/node_modules/@types/node/os.d.ts b/node_modules/@types/node/os.d.ts new file mode 100644 index 0000000..37c45a9 --- /dev/null +++ b/node_modules/@types/node/os.d.ts @@ -0,0 +1,263 @@ +declare module "os" { + interface CpuInfo { + model: string; + speed: number; + times: { + user: number; + nice: number; + sys: number; + idle: number; + irq: number; + }; + } + + interface NetworkInterfaceBase { + address: string; + netmask: string; + mac: string; + internal: boolean; + cidr: string | null; + } + + interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { + family: "IPv4"; + } + + interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { + family: "IPv6"; + scopeid: number; + } + + interface UserInfo { + username: T; + uid: number; + gid: number; + shell: T; + homedir: T; + } + + type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; + + function hostname(): string; + function loadavg(): number[]; + function uptime(): number; + function freemem(): number; + function totalmem(): number; + function cpus(): CpuInfo[]; + function type(): string; + function release(): string; + function networkInterfaces(): { [index: string]: NetworkInterfaceInfo[] }; + function homedir(): string; + function userInfo(options: { encoding: 'buffer' }): UserInfo; + function userInfo(options?: { encoding: string }): UserInfo; + const constants: { + UV_UDP_REUSEADDR: number; + // signals: { [key in NodeJS.Signals]: number; }; @todo: change after migration to typescript 2.1 + signals: { + SIGHUP: number; + SIGINT: number; + SIGQUIT: number; + SIGILL: number; + SIGTRAP: number; + SIGABRT: number; + SIGIOT: number; + SIGBUS: number; + SIGFPE: number; + SIGKILL: number; + SIGUSR1: number; + SIGSEGV: number; + SIGUSR2: number; + SIGPIPE: number; + SIGALRM: number; + SIGTERM: number; + SIGCHLD: number; + SIGSTKFLT: number; + SIGCONT: number; + SIGSTOP: number; + SIGTSTP: number; + SIGBREAK: number; + SIGTTIN: number; + SIGTTOU: number; + SIGURG: number; + SIGXCPU: number; + SIGXFSZ: number; + SIGVTALRM: number; + SIGPROF: number; + SIGWINCH: number; + SIGIO: number; + SIGPOLL: number; + SIGLOST: number; + SIGPWR: number; + SIGINFO: number; + SIGSYS: number; + SIGUNUSED: number; + }; + errno: { + E2BIG: number; + EACCES: number; + EADDRINUSE: number; + EADDRNOTAVAIL: number; + EAFNOSUPPORT: number; + EAGAIN: number; + EALREADY: number; + EBADF: number; + EBADMSG: number; + EBUSY: number; + ECANCELED: number; + ECHILD: number; + ECONNABORTED: number; + ECONNREFUSED: number; + ECONNRESET: number; + EDEADLK: number; + EDESTADDRREQ: number; + EDOM: number; + EDQUOT: number; + EEXIST: number; + EFAULT: number; + EFBIG: number; + EHOSTUNREACH: number; + EIDRM: number; + EILSEQ: number; + EINPROGRESS: number; + EINTR: number; + EINVAL: number; + EIO: number; + EISCONN: number; + EISDIR: number; + ELOOP: number; + EMFILE: number; + EMLINK: number; + EMSGSIZE: number; + EMULTIHOP: number; + ENAMETOOLONG: number; + ENETDOWN: number; + ENETRESET: number; + ENETUNREACH: number; + ENFILE: number; + ENOBUFS: number; + ENODATA: number; + ENODEV: number; + ENOENT: number; + ENOEXEC: number; + ENOLCK: number; + ENOLINK: number; + ENOMEM: number; + ENOMSG: number; + ENOPROTOOPT: number; + ENOSPC: number; + ENOSR: number; + ENOSTR: number; + ENOSYS: number; + ENOTCONN: number; + ENOTDIR: number; + ENOTEMPTY: number; + ENOTSOCK: number; + ENOTSUP: number; + ENOTTY: number; + ENXIO: number; + EOPNOTSUPP: number; + EOVERFLOW: number; + EPERM: number; + EPIPE: number; + EPROTO: number; + EPROTONOSUPPORT: number; + EPROTOTYPE: number; + ERANGE: number; + EROFS: number; + ESPIPE: number; + ESRCH: number; + ESTALE: number; + ETIME: number; + ETIMEDOUT: number; + ETXTBSY: number; + EWOULDBLOCK: number; + EXDEV: number; + WSAEINTR: number; + WSAEBADF: number; + WSAEACCES: number; + WSAEFAULT: number; + WSAEINVAL: number; + WSAEMFILE: number; + WSAEWOULDBLOCK: number; + WSAEINPROGRESS: number; + WSAEALREADY: number; + WSAENOTSOCK: number; + WSAEDESTADDRREQ: number; + WSAEMSGSIZE: number; + WSAEPROTOTYPE: number; + WSAENOPROTOOPT: number; + WSAEPROTONOSUPPORT: number; + WSAESOCKTNOSUPPORT: number; + WSAEOPNOTSUPP: number; + WSAEPFNOSUPPORT: number; + WSAEAFNOSUPPORT: number; + WSAEADDRINUSE: number; + WSAEADDRNOTAVAIL: number; + WSAENETDOWN: number; + WSAENETUNREACH: number; + WSAENETRESET: number; + WSAECONNABORTED: number; + WSAECONNRESET: number; + WSAENOBUFS: number; + WSAEISCONN: number; + WSAENOTCONN: number; + WSAESHUTDOWN: number; + WSAETOOMANYREFS: number; + WSAETIMEDOUT: number; + WSAECONNREFUSED: number; + WSAELOOP: number; + WSAENAMETOOLONG: number; + WSAEHOSTDOWN: number; + WSAEHOSTUNREACH: number; + WSAENOTEMPTY: number; + WSAEPROCLIM: number; + WSAEUSERS: number; + WSAEDQUOT: number; + WSAESTALE: number; + WSAEREMOTE: number; + WSASYSNOTREADY: number; + WSAVERNOTSUPPORTED: number; + WSANOTINITIALISED: number; + WSAEDISCON: number; + WSAENOMORE: number; + WSAECANCELLED: number; + WSAEINVALIDPROCTABLE: number; + WSAEINVALIDPROVIDER: number; + WSAEPROVIDERFAILEDINIT: number; + WSASYSCALLFAILURE: number; + WSASERVICE_NOT_FOUND: number; + WSATYPE_NOT_FOUND: number; + WSA_E_NO_MORE: number; + WSA_E_CANCELLED: number; + WSAEREFUSED: number; + }; + priority: { + PRIORITY_LOW: number; + PRIORITY_BELOW_NORMAL: number; + PRIORITY_NORMAL: number; + PRIORITY_ABOVE_NORMAL: number; + PRIORITY_HIGH: number; + PRIORITY_HIGHEST: number; + } + }; + function arch(): string; + function platform(): NodeJS.Platform; + function tmpdir(): string; + const EOL: string; + function endianness(): "BE" | "LE"; + /** + * Gets the priority of a process. + * Defaults to current process. + */ + function getPriority(pid?: number): number; + /** + * Sets the priority of the current process. + * @param priority Must be in range of -20 to 19 + */ + function setPriority(priority: number): void; + /** + * Sets the priority of the process specified process. + * @param priority Must be in range of -20 to 19 + */ + function setPriority(pid: number, priority: number): void; +} diff --git a/node_modules/@types/node/package.json b/node_modules/@types/node/package.json new file mode 100644 index 0000000..1c1fe8e --- /dev/null +++ b/node_modules/@types/node/package.json @@ -0,0 +1,231 @@ +{ + "name": "@types/node", + "version": "12.12.24", + "description": "TypeScript definitions for Node.js", + "license": "MIT", + "contributors": [ + { + "name": "Microsoft TypeScript", + "url": "https://github.com/Microsoft", + "githubUsername": "Microsoft" + }, + { + "name": "DefinitelyTyped", + "url": "https://github.com/DefinitelyTyped", + "githubUsername": "DefinitelyTyped" + }, + { + "name": "Alberto Schiabel", + "url": "https://github.com/jkomyno", + "githubUsername": "jkomyno" + }, + { + "name": "Alexander T.", + "url": "https://github.com/a-tarasyuk", + "githubUsername": "a-tarasyuk" + }, + { + "name": "Alvis HT Tang", + "url": "https://github.com/alvis", + "githubUsername": "alvis" + }, + { + "name": "Andrew Makarov", + "url": "https://github.com/r3nya", + "githubUsername": "r3nya" + }, + { + "name": "Benjamin Toueg", + "url": "https://github.com/btoueg", + "githubUsername": "btoueg" + }, + { + "name": "Bruno Scheufler", + "url": "https://github.com/brunoscheufler", + "githubUsername": "brunoscheufler" + }, + { + "name": "Chigozirim C.", + "url": "https://github.com/smac89", + "githubUsername": "smac89" + }, + { + "name": "Christian Vaagland Tellnes", + "url": "https://github.com/tellnes", + "githubUsername": "tellnes" + }, + { + "name": "David Junger", + "url": "https://github.com/touffy", + "githubUsername": "touffy" + }, + { + "name": "Deividas Bakanas", + "url": "https://github.com/DeividasBakanas", + "githubUsername": "DeividasBakanas" + }, + { + "name": "Eugene Y. Q. Shen", + "url": "https://github.com/eyqs", + "githubUsername": "eyqs" + }, + { + "name": "Flarna", + "url": "https://github.com/Flarna", + "githubUsername": "Flarna" + }, + { + "name": "Hannes Magnusson", + "url": "https://github.com/Hannes-Magnusson-CK", + "githubUsername": "Hannes-Magnusson-CK" + }, + { + "name": "Hoàng Văn Khải", + "url": "https://github.com/KSXGitHub", + "githubUsername": "KSXGitHub" + }, + { + "name": "Huw", + "url": "https://github.com/hoo29", + "githubUsername": "hoo29" + }, + { + "name": "Kelvin Jin", + "url": "https://github.com/kjin", + "githubUsername": "kjin" + }, + { + "name": "Klaus Meinhardt", + "url": "https://github.com/ajafff", + "githubUsername": "ajafff" + }, + { + "name": "Lishude", + "url": "https://github.com/islishude", + "githubUsername": "islishude" + }, + { + "name": "Mariusz Wiktorczyk", + "url": "https://github.com/mwiktorczyk", + "githubUsername": "mwiktorczyk" + }, + { + "name": "Mohsen Azimi", + "url": "https://github.com/mohsen1", + "githubUsername": "mohsen1" + }, + { + "name": "Nicolas Even", + "url": "https://github.com/n-e", + "githubUsername": "n-e" + }, + { + "name": "Nicolas Voigt", + "url": "https://github.com/octo-sniffle", + "githubUsername": "octo-sniffle" + }, + { + "name": "Nikita Galkin", + "url": "https://github.com/galkin", + "githubUsername": "galkin" + }, + { + "name": "Parambir Singh", + "url": "https://github.com/parambirs", + "githubUsername": "parambirs" + }, + { + "name": "Sebastian Silbermann", + "url": "https://github.com/eps1lon", + "githubUsername": "eps1lon" + }, + { + "name": "Simon Schick", + "url": "https://github.com/SimonSchick", + "githubUsername": "SimonSchick" + }, + { + "name": "Thomas den Hollander", + "url": "https://github.com/ThomasdenH", + "githubUsername": "ThomasdenH" + }, + { + "name": "Wilco Bakker", + "url": "https://github.com/WilcoBakker", + "githubUsername": "WilcoBakker" + }, + { + "name": "wwwy3y3", + "url": "https://github.com/wwwy3y3", + "githubUsername": "wwwy3y3" + }, + { + "name": "Zane Hannan AU", + "url": "https://github.com/ZaneHannanAU", + "githubUsername": "ZaneHannanAU" + }, + { + "name": "Samuel Ainsworth", + "url": "https://github.com/samuela", + "githubUsername": "samuela" + }, + { + "name": "Kyle Uehlein", + "url": "https://github.com/kuehlein", + "githubUsername": "kuehlein" + }, + { + "name": "Jordi Oliveras Rovira", + "url": "https://github.com/j-oliveras", + "githubUsername": "j-oliveras" + }, + { + "name": "Thanik Bhongbhibhat", + "url": "https://github.com/bhongy", + "githubUsername": "bhongy" + }, + { + "name": "Marcin Kopacz", + "url": "https://github.com/chyzwar", + "githubUsername": "chyzwar" + }, + { + "name": "Trivikram Kamat", + "url": "https://github.com/trivikr", + "githubUsername": "trivikr" + }, + { + "name": "Minh Son Nguyen", + "url": "https://github.com/nguymin4", + "githubUsername": "nguymin4" + }, + { + "name": "Junxiao Shi", + "url": "https://github.com/yoursunny", + "githubUsername": "yoursunny" + }, + { + "name": "Ilia Baryshnikov", + "url": "https://github.com/qwelias", + "githubUsername": "qwelias" + } + ], + "main": "", + "types": "index.d.ts", + "typesVersions": { + ">=3.2.0-0": { + "*": [ + "ts3.2/*" + ] + } + }, + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/node" + }, + "scripts": {}, + "dependencies": {}, + "typesPublisherContentHash": "99962ad69a2b3cd982c069a0e09e151365925f149fcbfef2ca57e2be92c40b98", + "typeScriptVersion": "2.8" +} \ No newline at end of file diff --git a/node_modules/@types/node/path.d.ts b/node_modules/@types/node/path.d.ts new file mode 100644 index 0000000..2f4a549 --- /dev/null +++ b/node_modules/@types/node/path.d.ts @@ -0,0 +1,159 @@ +declare module "path" { + /** + * A parsed path object generated by path.parse() or consumed by path.format(). + */ + interface ParsedPath { + /** + * The root of the path such as '/' or 'c:\' + */ + root: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base: string; + /** + * The file extension (if any) such as '.html' + */ + ext: string; + /** + * The file name without extension (if any) such as 'index' + */ + name: string; + } + interface FormatInputPathObject { + /** + * The root of the path such as '/' or 'c:\' + */ + root?: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir?: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base?: string; + /** + * The file extension (if any) such as '.html' + */ + ext?: string; + /** + * The file name without extension (if any) such as 'index' + */ + name?: string; + } + + /** + * Normalize a string path, reducing '..' and '.' parts. + * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. + * + * @param p string path to normalize. + */ + function normalize(p: string): string; + /** + * Join all arguments together and normalize the resulting path. + * Arguments must be strings. In v0.8, non-string arguments were silently ignored. In v0.10 and up, an exception is thrown. + * + * @param paths paths to join. + */ + function join(...paths: string[]): string; + /** + * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. + * + * Starting from leftmost {from} parameter, resolves {to} to an absolute path. + * + * If {to} isn't already absolute, {from} arguments are prepended in right to left order, + * until an absolute path is found. If after using all {from} paths still no absolute path is found, + * the current working directory is used as well. The resulting path is normalized, + * and trailing slashes are removed unless the path gets resolved to the root directory. + * + * @param pathSegments string paths to join. Non-string arguments are ignored. + */ + function resolve(...pathSegments: string[]): string; + /** + * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. + * + * @param path path to test. + */ + function isAbsolute(path: string): boolean; + /** + * Solve the relative path from {from} to {to}. + * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. + */ + function relative(from: string, to: string): string; + /** + * Return the directory name of a path. Similar to the Unix dirname command. + * + * @param p the path to evaluate. + */ + function dirname(p: string): string; + /** + * Return the last portion of a path. Similar to the Unix basename command. + * Often used to extract the file name from a fully qualified path. + * + * @param p the path to evaluate. + * @param ext optionally, an extension to remove from the result. + */ + function basename(p: string, ext?: string): string; + /** + * Return the extension of the path, from the last '.' to end of string in the last portion of the path. + * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string + * + * @param p the path to evaluate. + */ + function extname(p: string): string; + /** + * The platform-specific file separator. '\\' or '/'. + */ + const sep: '\\' | '/'; + /** + * The platform-specific file delimiter. ';' or ':'. + */ + const delimiter: ';' | ':'; + /** + * Returns an object from a path string - the opposite of format(). + * + * @param pathString path to evaluate. + */ + function parse(pathString: string): ParsedPath; + /** + * Returns a path string from an object - the opposite of parse(). + * + * @param pathString path to evaluate. + */ + function format(pathObject: FormatInputPathObject): string; + + namespace posix { + function normalize(p: string): string; + function join(...paths: string[]): string; + function resolve(...pathSegments: string[]): string; + function isAbsolute(p: string): boolean; + function relative(from: string, to: string): string; + function dirname(p: string): string; + function basename(p: string, ext?: string): string; + function extname(p: string): string; + const sep: string; + const delimiter: string; + function parse(p: string): ParsedPath; + function format(pP: FormatInputPathObject): string; + } + + namespace win32 { + function normalize(p: string): string; + function join(...paths: string[]): string; + function resolve(...pathSegments: string[]): string; + function isAbsolute(p: string): boolean; + function relative(from: string, to: string): string; + function dirname(p: string): string; + function basename(p: string, ext?: string): string; + function extname(p: string): string; + const sep: string; + const delimiter: string; + function parse(p: string): ParsedPath; + function format(pP: FormatInputPathObject): string; + } +} diff --git a/node_modules/@types/node/perf_hooks.d.ts b/node_modules/@types/node/perf_hooks.d.ts new file mode 100644 index 0000000..bf44d44 --- /dev/null +++ b/node_modules/@types/node/perf_hooks.d.ts @@ -0,0 +1,304 @@ +declare module "perf_hooks" { + import { AsyncResource } from "async_hooks"; + + interface PerformanceEntry { + /** + * The total number of milliseconds elapsed for this entry. + * This value will not be meaningful for all Performance Entry types. + */ + readonly duration: number; + + /** + * The name of the performance entry. + */ + readonly name: string; + + /** + * The high resolution millisecond timestamp marking the starting time of the Performance Entry. + */ + readonly startTime: number; + + /** + * The type of the performance entry. + * Currently it may be one of: 'node', 'mark', 'measure', 'gc', or 'function'. + */ + readonly entryType: string; + + /** + * When performanceEntry.entryType is equal to 'gc', the performance.kind property identifies + * the type of garbage collection operation that occurred. + * The value may be one of perf_hooks.constants. + */ + readonly kind?: number; + } + + interface PerformanceNodeTiming extends PerformanceEntry { + /** + * The high resolution millisecond timestamp at which the Node.js process completed bootstrap. + */ + readonly bootstrapComplete: number; + + /** + * The high resolution millisecond timestamp at which cluster processing ended. + */ + readonly clusterSetupEnd: number; + + /** + * The high resolution millisecond timestamp at which cluster processing started. + */ + readonly clusterSetupStart: number; + + /** + * The high resolution millisecond timestamp at which the Node.js event loop exited. + */ + readonly loopExit: number; + + /** + * The high resolution millisecond timestamp at which the Node.js event loop started. + */ + readonly loopStart: number; + + /** + * The high resolution millisecond timestamp at which main module load ended. + */ + readonly moduleLoadEnd: number; + + /** + * The high resolution millisecond timestamp at which main module load started. + */ + readonly moduleLoadStart: number; + + /** + * The high resolution millisecond timestamp at which the Node.js process was initialized. + */ + readonly nodeStart: number; + + /** + * The high resolution millisecond timestamp at which preload module load ended. + */ + readonly preloadModuleLoadEnd: number; + + /** + * The high resolution millisecond timestamp at which preload module load started. + */ + readonly preloadModuleLoadStart: number; + + /** + * The high resolution millisecond timestamp at which third_party_main processing ended. + */ + readonly thirdPartyMainEnd: number; + + /** + * The high resolution millisecond timestamp at which third_party_main processing started. + */ + readonly thirdPartyMainStart: number; + + /** + * The high resolution millisecond timestamp at which the V8 platform was initialized. + */ + readonly v8Start: number; + } + + interface Performance { + /** + * If name is not provided, removes all PerformanceFunction objects from the Performance Timeline. + * If name is provided, removes entries with name. + * @param name + */ + clearFunctions(name?: string): void; + + /** + * If name is not provided, removes all PerformanceMark objects from the Performance Timeline. + * If name is provided, removes only the named mark. + * @param name + */ + clearMarks(name?: string): void; + + /** + * If name is not provided, removes all PerformanceMeasure objects from the Performance Timeline. + * If name is provided, removes only objects whose performanceEntry.name matches name. + */ + clearMeasures(name?: string): void; + + /** + * Returns a list of all PerformanceEntry objects in chronological order with respect to performanceEntry.startTime. + * @return list of all PerformanceEntry objects + */ + getEntries(): PerformanceEntry[]; + + /** + * Returns a list of all PerformanceEntry objects in chronological order with respect to performanceEntry.startTime + * whose performanceEntry.name is equal to name, and optionally, whose performanceEntry.entryType is equal to type. + * @param name + * @param type + * @return list of all PerformanceEntry objects + */ + getEntriesByName(name: string, type?: string): PerformanceEntry[]; + + /** + * Returns a list of all PerformanceEntry objects in chronological order with respect to performanceEntry.startTime + * whose performanceEntry.entryType is equal to type. + * @param type + * @return list of all PerformanceEntry objects + */ + getEntriesByType(type: string): PerformanceEntry[]; + + /** + * Creates a new PerformanceMark entry in the Performance Timeline. + * A PerformanceMark is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'mark', + * and whose performanceEntry.duration is always 0. + * Performance marks are used to mark specific significant moments in the Performance Timeline. + * @param name + */ + mark(name?: string): void; + + /** + * Creates a new PerformanceMeasure entry in the Performance Timeline. + * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure', + * and whose performanceEntry.duration measures the number of milliseconds elapsed since startMark and endMark. + * + * The startMark argument may identify any existing PerformanceMark in the the Performance Timeline, or may identify + * any of the timestamp properties provided by the PerformanceNodeTiming class. If the named startMark does not exist, + * then startMark is set to timeOrigin by default. + * + * The endMark argument must identify any existing PerformanceMark in the the Performance Timeline or any of the timestamp + * properties provided by the PerformanceNodeTiming class. If the named endMark does not exist, an error will be thrown. + * @param name + * @param startMark + * @param endMark + */ + measure(name: string, startMark: string, endMark: string): void; + + /** + * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones. + */ + readonly nodeTiming: PerformanceNodeTiming; + + /** + * @return the current high resolution millisecond timestamp + */ + now(): number; + + /** + * The timeOrigin specifies the high resolution millisecond timestamp from which all performance metric durations are measured. + */ + readonly timeOrigin: number; + + /** + * Wraps a function within a new function that measures the running time of the wrapped function. + * A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed. + * @param fn + */ + timerify any>(fn: T): T; + } + + interface PerformanceObserverEntryList { + /** + * @return a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime. + */ + getEntries(): PerformanceEntry[]; + + /** + * @return a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime + * whose performanceEntry.name is equal to name, and optionally, whose performanceEntry.entryType is equal to type. + */ + getEntriesByName(name: string, type?: string): PerformanceEntry[]; + + /** + * @return Returns a list of PerformanceEntry objects in chronological order with respect to performanceEntry.startTime + * whose performanceEntry.entryType is equal to type. + */ + getEntriesByType(type: string): PerformanceEntry[]; + } + + type PerformanceObserverCallback = (list: PerformanceObserverEntryList, observer: PerformanceObserver) => void; + + class PerformanceObserver extends AsyncResource { + constructor(callback: PerformanceObserverCallback); + + /** + * Disconnects the PerformanceObserver instance from all notifications. + */ + disconnect(): void; + + /** + * Subscribes the PerformanceObserver instance to notifications of new PerformanceEntry instances identified by options.entryTypes. + * When options.buffered is false, the callback will be invoked once for every PerformanceEntry instance. + * Property buffered defaults to false. + * @param options + */ + observe(options: { entryTypes: string[], buffered?: boolean }): void; + } + + namespace constants { + const NODE_PERFORMANCE_GC_MAJOR: number; + const NODE_PERFORMANCE_GC_MINOR: number; + const NODE_PERFORMANCE_GC_INCREMENTAL: number; + const NODE_PERFORMANCE_GC_WEAKCB: number; + } + + const performance: Performance; + + interface EventLoopMonitorOptions { + /** + * The sampling rate in milliseconds. + * Must be greater than zero. + * @default 10 + */ + resolution?: number; + } + + interface EventLoopDelayMonitor { + /** + * Enables the event loop delay sample timer. Returns `true` if the timer was started, `false` if it was already started. + */ + enable(): boolean; + /** + * Disables the event loop delay sample timer. Returns `true` if the timer was stopped, `false` if it was already stopped. + */ + disable(): boolean; + + /** + * Resets the collected histogram data. + */ + reset(): void; + + /** + * Returns the value at the given percentile. + * @param percentile A percentile value between 1 and 100. + */ + percentile(percentile: number): number; + + /** + * A `Map` object detailing the accumulated percentile distribution. + */ + readonly percentiles: Map; + + /** + * The number of times the event loop delay exceeded the maximum 1 hour eventloop delay threshold. + */ + readonly exceeds: number; + + /** + * The minimum recorded event loop delay. + */ + readonly min: number; + + /** + * The maximum recorded event loop delay. + */ + readonly max: number; + + /** + * The mean of the recorded event loop delays. + */ + readonly mean: number; + + /** + * The standard deviation of the recorded event loop delays. + */ + readonly stddev: number; + } + + function monitorEventLoopDelay(options?: EventLoopMonitorOptions): EventLoopDelayMonitor; +} diff --git a/node_modules/@types/node/process.d.ts b/node_modules/@types/node/process.d.ts new file mode 100644 index 0000000..d007d4e --- /dev/null +++ b/node_modules/@types/node/process.d.ts @@ -0,0 +1,15 @@ +declare module "process" { + import * as tty from "tty"; + + global { + namespace NodeJS { + // this namespace merge is here because these are specifically used + // as the type for process.stdin, process.stdout, and process.stderr. + // they can't live in tty.d.ts because we need to disambiguate the imported name. + interface ReadStream extends tty.ReadStream {} + interface WriteStream extends tty.WriteStream {} + } + } + + export = process; +} diff --git a/node_modules/@types/node/punycode.d.ts b/node_modules/@types/node/punycode.d.ts new file mode 100644 index 0000000..75d2811 --- /dev/null +++ b/node_modules/@types/node/punycode.d.ts @@ -0,0 +1,12 @@ +declare module "punycode" { + function decode(string: string): string; + function encode(string: string): string; + function toUnicode(domain: string): string; + function toASCII(domain: string): string; + const ucs2: ucs2; + interface ucs2 { + decode(string: string): number[]; + encode(codePoints: number[]): string; + } + const version: string; +} diff --git a/node_modules/@types/node/querystring.d.ts b/node_modules/@types/node/querystring.d.ts new file mode 100644 index 0000000..0fd6fee --- /dev/null +++ b/node_modules/@types/node/querystring.d.ts @@ -0,0 +1,29 @@ +declare module "querystring" { + interface StringifyOptions { + encodeURIComponent?: (str: string) => string; + } + + interface ParseOptions { + maxKeys?: number; + decodeURIComponent?: (str: string) => string; + } + + interface ParsedUrlQuery { [key: string]: string | string[]; } + + interface ParsedUrlQueryInput { + [key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined | null; + } + + function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; + function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; + /** + * The querystring.encode() function is an alias for querystring.stringify(). + */ + const encode: typeof stringify; + /** + * The querystring.decode() function is an alias for querystring.parse(). + */ + const decode: typeof parse; + function escape(str: string): string; + function unescape(str: string): string; +} diff --git a/node_modules/@types/node/readline.d.ts b/node_modules/@types/node/readline.d.ts new file mode 100644 index 0000000..8616069 --- /dev/null +++ b/node_modules/@types/node/readline.d.ts @@ -0,0 +1,157 @@ +declare module "readline" { + import * as events from "events"; + import * as stream from "stream"; + + interface Key { + sequence?: string; + name?: string; + ctrl?: boolean; + meta?: boolean; + shift?: boolean; + } + + class Interface extends events.EventEmitter { + readonly terminal: boolean; + + // Need direct access to line/cursor data, for use in external processes + // see: https://github.com/nodejs/node/issues/30347 + /** The current input data */ + readonly line: string; + /** The current cursor position in the input line */ + readonly cursor: number; + + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean); + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(options: ReadLineOptions); + + setPrompt(prompt: string): void; + prompt(preserveCursor?: boolean): void; + question(query: string, callback: (answer: string) => void): void; + pause(): this; + resume(): this; + close(): void; + write(data: string | Buffer, key?: Key): void; + + /** + * events.EventEmitter + * 1. close + * 2. line + * 3. pause + * 4. resume + * 5. SIGCONT + * 6. SIGINT + * 7. SIGTSTP + */ + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "line", listener: (input: string) => void): this; + addListener(event: "pause", listener: () => void): this; + addListener(event: "resume", listener: () => void): this; + addListener(event: "SIGCONT", listener: () => void): this; + addListener(event: "SIGINT", listener: () => void): this; + addListener(event: "SIGTSTP", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "line", input: string): boolean; + emit(event: "pause"): boolean; + emit(event: "resume"): boolean; + emit(event: "SIGCONT"): boolean; + emit(event: "SIGINT"): boolean; + emit(event: "SIGTSTP"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "line", listener: (input: string) => void): this; + on(event: "pause", listener: () => void): this; + on(event: "resume", listener: () => void): this; + on(event: "SIGCONT", listener: () => void): this; + on(event: "SIGINT", listener: () => void): this; + on(event: "SIGTSTP", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "line", listener: (input: string) => void): this; + once(event: "pause", listener: () => void): this; + once(event: "resume", listener: () => void): this; + once(event: "SIGCONT", listener: () => void): this; + once(event: "SIGINT", listener: () => void): this; + once(event: "SIGTSTP", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "line", listener: (input: string) => void): this; + prependListener(event: "pause", listener: () => void): this; + prependListener(event: "resume", listener: () => void): this; + prependListener(event: "SIGCONT", listener: () => void): this; + prependListener(event: "SIGINT", listener: () => void): this; + prependListener(event: "SIGTSTP", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "line", listener: (input: string) => void): this; + prependOnceListener(event: "pause", listener: () => void): this; + prependOnceListener(event: "resume", listener: () => void): this; + prependOnceListener(event: "SIGCONT", listener: () => void): this; + prependOnceListener(event: "SIGINT", listener: () => void): this; + prependOnceListener(event: "SIGTSTP", listener: () => void): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + type ReadLine = Interface; // type forwarded for backwards compatiblity + + type Completer = (line: string) => CompleterResult; + type AsyncCompleter = (line: string, callback: (err?: null | Error, result?: CompleterResult) => void) => any; + + type CompleterResult = [string[], string]; + + interface ReadLineOptions { + input: NodeJS.ReadableStream; + output?: NodeJS.WritableStream; + completer?: Completer | AsyncCompleter; + terminal?: boolean; + historySize?: number; + prompt?: string; + crlfDelay?: number; + removeHistoryDuplicates?: boolean; + } + + function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface; + function createInterface(options: ReadLineOptions): Interface; + function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void; + + type Direction = -1 | 0 | 1; + + /** + * Clears the current line of this WriteStream in a direction identified by `dir`. + */ + function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean; + /** + * Clears this `WriteStream` from the current cursor down. + */ + function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean; + /** + * Moves this WriteStream's cursor to the specified position. + */ + function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean; + /** + * Moves this WriteStream's cursor relative to its current position. + */ + function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean; +} diff --git a/node_modules/@types/node/repl.d.ts b/node_modules/@types/node/repl.d.ts new file mode 100644 index 0000000..9496fcd --- /dev/null +++ b/node_modules/@types/node/repl.d.ts @@ -0,0 +1,382 @@ +declare module "repl" { + import { Interface, Completer, AsyncCompleter } from "readline"; + import { Context } from "vm"; + import { InspectOptions } from "util"; + + interface ReplOptions { + /** + * The input prompt to display. + * Default: `"> "` + */ + prompt?: string; + /** + * The `Readable` stream from which REPL input will be read. + * Default: `process.stdin` + */ + input?: NodeJS.ReadableStream; + /** + * The `Writable` stream to which REPL output will be written. + * Default: `process.stdout` + */ + output?: NodeJS.WritableStream; + /** + * If `true`, specifies that the output should be treated as a TTY terminal, and have + * ANSI/VT100 escape codes written to it. + * Default: checking the value of the `isTTY` property on the output stream upon + * instantiation. + */ + terminal?: boolean; + /** + * The function to be used when evaluating each given line of input. + * Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can + * error with `repl.Recoverable` to indicate the input was incomplete and prompt for + * additional lines. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_default_evaluation + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_custom_evaluation_functions + */ + eval?: REPLEval; + /** + * If `true`, specifies that the default `writer` function should include ANSI color + * styling to REPL output. If a custom `writer` function is provided then this has no + * effect. + * Default: the REPL instance's `terminal` value. + */ + useColors?: boolean; + /** + * If `true`, specifies that the default evaluation function will use the JavaScript + * `global` as the context as opposed to creating a new separate context for the REPL + * instance. The node CLI REPL sets this value to `true`. + * Default: `false`. + */ + useGlobal?: boolean; + /** + * If `true`, specifies that the default writer will not output the return value of a + * command if it evaluates to `undefined`. + * Default: `false`. + */ + ignoreUndefined?: boolean; + /** + * The function to invoke to format the output of each command before writing to `output`. + * Default: a wrapper for `util.inspect`. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_customizing_repl_output + */ + writer?: REPLWriter; + /** + * An optional function used for custom Tab auto completion. + * + * @see https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function + */ + completer?: Completer | AsyncCompleter; + /** + * A flag that specifies whether the default evaluator executes all JavaScript commands in + * strict mode or default (sloppy) mode. + * Accepted values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + replMode?: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; + /** + * Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is + * pressed. This cannot be used together with a custom `eval` function. + * Default: `false`. + */ + breakEvalOnSigint?: boolean; + } + + type REPLEval = (this: REPLServer, evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void; + type REPLWriter = (this: REPLServer, obj: any) => string; + + /** + * This is the default "writer" value, if none is passed in the REPL options, + * and it can be overridden by custom print functions. + */ + const writer: REPLWriter & { options: InspectOptions }; + + type REPLCommandAction = (this: REPLServer, text: string) => void; + + interface REPLCommand { + /** + * Help text to be displayed when `.help` is entered. + */ + help?: string; + /** + * The function to execute, optionally accepting a single string argument. + */ + action: REPLCommandAction; + } + + /** + * Provides a customizable Read-Eval-Print-Loop (REPL). + * + * Instances of `repl.REPLServer` will accept individual lines of user input, evaluate those + * according to a user-defined evaluation function, then output the result. Input and output + * may be from `stdin` and `stdout`, respectively, or may be connected to any Node.js `stream`. + * + * Instances of `repl.REPLServer` support automatic completion of inputs, simplistic Emacs-style + * line editing, multi-line inputs, ANSI-styled output, saving and restoring current REPL session + * state, error recovery, and customizable evaluation functions. + * + * Instances of `repl.REPLServer` are created using the `repl.start()` method and _should not_ + * be created directly using the JavaScript `new` keyword. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_repl + */ + class REPLServer extends Interface { + /** + * The `vm.Context` provided to the `eval` function to be used for JavaScript + * evaluation. + */ + readonly context: Context; + /** + * The `Readable` stream from which REPL input will be read. + */ + readonly inputStream: NodeJS.ReadableStream; + /** + * The `Writable` stream to which REPL output will be written. + */ + readonly outputStream: NodeJS.WritableStream; + /** + * The commands registered via `replServer.defineCommand()`. + */ + readonly commands: { readonly [name: string]: REPLCommand | undefined }; + /** + * A value indicating whether the REPL is currently in "editor mode". + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_commands_and_special_keys + */ + readonly editorMode: boolean; + /** + * A value indicating whether the `_` variable has been assigned. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreAssigned: boolean; + /** + * The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL). + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly last: any; + /** + * A value indicating whether the `_error` variable has been assigned. + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreErrAssigned: boolean; + /** + * The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL). + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly lastError: any; + /** + * Specified in the REPL options, this is the function to be used when evaluating each + * given line of input. If not specified in the REPL options, this is an async wrapper + * for the JavaScript `eval()` function. + */ + readonly eval: REPLEval; + /** + * Specified in the REPL options, this is a value indicating whether the default + * `writer` function should include ANSI color styling to REPL output. + */ + readonly useColors: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `eval` + * function will use the JavaScript `global` as the context as opposed to creating a new + * separate context for the REPL instance. + */ + readonly useGlobal: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `writer` + * function should output the result of a command if it evaluates to `undefined`. + */ + readonly ignoreUndefined: boolean; + /** + * Specified in the REPL options, this is the function to invoke to format the output of + * each command before writing to `outputStream`. If not specified in the REPL options, + * this will be a wrapper for `util.inspect`. + */ + readonly writer: REPLWriter; + /** + * Specified in the REPL options, this is the function to use for custom Tab auto-completion. + */ + readonly completer: Completer | AsyncCompleter; + /** + * Specified in the REPL options, this is a flag that specifies whether the default `eval` + * function should execute all JavaScript commands in strict mode or default (sloppy) mode. + * Possible values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + readonly replMode: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; + + /** + * NOTE: According to the documentation: + * + * > Instances of `repl.REPLServer` are created using the `repl.start()` method and + * > _should not_ be created directly using the JavaScript `new` keyword. + * + * `REPLServer` cannot be subclassed due to implementation specifics in NodeJS. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_class_replserver + */ + private constructor(); + + /** + * Used to add new `.`-prefixed commands to the REPL instance. Such commands are invoked + * by typing a `.` followed by the `keyword`. + * + * @param keyword The command keyword (_without_ a leading `.` character). + * @param cmd The function to invoke when the command is processed. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_replserver_definecommand_keyword_cmd + */ + defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void; + /** + * Readies the REPL instance for input from the user, printing the configured `prompt` to a + * new line in the `output` and resuming the `input` to accept new input. + * + * When multi-line input is being entered, an ellipsis is printed rather than the 'prompt'. + * + * This method is primarily intended to be called from within the action function for + * commands registered using the `replServer.defineCommand()` method. + * + * @param preserveCursor When `true`, the cursor placement will not be reset to `0`. + */ + displayPrompt(preserveCursor?: boolean): void; + /** + * Clears any command that has been buffered but not yet executed. + * + * This method is primarily intended to be called from within the action function for + * commands registered using the `replServer.defineCommand()` method. + * + * @since v9.0.0 + */ + clearBufferedCommand(): void; + + /** + * Initializes a history log file for the REPL instance. When executing the + * Node.js binary and using the command line REPL, a history file is initialized + * by default. However, this is not the case when creating a REPL + * programmatically. Use this method to initialize a history log file when working + * with REPL instances programmatically. + * @param path The path to the history file + */ + setupHistory(path: string, cb: (err: Error | null, repl: this) => void): void; + + /** + * events.EventEmitter + * 1. close - inherited from `readline.Interface` + * 2. line - inherited from `readline.Interface` + * 3. pause - inherited from `readline.Interface` + * 4. resume - inherited from `readline.Interface` + * 5. SIGCONT - inherited from `readline.Interface` + * 6. SIGINT - inherited from `readline.Interface` + * 7. SIGTSTP - inherited from `readline.Interface` + * 8. exit + * 9. reset + */ + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "close", listener: () => void): this; + addListener(event: "line", listener: (input: string) => void): this; + addListener(event: "pause", listener: () => void): this; + addListener(event: "resume", listener: () => void): this; + addListener(event: "SIGCONT", listener: () => void): this; + addListener(event: "SIGINT", listener: () => void): this; + addListener(event: "SIGTSTP", listener: () => void): this; + addListener(event: "exit", listener: () => void): this; + addListener(event: "reset", listener: (context: Context) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "close"): boolean; + emit(event: "line", input: string): boolean; + emit(event: "pause"): boolean; + emit(event: "resume"): boolean; + emit(event: "SIGCONT"): boolean; + emit(event: "SIGINT"): boolean; + emit(event: "SIGTSTP"): boolean; + emit(event: "exit"): boolean; + emit(event: "reset", context: Context): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "close", listener: () => void): this; + on(event: "line", listener: (input: string) => void): this; + on(event: "pause", listener: () => void): this; + on(event: "resume", listener: () => void): this; + on(event: "SIGCONT", listener: () => void): this; + on(event: "SIGINT", listener: () => void): this; + on(event: "SIGTSTP", listener: () => void): this; + on(event: "exit", listener: () => void): this; + on(event: "reset", listener: (context: Context) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "close", listener: () => void): this; + once(event: "line", listener: (input: string) => void): this; + once(event: "pause", listener: () => void): this; + once(event: "resume", listener: () => void): this; + once(event: "SIGCONT", listener: () => void): this; + once(event: "SIGINT", listener: () => void): this; + once(event: "SIGTSTP", listener: () => void): this; + once(event: "exit", listener: () => void): this; + once(event: "reset", listener: (context: Context) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "close", listener: () => void): this; + prependListener(event: "line", listener: (input: string) => void): this; + prependListener(event: "pause", listener: () => void): this; + prependListener(event: "resume", listener: () => void): this; + prependListener(event: "SIGCONT", listener: () => void): this; + prependListener(event: "SIGINT", listener: () => void): this; + prependListener(event: "SIGTSTP", listener: () => void): this; + prependListener(event: "exit", listener: () => void): this; + prependListener(event: "reset", listener: (context: Context) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "line", listener: (input: string) => void): this; + prependOnceListener(event: "pause", listener: () => void): this; + prependOnceListener(event: "resume", listener: () => void): this; + prependOnceListener(event: "SIGCONT", listener: () => void): this; + prependOnceListener(event: "SIGINT", listener: () => void): this; + prependOnceListener(event: "SIGTSTP", listener: () => void): this; + prependOnceListener(event: "exit", listener: () => void): this; + prependOnceListener(event: "reset", listener: (context: Context) => void): this; + } + + /** + * A flag passed in the REPL options. Evaluates expressions in sloppy mode. + */ + const REPL_MODE_SLOPPY: symbol; // TODO: unique symbol + + /** + * A flag passed in the REPL options. Evaluates expressions in strict mode. + * This is equivalent to prefacing every repl statement with `'use strict'`. + */ + const REPL_MODE_STRICT: symbol; // TODO: unique symbol + + /** + * Creates and starts a `repl.REPLServer` instance. + * + * @param options The options for the `REPLServer`. If `options` is a string, then it specifies + * the input prompt. + */ + function start(options?: string | ReplOptions): REPLServer; + + /** + * Indicates a recoverable error that a `REPLServer` can use to support multi-line input. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_recoverable_errors + */ + class Recoverable extends SyntaxError { + err: Error; + + constructor(err: Error); + } +} diff --git a/node_modules/@types/node/stream.d.ts b/node_modules/@types/node/stream.d.ts new file mode 100644 index 0000000..a271af8 --- /dev/null +++ b/node_modules/@types/node/stream.d.ts @@ -0,0 +1,321 @@ +declare module "stream" { + import * as events from "events"; + + class internal extends events.EventEmitter { + pipe(destination: T, options?: { end?: boolean; }): T; + } + + namespace internal { + class Stream extends internal { } + + interface ReadableOptions { + highWaterMark?: number; + encoding?: string; + objectMode?: boolean; + read?(this: Readable, size: number): void; + destroy?(this: Readable, error: Error | null, callback: (error: Error | null) => void): void; + autoDestroy?: boolean; + } + + class Readable extends Stream implements NodeJS.ReadableStream { + /** + * A utility method for creating Readable Streams out of iterators. + */ + static from(iterable: Iterable | AsyncIterable, options?: ReadableOptions): Readable; + + readable: boolean; + readonly readableHighWaterMark: number; + readonly readableLength: number; + readonly readableObjectMode: boolean; + destroyed: boolean; + constructor(opts?: ReadableOptions); + _read(size: number): void; + read(size?: number): any; + setEncoding(encoding: string): this; + pause(): this; + resume(): this; + isPaused(): boolean; + unpipe(destination?: NodeJS.WritableStream): this; + unshift(chunk: any, encoding?: BufferEncoding): void; + wrap(oldStream: NodeJS.ReadableStream): this; + push(chunk: any, encoding?: string): boolean; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + destroy(error?: Error): void; + + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. data + * 3. end + * 4. readable + * 5. error + */ + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: any) => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "readable", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "data", chunk: any): boolean; + emit(event: "end"): boolean; + emit(event: "readable"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: any) => void): this; + on(event: "end", listener: () => void): this; + on(event: "readable", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: any) => void): this; + once(event: "end", listener: () => void): this; + once(event: "readable", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: any) => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "readable", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: any) => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "readable", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "data", listener: (chunk: any) => void): this; + removeListener(event: "end", listener: () => void): this; + removeListener(event: "readable", listener: () => void): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + interface WritableOptions { + highWaterMark?: number; + decodeStrings?: boolean; + defaultEncoding?: string; + objectMode?: boolean; + emitClose?: boolean; + write?(this: Writable, chunk: any, encoding: string, callback: (error?: Error | null) => void): void; + writev?(this: Writable, chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; + destroy?(this: Writable, error: Error | null, callback: (error: Error | null) => void): void; + final?(this: Writable, callback: (error?: Error | null) => void): void; + autoDestroy?: boolean; + } + + class Writable extends Stream implements NodeJS.WritableStream { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + destroyed: boolean; + constructor(opts?: WritableOptions); + _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; + _writev?(chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, encoding: string, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: string): this; + end(cb?: () => void): void; + end(chunk: any, cb?: () => void): void; + end(chunk: any, encoding: string, cb?: () => void): void; + cork(): void; + uncork(): void; + destroy(error?: Error): void; + + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. drain + * 3. error + * 4. finish + * 5. pipe + * 6. unpipe + */ + addListener(event: "close", listener: () => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "pipe", listener: (src: Readable) => void): this; + addListener(event: "unpipe", listener: (src: Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "drain"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "finish"): boolean; + emit(event: "pipe", src: Readable): boolean; + emit(event: "unpipe", src: Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "drain", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "pipe", listener: (src: Readable) => void): this; + on(event: "unpipe", listener: (src: Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "drain", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "pipe", listener: (src: Readable) => void): this; + once(event: "unpipe", listener: (src: Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "pipe", listener: (src: Readable) => void): this; + prependListener(event: "unpipe", listener: (src: Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "pipe", listener: (src: Readable) => void): this; + prependOnceListener(event: "unpipe", listener: (src: Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "drain", listener: () => void): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "finish", listener: () => void): this; + removeListener(event: "pipe", listener: (src: Readable) => void): this; + removeListener(event: "unpipe", listener: (src: Readable) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + + interface DuplexOptions extends ReadableOptions, WritableOptions { + allowHalfOpen?: boolean; + readableObjectMode?: boolean; + writableObjectMode?: boolean; + readableHighWaterMark?: number; + writableHighWaterMark?: number; + read?(this: Duplex, size: number): void; + write?(this: Duplex, chunk: any, encoding: string, callback: (error?: Error | null) => void): void; + writev?(this: Duplex, chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; + final?(this: Duplex, callback: (error?: Error | null) => void): void; + destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void; + } + + // Note: Duplex extends both Readable and Writable. + class Duplex extends Readable implements Writable { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + constructor(opts?: DuplexOptions); + _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void; + _writev?(chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, encoding?: string, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: string): this; + end(cb?: () => void): void; + end(chunk: any, cb?: () => void): void; + end(chunk: any, encoding?: string, cb?: () => void): void; + cork(): void; + uncork(): void; + } + + type TransformCallback = (error?: Error | null, data?: any) => void; + + interface TransformOptions extends DuplexOptions { + read?(this: Transform, size: number): void; + write?(this: Transform, chunk: any, encoding: string, callback: (error?: Error | null) => void): void; + writev?(this: Transform, chunks: Array<{ chunk: any, encoding: string }>, callback: (error?: Error | null) => void): void; + final?(this: Transform, callback: (error?: Error | null) => void): void; + destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void; + transform?(this: Transform, chunk: any, encoding: string, callback: TransformCallback): void; + flush?(this: Transform, callback: TransformCallback): void; + } + + class Transform extends Duplex { + constructor(opts?: TransformOptions); + _transform(chunk: any, encoding: string, callback: TransformCallback): void; + _flush(callback: TransformCallback): void; + } + + class PassThrough extends Transform { } + + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; + namespace finished { + function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream): Promise; + } + + function pipeline(stream1: NodeJS.ReadableStream, stream2: T, callback?: (err: NodeJS.ErrnoException | null) => void): T; + function pipeline(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: T, callback?: (err: NodeJS.ErrnoException | null) => void): T; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream, + stream3: NodeJS.ReadWriteStream, + stream4: T, + callback?: (err: NodeJS.ErrnoException | null) => void, + ): T; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream, + stream3: NodeJS.ReadWriteStream, + stream4: NodeJS.ReadWriteStream, + stream5: T, + callback?: (err: NodeJS.ErrnoException | null) => void, + ): T; + function pipeline(streams: Array, callback?: (err: NodeJS.ErrnoException | null) => void): NodeJS.WritableStream; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array void)>, + ): NodeJS.WritableStream; + namespace pipeline { + function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.WritableStream): Promise; + function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.WritableStream): Promise; + function __promisify__(stream1: NodeJS.ReadableStream, stream2: NodeJS.ReadWriteStream, stream3: NodeJS.ReadWriteStream, stream4: NodeJS.WritableStream): Promise; + function __promisify__( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream, + stream3: NodeJS.ReadWriteStream, + stream4: NodeJS.ReadWriteStream, + stream5: NodeJS.WritableStream, + ): Promise; + function __promisify__(streams: Array): Promise; + function __promisify__( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array, + ): Promise; + } + + interface Pipe { + close(): void; + hasRef(): boolean; + ref(): void; + unref(): void; + } + } + + export = internal; +} diff --git a/node_modules/@types/node/string_decoder.d.ts b/node_modules/@types/node/string_decoder.d.ts new file mode 100644 index 0000000..fe0e0b4 --- /dev/null +++ b/node_modules/@types/node/string_decoder.d.ts @@ -0,0 +1,7 @@ +declare module "string_decoder" { + class StringDecoder { + constructor(encoding?: string); + write(buffer: Buffer): string; + end(buffer?: Buffer): string; + } +} diff --git a/node_modules/@types/node/timers.d.ts b/node_modules/@types/node/timers.d.ts new file mode 100644 index 0000000..e64a673 --- /dev/null +++ b/node_modules/@types/node/timers.d.ts @@ -0,0 +1,16 @@ +declare module "timers" { + function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; + namespace setTimeout { + function __promisify__(ms: number): Promise; + function __promisify__(ms: number, value: T): Promise; + } + function clearTimeout(timeoutId: NodeJS.Timeout): void; + function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timeout; + function clearInterval(intervalId: NodeJS.Timeout): void; + function setImmediate(callback: (...args: any[]) => void, ...args: any[]): NodeJS.Immediate; + namespace setImmediate { + function __promisify__(): Promise; + function __promisify__(value: T): Promise; + } + function clearImmediate(immediateId: NodeJS.Immediate): void; +} diff --git a/node_modules/@types/node/tls.d.ts b/node_modules/@types/node/tls.d.ts new file mode 100644 index 0000000..13c3fbe --- /dev/null +++ b/node_modules/@types/node/tls.d.ts @@ -0,0 +1,702 @@ +declare module "tls" { + import * as crypto from "crypto"; + import * as dns from "dns"; + import * as net from "net"; + import * as stream from "stream"; + + const CLIENT_RENEG_LIMIT: number; + const CLIENT_RENEG_WINDOW: number; + + interface Certificate { + /** + * Country code. + */ + C: string; + /** + * Street. + */ + ST: string; + /** + * Locality. + */ + L: string; + /** + * Organization. + */ + O: string; + /** + * Organizational unit. + */ + OU: string; + /** + * Common name. + */ + CN: string; + } + + interface PeerCertificate { + subject: Certificate; + issuer: Certificate; + subjectaltname: string; + infoAccess: { [index: string]: string[] | undefined }; + modulus: string; + exponent: string; + valid_from: string; + valid_to: string; + fingerprint: string; + ext_key_usage: string[]; + serialNumber: string; + raw: Buffer; + } + + interface DetailedPeerCertificate extends PeerCertificate { + issuerCertificate: DetailedPeerCertificate; + } + + interface CipherNameAndProtocol { + /** + * The cipher name. + */ + name: string; + /** + * SSL/TLS protocol version. + */ + version: string; + } + + interface EphemeralKeyInfo { + /** + * The supported types are 'DH' and 'ECDH'. + */ + type: string; + /** + * The name property is available only when type is 'ECDH'. + */ + name?: string; + /** + * The size of parameter of an ephemeral key exchange. + */ + size: number; + } + + interface KeyObject { + /** + * Private keys in PEM format. + */ + pem: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string; + } + + interface PxfObject { + /** + * PFX or PKCS12 encoded private key and certificate chain. + */ + buf: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string; + } + + interface TLSSocketOptions extends SecureContextOptions, CommonConnectionOptions { + /** + * If true the TLS socket will be instantiated in server-mode. + * Defaults to false. + */ + isServer?: boolean; + /** + * An optional net.Server instance. + */ + server?: net.Server; + + /** + * An optional Buffer instance containing a TLS session. + */ + session?: Buffer; + /** + * If true, specifies that the OCSP status request extension will be + * added to the client hello and an 'OCSPResponse' event will be + * emitted on the socket before establishing a secure communication + */ + requestOCSP?: boolean; + } + + class TLSSocket extends net.Socket { + /** + * Construct a new tls.TLSSocket object from an existing TCP socket. + */ + constructor(socket: net.Socket, options?: TLSSocketOptions); + + /** + * A boolean that is true if the peer certificate was signed by one of the specified CAs, otherwise false. + */ + authorized: boolean; + /** + * The reason why the peer's certificate has not been verified. + * This property becomes available only when tlsSocket.authorized === false. + */ + authorizationError: Error; + /** + * Static boolean value, always true. + * May be used to distinguish TLS sockets from regular ones. + */ + encrypted: boolean; + + /** + * String containing the selected ALPN protocol. + * When ALPN has no selected protocol, tlsSocket.alpnProtocol equals false. + */ + alpnProtocol?: string; + + /** + * Returns an object representing the local certificate. The returned + * object has some properties corresponding to the fields of the + * certificate. + * + * See tls.TLSSocket.getPeerCertificate() for an example of the + * certificate structure. + * + * If there is no local certificate, an empty object will be returned. + * If the socket has been destroyed, null will be returned. + */ + getCertificate(): PeerCertificate | object | null; + /** + * Returns an object representing the cipher name and the SSL/TLS protocol version of the current connection. + * @returns Returns an object representing the cipher name + * and the SSL/TLS protocol version of the current connection. + */ + getCipher(): CipherNameAndProtocol; + /** + * Returns an object representing the type, name, and size of parameter + * of an ephemeral key exchange in Perfect Forward Secrecy on a client + * connection. It returns an empty object when the key exchange is not + * ephemeral. As this is only supported on a client socket; null is + * returned if called on a server socket. The supported types are 'DH' + * and 'ECDH'. The name property is available only when type is 'ECDH'. + * + * For example: { type: 'ECDH', name: 'prime256v1', size: 256 }. + */ + getEphemeralKeyInfo(): EphemeralKeyInfo | object | null; + /** + * Returns the latest Finished message that has + * been sent to the socket as part of a SSL/TLS handshake, or undefined + * if no Finished message has been sent yet. + * + * As the Finished messages are message digests of the complete + * handshake (with a total of 192 bits for TLS 1.0 and more for SSL + * 3.0), they can be used for external authentication procedures when + * the authentication provided by SSL/TLS is not desired or is not + * enough. + * + * Corresponds to the SSL_get_finished routine in OpenSSL and may be + * used to implement the tls-unique channel binding from RFC 5929. + */ + getFinished(): Buffer | undefined; + /** + * Returns an object representing the peer's certificate. + * The returned object has some properties corresponding to the field of the certificate. + * If detailed argument is true the full chain with issuer property will be returned, + * if false only the top certificate without issuer property. + * If the peer does not provide a certificate, it returns null or an empty object. + * @param detailed - If true; the full chain with issuer property will be returned. + * @returns An object representing the peer's certificate. + */ + getPeerCertificate(detailed: true): DetailedPeerCertificate; + getPeerCertificate(detailed?: false): PeerCertificate; + getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; + /** + * Returns the latest Finished message that is expected or has actually + * been received from the socket as part of a SSL/TLS handshake, or + * undefined if there is no Finished message so far. + * + * As the Finished messages are message digests of the complete + * handshake (with a total of 192 bits for TLS 1.0 and more for SSL + * 3.0), they can be used for external authentication procedures when + * the authentication provided by SSL/TLS is not desired or is not + * enough. + * + * Corresponds to the SSL_get_peer_finished routine in OpenSSL and may + * be used to implement the tls-unique channel binding from RFC 5929. + */ + getPeerFinished(): Buffer | undefined; + /** + * Returns a string containing the negotiated SSL/TLS protocol version of the current connection. + * The value `'unknown'` will be returned for connected sockets that have not completed the handshaking process. + * The value `null` will be returned for server sockets or disconnected client sockets. + * See https://www.openssl.org/docs/man1.0.2/ssl/SSL_get_version.html for more information. + * @returns negotiated SSL/TLS protocol version of the current connection + */ + getProtocol(): string | null; + /** + * Could be used to speed up handshake establishment when reconnecting to the server. + * @returns ASN.1 encoded TLS session or undefined if none was negotiated. + */ + getSession(): Buffer | undefined; + /** + * Returns a list of signature algorithms shared between the server and + * the client in the order of decreasing preference. + */ + getSharedSigalgs(): string[]; + /** + * NOTE: Works only with client TLS sockets. + * Useful only for debugging, for session reuse provide session option to tls.connect(). + * @returns TLS session ticket or undefined if none was negotiated. + */ + getTLSTicket(): Buffer | undefined; + /** + * Returns true if the session was reused, false otherwise. + */ + isSessionReused(): boolean; + /** + * Initiate TLS renegotiation process. + * + * NOTE: Can be used to request peer's certificate after the secure connection has been established. + * ANOTHER NOTE: When running as the server, socket will be destroyed with an error after handshakeTimeout timeout. + * @param options - The options may contain the following fields: rejectUnauthorized, + * requestCert (See tls.createServer() for details). + * @param callback - callback(err) will be executed with null as err, once the renegotiation + * is successfully completed. + * @return `undefined` when socket is destroy, `false` if negotiaion can't be initiated. + */ + renegotiate(options: { rejectUnauthorized?: boolean, requestCert?: boolean }, callback: (err: Error | null) => void): undefined | boolean; + /** + * Set maximum TLS fragment size (default and maximum value is: 16384, minimum is: 512). + * Smaller fragment size decreases buffering latency on the client: large fragments are buffered by + * the TLS layer until the entire fragment is received and its integrity is verified; + * large fragments can span multiple roundtrips, and their processing can be delayed due to packet + * loss or reordering. However, smaller fragments add extra TLS framing bytes and CPU overhead, + * which may decrease overall server throughput. + * @param size - TLS fragment size (default and maximum value is: 16384, minimum is: 512). + * @returns Returns true on success, false otherwise. + */ + setMaxSendFragment(size: number): boolean; + + /** + * Disables TLS renegotiation for this TLSSocket instance. Once called, + * attempts to renegotiate will trigger an 'error' event on the + * TLSSocket. + */ + disableRenegotiation(): void; + + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * + * Note: The format of the output is identical to the output of `openssl s_client + * -trace` or `openssl s_server -trace`. While it is produced by OpenSSL's + * `SSL_trace()` function, the format is undocumented, can change without notice, + * and should not be relied on. + */ + enableTrace(): void; + + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; + addListener(event: "secureConnect", listener: () => void): this; + addListener(event: "session", listener: (session: Buffer) => void): this; + addListener(event: "keylog", listener: (line: Buffer) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "OCSPResponse", response: Buffer): boolean; + emit(event: "secureConnect"): boolean; + emit(event: "session", session: Buffer): boolean; + emit(event: "keylog", line: Buffer): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "OCSPResponse", listener: (response: Buffer) => void): this; + on(event: "secureConnect", listener: () => void): this; + on(event: "session", listener: (session: Buffer) => void): this; + on(event: "keylog", listener: (line: Buffer) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "OCSPResponse", listener: (response: Buffer) => void): this; + once(event: "secureConnect", listener: () => void): this; + once(event: "session", listener: (session: Buffer) => void): this; + once(event: "keylog", listener: (line: Buffer) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; + prependListener(event: "secureConnect", listener: () => void): this; + prependListener(event: "session", listener: (session: Buffer) => void): this; + prependListener(event: "keylog", listener: (line: Buffer) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "OCSPResponse", listener: (response: Buffer) => void): this; + prependOnceListener(event: "secureConnect", listener: () => void): this; + prependOnceListener(event: "session", listener: (session: Buffer) => void): this; + prependOnceListener(event: "keylog", listener: (line: Buffer) => void): this; + } + + interface CommonConnectionOptions { + /** + * An optional TLS context object from tls.createSecureContext() + */ + secureContext?: SecureContext; + + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * @default false + */ + enableTrace?: boolean; + /** + * If true the server will request a certificate from clients that + * connect and attempt to verify that certificate. Defaults to + * false. + */ + requestCert?: boolean; + /** + * An array of strings or a Buffer naming possible ALPN protocols. + * (Protocols should be ordered by their priority.) + */ + ALPNProtocols?: string[] | Uint8Array[] | Uint8Array; + /** + * SNICallback(servername, cb) A function that will be + * called if the client supports SNI TLS extension. Two arguments + * will be passed when called: servername and cb. SNICallback should + * invoke cb(null, ctx), where ctx is a SecureContext instance. + * (tls.createSecureContext(...) can be used to get a proper + * SecureContext.) If SNICallback wasn't provided the default callback + * with high-level API will be used (see below). + */ + SNICallback?: (servername: string, cb: (err: Error | null, ctx: SecureContext) => void) => void; + /** + * If true the server will reject any connection which is not + * authorized with the list of supplied CAs. This option only has an + * effect if requestCert is true. + * @default true + */ + rejectUnauthorized?: boolean; + } + + interface TlsOptions extends SecureContextOptions, CommonConnectionOptions { + /** + * Abort the connection if the SSL/TLS handshake does not finish in the + * specified number of milliseconds. A 'tlsClientError' is emitted on + * the tls.Server object whenever a handshake times out. Default: + * 120000 (120 seconds). + */ + handshakeTimeout?: number; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number; + /** + * 48-bytes of cryptographically strong pseudo-random data. + */ + ticketKeys?: Buffer; + } + + interface ConnectionOptions extends SecureContextOptions, CommonConnectionOptions { + host?: string; + port?: number; + path?: string; // Creates unix socket connection to path. If this option is specified, `host` and `port` are ignored. + socket?: net.Socket; // Establish secure connection on a given socket rather than creating a new socket + checkServerIdentity?: typeof checkServerIdentity; + servername?: string; // SNI TLS Extension + session?: Buffer; + minDHSize?: number; + lookup?: net.LookupFunction; + timeout?: number; + } + + class Server extends net.Server { + /** + * The server.addContext() method adds a secure context that will be + * used if the client request's SNI name matches the supplied hostname + * (or wildcard). + */ + addContext(hostName: string, credentials: SecureContextOptions): void; + /** + * Returns the session ticket keys. + */ + getTicketKeys(): Buffer; + /** + * + * The server.setSecureContext() method replaces the + * secure context of an existing server. Existing connections to the + * server are not interrupted. + */ + setSecureContext(details: SecureContextOptions): void; + /** + * The server.setSecureContext() method replaces the secure context of + * an existing server. Existing connections to the server are not + * interrupted. + */ + setTicketKeys(keys: Buffer): void; + + /** + * events.EventEmitter + * 1. tlsClientError + * 2. newSession + * 3. OCSPRequest + * 4. resumeSession + * 5. secureConnection + * 6. keylog + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + addListener(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + addListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + addListener(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + addListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + addListener(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "tlsClientError", err: Error, tlsSocket: TLSSocket): boolean; + emit(event: "newSession", sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void): boolean; + emit(event: "OCSPRequest", certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void): boolean; + emit(event: "resumeSession", sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void): boolean; + emit(event: "secureConnection", tlsSocket: TLSSocket): boolean; + emit(event: "keylog", line: Buffer, tlsSocket: TLSSocket): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + on(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + on(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + on(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + on(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + on(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + once(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + once(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + once(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + once(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + once(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependListener(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + prependListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependListener(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + prependListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + prependListener(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "tlsClientError", listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: "newSession", listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void): this; + prependOnceListener(event: "OCSPRequest", listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependOnceListener(event: "resumeSession", listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void): this; + prependOnceListener(event: "secureConnection", listener: (tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: "keylog", listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + } + + interface SecurePair { + encrypted: TLSSocket; + cleartext: TLSSocket; + } + + type SecureVersion = 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1'; + + interface SecureContextOptions { + /** + * Optionally override the trusted CA certificates. Default is to trust + * the well-known CAs curated by Mozilla. Mozilla's CAs are completely + * replaced when CAs are explicitly specified using this option. + */ + ca?: string | Buffer | Array; + /** + * Cert chains in PEM format. One cert chain should be provided per + * private key. Each cert chain should consist of the PEM formatted + * certificate for a provided private key, followed by the PEM + * formatted intermediate certificates (if any), in order, and not + * including the root CA (the root CA must be pre-known to the peer, + * see ca). When providing multiple cert chains, they do not have to + * be in the same order as their private keys in key. If the + * intermediate certificates are not provided, the peer will not be + * able to validate the certificate, and the handshake will fail. + */ + cert?: string | Buffer | Array; + /** + * Colon-separated list of supported signature algorithms. The list + * can contain digest algorithms (SHA256, MD5 etc.), public key + * algorithms (RSA-PSS, ECDSA etc.), combination of both (e.g + * 'RSA+SHA384') or TLS v1.3 scheme names (e.g. rsa_pss_pss_sha512). + */ + sigalgs?: string; + /** + * Cipher suite specification, replacing the default. For more + * information, see modifying the default cipher suite. Permitted + * ciphers can be obtained via tls.getCiphers(). Cipher names must be + * uppercased in order for OpenSSL to accept them. + */ + ciphers?: string; + /** + * Name of an OpenSSL engine which can provide the client certificate. + */ + clientCertEngine?: string; + /** + * PEM formatted CRLs (Certificate Revocation Lists). + */ + crl?: string | Buffer | Array; + /** + * Diffie Hellman parameters, required for Perfect Forward Secrecy. Use + * openssl dhparam to create the parameters. The key length must be + * greater than or equal to 1024 bits or else an error will be thrown. + * Although 1024 bits is permissible, use 2048 bits or larger for + * stronger security. If omitted or invalid, the parameters are + * silently discarded and DHE ciphers will not be available. + */ + dhparam?: string | Buffer; + /** + * A string describing a named curve or a colon separated list of curve + * NIDs or names, for example P-521:P-384:P-256, to use for ECDH key + * agreement. Set to auto to select the curve automatically. Use + * crypto.getCurves() to obtain a list of available curve names. On + * recent releases, openssl ecparam -list_curves will also display the + * name and description of each available elliptic curve. Default: + * tls.DEFAULT_ECDH_CURVE. + */ + ecdhCurve?: string; + /** + * Attempt to use the server's cipher suite preferences instead of the + * client's. When true, causes SSL_OP_CIPHER_SERVER_PREFERENCE to be + * set in secureOptions + */ + honorCipherOrder?: boolean; + /** + * Private keys in PEM format. PEM allows the option of private keys + * being encrypted. Encrypted keys will be decrypted with + * options.passphrase. Multiple keys using different algorithms can be + * provided either as an array of unencrypted key strings or buffers, + * or an array of objects in the form {pem: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted keys will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + key?: string | Buffer | Array; + /** + * Name of an OpenSSL engine to get private key from. Should be used + * together with privateKeyIdentifier. + */ + privateKeyEngine?: string; + /** + * Identifier of a private key managed by an OpenSSL engine. Should be + * used together with privateKeyEngine. Should not be set together with + * key, because both options define a private key in different ways. + */ + privateKeyIdentifier?: string; + /** + * Optionally set the maximum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. + * **Default:** `'TLSv1.3'`, unless changed using CLI options. Using + * `--tls-max-v1.2` sets the default to `'TLSv1.2'`. Using `--tls-max-v1.3` sets the default to + * `'TLSv1.3'`. If multiple of the options are provided, the highest maximum is used. + */ + maxVersion?: SecureVersion; + /** + * Optionally set the minimum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. It is not recommended to use + * less than TLSv1.2, but it may be required for interoperability. + * **Default:** `'TLSv1.2'`, unless changed using CLI options. Using + * `--tls-v1.0` sets the default to `'TLSv1'`. Using `--tls-v1.1` sets the default to + * `'TLSv1.1'`. Using `--tls-min-v1.3` sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the lowest minimum is used. + */ + minVersion?: SecureVersion; + /** + * Shared passphrase used for a single private key and/or a PFX. + */ + passphrase?: string; + /** + * PFX or PKCS12 encoded private key and certificate chain. pfx is an + * alternative to providing key and cert individually. PFX is usually + * encrypted, if it is, passphrase will be used to decrypt it. Multiple + * PFX can be provided either as an array of unencrypted PFX buffers, + * or an array of objects in the form {buf: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted PFX will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + pfx?: string | Buffer | Array; + /** + * Optionally affect the OpenSSL protocol behavior, which is not + * usually necessary. This should be used carefully if at all! Value is + * a numeric bitmask of the SSL_OP_* options from OpenSSL Options + */ + secureOptions?: number; // Value is a numeric bitmask of the `SSL_OP_*` options + /** + * Legacy mechanism to select the TLS protocol version to use, it does + * not support independent control of the minimum and maximum version, + * and does not support limiting the protocol to TLSv1.3. Use + * minVersion and maxVersion instead. The possible values are listed as + * SSL_METHODS, use the function names as strings. For example, use + * 'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow + * any TLS protocol version up to TLSv1.3. It is not recommended to use + * TLS versions less than 1.2, but it may be required for + * interoperability. Default: none, see minVersion. + */ + secureProtocol?: string; + /** + * Opaque identifier used by servers to ensure session state is not + * shared between applications. Unused by clients. + */ + sessionIdContext?: string; + } + + interface SecureContext { + context: any; + } + + /* + * Verifies the certificate `cert` is issued to host `host`. + * @host The hostname to verify the certificate against + * @cert PeerCertificate representing the peer's certificate + * + * Returns Error object, populating it with the reason, host and cert on failure. On success, returns undefined. + */ + function checkServerIdentity(host: string, cert: PeerCertificate): Error | undefined; + function createServer(secureConnectionListener?: (socket: TLSSocket) => void): Server; + function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server; + function connect(options: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + /** + * @deprecated + */ + function createSecurePair(credentials?: SecureContext, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair; + function createSecureContext(details: SecureContextOptions): SecureContext; + function getCiphers(): string[]; + + /** + * The default curve name to use for ECDH key agreement in a tls server. + * The default value is 'auto'. See tls.createSecureContext() for further + * information. + */ + let DEFAULT_ECDH_CURVE: string; + /** + * The default value of the maxVersion option of + * tls.createSecureContext(). It can be assigned any of the supported TLS + * protocol versions, 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: + * 'TLSv1.3', unless changed using CLI options. Using --tls-max-v1.2 sets + * the default to 'TLSv1.2'. Using --tls-max-v1.3 sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the highest maximum + * is used. + */ + let DEFAULT_MAX_VERSION: SecureVersion; + /** + * The default value of the minVersion option of tls.createSecureContext(). + * It can be assigned any of the supported TLS protocol versions, + * 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: 'TLSv1.2', unless + * changed using CLI options. Using --tls-min-v1.0 sets the default to + * 'TLSv1'. Using --tls-min-v1.1 sets the default to 'TLSv1.1'. Using + * --tls-min-v1.3 sets the default to 'TLSv1.3'. If multiple of the options + * are provided, the lowest minimum is used. + */ + let DEFAULT_MIN_VERSION: SecureVersion; + + /** + * An immutable array of strings representing the root certificates (in PEM + * format) used for verifying peer certificates. This is the default value + * of the ca option to tls.createSecureContext(). + */ + const rootCertificates: ReadonlyArray; +} diff --git a/node_modules/@types/node/trace_events.d.ts b/node_modules/@types/node/trace_events.d.ts new file mode 100644 index 0000000..1f3a89c --- /dev/null +++ b/node_modules/@types/node/trace_events.d.ts @@ -0,0 +1,61 @@ +declare module "trace_events" { + /** + * The `Tracing` object is used to enable or disable tracing for sets of + * categories. Instances are created using the + * `trace_events.createTracing()` method. + * + * When created, the `Tracing` object is disabled. Calling the + * `tracing.enable()` method adds the categories to the set of enabled trace + * event categories. Calling `tracing.disable()` will remove the categories + * from the set of enabled trace event categories. + */ + interface Tracing { + /** + * A comma-separated list of the trace event categories covered by this + * `Tracing` object. + */ + readonly categories: string; + + /** + * Disables this `Tracing` object. + * + * Only trace event categories _not_ covered by other enabled `Tracing` + * objects and _not_ specified by the `--trace-event-categories` flag + * will be disabled. + */ + disable(): void; + + /** + * Enables this `Tracing` object for the set of categories covered by + * the `Tracing` object. + */ + enable(): void; + + /** + * `true` only if the `Tracing` object has been enabled. + */ + readonly enabled: boolean; + } + + interface CreateTracingOptions { + /** + * An array of trace category names. Values included in the array are + * coerced to a string when possible. An error will be thrown if the + * value cannot be coerced. + */ + categories: string[]; + } + + /** + * Creates and returns a Tracing object for the given set of categories. + */ + function createTracing(options: CreateTracingOptions): Tracing; + + /** + * Returns a comma-separated list of all currently-enabled trace event + * categories. The current set of enabled trace event categories is + * determined by the union of all currently-enabled `Tracing` objects and + * any categories enabled using the `--trace-event-categories` flag. + */ + function getEnabledCategories(): string | undefined; +} diff --git a/node_modules/@types/node/ts3.2/fs.d.ts b/node_modules/@types/node/ts3.2/fs.d.ts new file mode 100644 index 0000000..0a9eae0 --- /dev/null +++ b/node_modules/@types/node/ts3.2/fs.d.ts @@ -0,0 +1,33 @@ +// tslint:disable-next-line:no-bad-reference +/// + +declare module 'fs' { + interface BigIntStats extends StatsBase { + } + + class BigIntStats { + atimeNs: BigInt; + mtimeNs: BigInt; + ctimeNs: BigInt; + birthtimeNs: BigInt; + } + + interface BigIntOptions { + bigint: true; + } + + interface StatOptions { + bigint: boolean; + } + + function stat(path: PathLike, options: BigIntOptions, callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void): void; + function stat(path: PathLike, options: StatOptions, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + + namespace stat { + function __promisify__(path: PathLike, options: BigIntOptions): Promise; + function __promisify__(path: PathLike, options: StatOptions): Promise; + } + + function statSync(path: PathLike, options: BigIntOptions): BigIntStats; + function statSync(path: PathLike, options: StatOptions): Stats | BigIntStats; +} diff --git a/node_modules/@types/node/ts3.2/globals.d.ts b/node_modules/@types/node/ts3.2/globals.d.ts new file mode 100644 index 0000000..70892bc --- /dev/null +++ b/node_modules/@types/node/ts3.2/globals.d.ts @@ -0,0 +1,19 @@ +// tslint:disable-next-line:no-bad-reference +/// + +declare namespace NodeJS { + interface HRTime { + bigint(): bigint; + } +} + +interface Buffer extends Uint8Array { + readBigUInt64BE(offset?: number): bigint; + readBigUInt64LE(offset?: number): bigint; + readBigInt64BE(offset?: number): bigint; + readBigInt64LE(offset?: number): bigint; + writeBigInt64BE(value: bigint, offset?: number): number; + writeBigInt64LE(value: bigint, offset?: number): number; + writeBigUInt64BE(value: bigint, offset?: number): number; + writeBigUInt64LE(value: bigint, offset?: number): number; +} diff --git a/node_modules/@types/node/ts3.2/index.d.ts b/node_modules/@types/node/ts3.2/index.d.ts new file mode 100644 index 0000000..4814cd8 --- /dev/null +++ b/node_modules/@types/node/ts3.2/index.d.ts @@ -0,0 +1,16 @@ +// NOTE: These definitions support NodeJS and TypeScript 3.2. + +// Reference required types from the default lib: +/// +/// +/// +/// + +// Base definitions for all NodeJS modules that are not specific to any version of TypeScript: +// tslint:disable-next-line:no-bad-reference +/// + +// TypeScript 3.2-specific augmentations: +/// +/// +/// diff --git a/node_modules/@types/node/ts3.2/util.d.ts b/node_modules/@types/node/ts3.2/util.d.ts new file mode 100644 index 0000000..a8b2487 --- /dev/null +++ b/node_modules/@types/node/ts3.2/util.d.ts @@ -0,0 +1,15 @@ +// tslint:disable-next-line:no-bad-reference +/// + +declare module "util" { + namespace inspect { + const custom: unique symbol; + } + namespace promisify { + const custom: unique symbol; + } + namespace types { + function isBigInt64Array(value: any): value is BigInt64Array; + function isBigUint64Array(value: any): value is BigUint64Array; + } +} diff --git a/node_modules/@types/node/tty.d.ts b/node_modules/@types/node/tty.d.ts new file mode 100644 index 0000000..22bce21 --- /dev/null +++ b/node_modules/@types/node/tty.d.ts @@ -0,0 +1,66 @@ +declare module "tty" { + import * as net from "net"; + + function isatty(fd: number): boolean; + class ReadStream extends net.Socket { + constructor(fd: number, options?: net.SocketConstructorOpts); + isRaw: boolean; + setRawMode(mode: boolean): void; + isTTY: boolean; + } + /** + * -1 - to the left from cursor + * 0 - the entire line + * 1 - to the right from cursor + */ + type Direction = -1 | 0 | 1; + class WriteStream extends net.Socket { + constructor(fd: number); + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: "resize", listener: () => void): this; + + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: "resize"): boolean; + + on(event: string, listener: (...args: any[]) => void): this; + on(event: "resize", listener: () => void): this; + + once(event: string, listener: (...args: any[]) => void): this; + once(event: "resize", listener: () => void): this; + + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: "resize", listener: () => void): this; + + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: "resize", listener: () => void): this; + + /** + * Clears the current line of this WriteStream in a direction identified by `dir`. + */ + clearLine(dir: Direction, callback?: () => void): boolean; + /** + * Clears this `WriteStream` from the current cursor down. + */ + clearScreenDown(callback?: () => void): boolean; + /** + * Moves this WriteStream's cursor to the specified position. + */ + cursorTo(x: number, y?: number, callback?: () => void): boolean; + cursorTo(x: number, callback: () => void): boolean; + /** + * Moves this WriteStream's cursor relative to its current position. + */ + moveCursor(dx: number, dy: number, callback?: () => void): boolean; + /** + * @default `process.env` + */ + getColorDepth(env?: {}): number; + hasColors(depth?: number): boolean; + hasColors(env?: {}): boolean; + hasColors(depth: number, env?: {}): boolean; + getWindowSize(): [number, number]; + columns: number; + rows: number; + isTTY: boolean; + } +} diff --git a/node_modules/@types/node/url.d.ts b/node_modules/@types/node/url.d.ts new file mode 100644 index 0000000..e5b7e28 --- /dev/null +++ b/node_modules/@types/node/url.d.ts @@ -0,0 +1,111 @@ +declare module "url" { + import { ParsedUrlQuery, ParsedUrlQueryInput } from 'querystring'; + + // Input to `url.format` + interface UrlObject { + auth?: string | null; + hash?: string | null; + host?: string | null; + hostname?: string | null; + href?: string | null; + path?: string | null; + pathname?: string | null; + protocol?: string | null; + search?: string | null; + slashes?: boolean | null; + port?: string | number | null; + query?: string | null | ParsedUrlQueryInput; + } + + // Output of `url.parse` + interface Url { + auth: string | null; + hash: string | null; + host: string | null; + hostname: string | null; + href: string; + path: string | null; + pathname: string | null; + protocol: string | null; + search: string | null; + slashes: boolean | null; + port: string | null; + query: string | null | ParsedUrlQuery; + } + + interface UrlWithParsedQuery extends Url { + query: ParsedUrlQuery; + } + + interface UrlWithStringQuery extends Url { + query: string | null; + } + + function parse(urlStr: string): UrlWithStringQuery; + function parse(urlStr: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery; + function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery; + function parse(urlStr: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url; + + function format(URL: URL, options?: URLFormatOptions): string; + function format(urlObject: UrlObject | string): string; + function resolve(from: string, to: string): string; + + function domainToASCII(domain: string): string; + function domainToUnicode(domain: string): string; + + /** + * This function ensures the correct decodings of percent-encoded characters as + * well as ensuring a cross-platform valid absolute path string. + * @param url The file URL string or URL object to convert to a path. + */ + function fileURLToPath(url: string | URL): string; + + /** + * This function ensures that path is resolved absolutely, and that the URL + * control characters are correctly encoded when converting into a File URL. + * @param url The path to convert to a File URL. + */ + function pathToFileURL(url: string): URL; + + interface URLFormatOptions { + auth?: boolean; + fragment?: boolean; + search?: boolean; + unicode?: boolean; + } + + class URL { + constructor(input: string, base?: string | URL); + hash: string; + host: string; + hostname: string; + href: string; + readonly origin: string; + password: string; + pathname: string; + port: string; + protocol: string; + search: string; + readonly searchParams: URLSearchParams; + username: string; + toString(): string; + toJSON(): string; + } + + class URLSearchParams implements Iterable<[string, string]> { + constructor(init?: URLSearchParams | string | { [key: string]: string | string[] | undefined } | Iterable<[string, string]> | Array<[string, string]>); + append(name: string, value: string): void; + delete(name: string): void; + entries(): IterableIterator<[string, string]>; + forEach(callback: (value: string, name: string, searchParams: this) => void): void; + get(name: string): string | null; + getAll(name: string): string[]; + has(name: string): boolean; + keys(): IterableIterator; + set(name: string, value: string): void; + sort(): void; + toString(): string; + values(): IterableIterator; + [Symbol.iterator](): IterableIterator<[string, string]>; + } +} diff --git a/node_modules/@types/node/util.d.ts b/node_modules/@types/node/util.d.ts new file mode 100644 index 0000000..e0b6c89 --- /dev/null +++ b/node_modules/@types/node/util.d.ts @@ -0,0 +1,180 @@ +declare module "util" { + interface InspectOptions extends NodeJS.InspectOptions { } + function format(format: any, ...param: any[]): string; + function formatWithOptions(inspectOptions: InspectOptions, format: string, ...param: any[]): string; + /** @deprecated since v0.11.3 - use a third party module instead. */ + function log(string: string): void; + function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string; + function inspect(object: any, options: InspectOptions): string; + namespace inspect { + let colors: { + [color: string]: [number, number] | undefined + }; + let styles: { + [style: string]: string | undefined + }; + let defaultOptions: InspectOptions; + /** + * Allows changing inspect settings from the repl. + */ + let replDefaults: InspectOptions; + } + /** @deprecated since v4.0.0 - use `Array.isArray()` instead. */ + function isArray(object: any): object is any[]; + /** @deprecated since v4.0.0 - use `util.types.isRegExp()` instead. */ + function isRegExp(object: any): object is RegExp; + /** @deprecated since v4.0.0 - use `util.types.isDate()` instead. */ + function isDate(object: any): object is Date; + /** @deprecated since v4.0.0 - use `util.types.isNativeError()` instead. */ + function isError(object: any): object is Error; + function inherits(constructor: any, superConstructor: any): void; + function debuglog(key: string): (msg: string, ...param: any[]) => void; + /** @deprecated since v4.0.0 - use `typeof value === 'boolean'` instead. */ + function isBoolean(object: any): object is boolean; + /** @deprecated since v4.0.0 - use `Buffer.isBuffer()` instead. */ + function isBuffer(object: any): object is Buffer; + /** @deprecated since v4.0.0 - use `typeof value === 'function'` instead. */ + function isFunction(object: any): boolean; + /** @deprecated since v4.0.0 - use `value === null` instead. */ + function isNull(object: any): object is null; + /** @deprecated since v4.0.0 - use `value === null || value === undefined` instead. */ + function isNullOrUndefined(object: any): object is null | undefined; + /** @deprecated since v4.0.0 - use `typeof value === 'number'` instead. */ + function isNumber(object: any): object is number; + /** @deprecated since v4.0.0 - use `value !== null && typeof value === 'object'` instead. */ + function isObject(object: any): boolean; + /** @deprecated since v4.0.0 - use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead. */ + function isPrimitive(object: any): boolean; + /** @deprecated since v4.0.0 - use `typeof value === 'string'` instead. */ + function isString(object: any): object is string; + /** @deprecated since v4.0.0 - use `typeof value === 'symbol'` instead. */ + function isSymbol(object: any): object is symbol; + /** @deprecated since v4.0.0 - use `value === undefined` instead. */ + function isUndefined(object: any): object is undefined; + function deprecate(fn: T, message: string, code?: string): T; + function isDeepStrictEqual(val1: any, val2: any): boolean; + + interface CustomPromisify extends Function { + __promisify__: TCustom; + } + + function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3) => Promise): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void; + function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + + function promisify(fn: CustomPromisify): TCustom; + function promisify(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise; + function promisify(fn: (callback: (err?: any) => void) => void): () => Promise; + function promisify(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise; + function promisify(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void): + (arg1: T1, arg2: T2, arg3: T3) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise; + function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void): + (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void, + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + function promisify(fn: Function): Function; + + namespace types { + function isAnyArrayBuffer(object: any): boolean; + function isArgumentsObject(object: any): object is IArguments; + function isArrayBuffer(object: any): object is ArrayBuffer; + function isAsyncFunction(object: any): boolean; + function isBooleanObject(object: any): object is Boolean; + function isBoxedPrimitive(object: any): object is (Number | Boolean | String | Symbol /* | Object(BigInt) | Object(Symbol) */); + function isDataView(object: any): object is DataView; + function isDate(object: any): object is Date; + function isExternal(object: any): boolean; + function isFloat32Array(object: any): object is Float32Array; + function isFloat64Array(object: any): object is Float64Array; + function isGeneratorFunction(object: any): boolean; + function isGeneratorObject(object: any): boolean; + function isInt8Array(object: any): object is Int8Array; + function isInt16Array(object: any): object is Int16Array; + function isInt32Array(object: any): object is Int32Array; + function isMap(object: any): boolean; + function isMapIterator(object: any): boolean; + function isModuleNamespaceObject(value: any): boolean; + function isNativeError(object: any): object is Error; + function isNumberObject(object: any): object is Number; + function isPromise(object: any): boolean; + function isProxy(object: any): boolean; + function isRegExp(object: any): object is RegExp; + function isSet(object: any): boolean; + function isSetIterator(object: any): boolean; + function isSharedArrayBuffer(object: any): boolean; + function isStringObject(object: any): boolean; + function isSymbolObject(object: any): boolean; + function isTypedArray(object: any): object is NodeJS.TypedArray; + function isUint8Array(object: any): object is Uint8Array; + function isUint8ClampedArray(object: any): object is Uint8ClampedArray; + function isUint16Array(object: any): object is Uint16Array; + function isUint32Array(object: any): object is Uint32Array; + function isWeakMap(object: any): boolean; + function isWeakSet(object: any): boolean; + function isWebAssemblyCompiledModule(object: any): boolean; + } + + class TextDecoder { + readonly encoding: string; + readonly fatal: boolean; + readonly ignoreBOM: boolean; + constructor( + encoding?: string, + options?: { fatal?: boolean; ignoreBOM?: boolean } + ); + decode( + input?: NodeJS.ArrayBufferView | ArrayBuffer | null, + options?: { stream?: boolean } + ): string; + } + + interface EncodeIntoResult { + /** + * The read Unicode code units of input. + */ + + read: number; + /** + * The written UTF-8 bytes of output. + */ + written: number; + } + + class TextEncoder { + readonly encoding: string; + encode(input?: string): Uint8Array; + encodeInto(input: string, output: Uint8Array): EncodeIntoResult; + } +} diff --git a/node_modules/@types/node/v8.d.ts b/node_modules/@types/node/v8.d.ts new file mode 100644 index 0000000..2e2706e --- /dev/null +++ b/node_modules/@types/node/v8.d.ts @@ -0,0 +1,197 @@ +declare module "v8" { + import { Readable } from "stream"; + + interface HeapSpaceInfo { + space_name: string; + space_size: number; + space_used_size: number; + space_available_size: number; + physical_space_size: number; + } + + // ** Signifies if the --zap_code_space option is enabled or not. 1 == enabled, 0 == disabled. */ + type DoesZapCodeSpaceFlag = 0 | 1; + + interface HeapInfo { + total_heap_size: number; + total_heap_size_executable: number; + total_physical_size: number; + total_available_size: number; + used_heap_size: number; + heap_size_limit: number; + malloced_memory: number; + peak_malloced_memory: number; + does_zap_garbage: DoesZapCodeSpaceFlag; + number_of_native_contexts: number; + number_of_detached_contexts: number; + } + + interface HeapCodeStatistics { + code_and_metadata_size: number; + bytecode_and_metadata_size: number; + external_script_source_size: number; + } + + /** + * Returns an integer representing a "version tag" derived from the V8 version, command line flags and detected CPU features. + * This is useful for determining whether a vm.Script cachedData buffer is compatible with this instance of V8. + */ + function cachedDataVersionTag(): number; + + function getHeapStatistics(): HeapInfo; + function getHeapSpaceStatistics(): HeapSpaceInfo[]; + function setFlagsFromString(flags: string): void; + /** + * Generates a snapshot of the current V8 heap and returns a Readable + * Stream that may be used to read the JSON serialized representation. + * This conversation was marked as resolved by joyeecheung + * This JSON stream format is intended to be used with tools such as + * Chrome DevTools. The JSON schema is undocumented and specific to the + * V8 engine, and may change from one version of V8 to the next. + */ + function getHeapSnapshot(): Readable; + + /** + * + * @param fileName The file path where the V8 heap snapshot is to be + * saved. If not specified, a file name with the pattern + * `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be + * generated, where `{pid}` will be the PID of the Node.js process, + * `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from + * the main Node.js thread or the id of a worker thread. + */ + function writeHeapSnapshot(fileName?: string): string; + + function getHeapCodeStatistics(): HeapCodeStatistics; + + /** + * @experimental + */ + class Serializer { + /** + * Writes out a header, which includes the serialization format version. + */ + writeHeader(): void; + + /** + * Serializes a JavaScript value and adds the serialized representation to the internal buffer. + * This throws an error if value cannot be serialized. + */ + writeValue(val: any): boolean; + + /** + * Returns the stored internal buffer. + * This serializer should not be used once the buffer is released. + * Calling this method results in undefined behavior if a previous write has failed. + */ + releaseBuffer(): Buffer; + + /** + * Marks an ArrayBuffer as having its contents transferred out of band.\ + * Pass the corresponding ArrayBuffer in the deserializing context to deserializer.transferArrayBuffer(). + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + + /** + * Write a raw 32-bit unsigned integer. + */ + writeUint32(value: number): void; + + /** + * Write a raw 64-bit unsigned integer, split into high and low 32-bit parts. + */ + writeUint64(hi: number, lo: number): void; + + /** + * Write a JS number value. + */ + writeDouble(value: number): void; + + /** + * Write raw bytes into the serializer’s internal buffer. + * The deserializer will require a way to compute the length of the buffer. + */ + writeRawBytes(buffer: NodeJS.TypedArray): void; + } + + /** + * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, + * and only stores the part of their underlying `ArrayBuffers` that they are referring to. + * @experimental + */ + class DefaultSerializer extends Serializer { + } + + /** + * @experimental + */ + class Deserializer { + constructor(data: NodeJS.TypedArray); + /** + * Reads and validates a header (including the format version). + * May, for example, reject an invalid or unsupported wire format. + * In that case, an Error is thrown. + */ + readHeader(): boolean; + + /** + * Deserializes a JavaScript value from the buffer and returns it. + */ + readValue(): any; + + /** + * Marks an ArrayBuffer as having its contents transferred out of band. + * Pass the corresponding `ArrayBuffer` in the serializing context to serializer.transferArrayBuffer() + * (or return the id from serializer._getSharedArrayBufferId() in the case of SharedArrayBuffers). + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + + /** + * Reads the underlying wire format version. + * Likely mostly to be useful to legacy code reading old wire format versions. + * May not be called before .readHeader(). + */ + getWireFormatVersion(): number; + + /** + * Read a raw 32-bit unsigned integer and return it. + */ + readUint32(): number; + + /** + * Read a raw 64-bit unsigned integer and return it as an array [hi, lo] with two 32-bit unsigned integer entries. + */ + readUint64(): [number, number]; + + /** + * Read a JS number value. + */ + readDouble(): number; + + /** + * Read raw bytes from the deserializer’s internal buffer. + * The length parameter must correspond to the length of the buffer that was passed to serializer.writeRawBytes(). + */ + readRawBytes(length: number): Buffer; + } + + /** + * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, + * and only stores the part of their underlying `ArrayBuffers` that they are referring to. + * @experimental + */ + class DefaultDeserializer extends Deserializer { + } + + /** + * Uses a `DefaultSerializer` to serialize value into a buffer. + * @experimental + */ + function serialize(value: any): Buffer; + + /** + * Uses a `DefaultDeserializer` with default options to read a JS value from a buffer. + * @experimental + */ + function deserialize(data: NodeJS.TypedArray): any; +} diff --git a/node_modules/@types/node/vm.d.ts b/node_modules/@types/node/vm.d.ts new file mode 100644 index 0000000..208498c --- /dev/null +++ b/node_modules/@types/node/vm.d.ts @@ -0,0 +1,110 @@ +declare module "vm" { + interface Context { + [key: string]: any; + } + interface BaseOptions { + /** + * Specifies the filename used in stack traces produced by this script. + * Default: `''`. + */ + filename?: string; + /** + * Specifies the line number offset that is displayed in stack traces produced by this script. + * Default: `0`. + */ + lineOffset?: number; + /** + * Specifies the column number offset that is displayed in stack traces produced by this script. + * Default: `0` + */ + columnOffset?: number; + } + interface ScriptOptions extends BaseOptions { + displayErrors?: boolean; + timeout?: number; + cachedData?: Buffer; + produceCachedData?: boolean; + } + interface RunningScriptOptions extends BaseOptions { + /** + * When `true`, if an `Error` occurs while compiling the `code`, the line of code causing the error is attached to the stack trace. + * Default: `true`. + */ + displayErrors?: boolean; + /** + * Specifies the number of milliseconds to execute code before terminating execution. + * If execution is terminated, an `Error` will be thrown. This value must be a strictly positive integer. + */ + timeout?: number; + /** + * If `true`, the execution will be terminated when `SIGINT` (Ctrl+C) is received. + * Existing handlers for the event that have been attached via `process.on('SIGINT')` will be disabled during script execution, but will continue to work after that. + * If execution is terminated, an `Error` will be thrown. + * Default: `false`. + */ + breakOnSigint?: boolean; + } + interface CompileFunctionOptions extends BaseOptions { + /** + * Provides an optional data with V8's code cache data for the supplied source. + */ + cachedData?: Buffer; + /** + * Specifies whether to produce new cache data. + * Default: `false`, + */ + produceCachedData?: boolean; + /** + * The sandbox/context in which the said function should be compiled in. + */ + parsingContext?: Context; + + /** + * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling + */ + contextExtensions?: Object[]; + } + + interface CreateContextOptions { + /** + * Human-readable name of the newly created context. + * @default 'VM Context i' Where i is an ascending numerical index of the created context. + */ + name?: string; + /** + * Corresponds to the newly created context for display purposes. + * The origin should be formatted like a `URL`, but with only the scheme, host, and port (if necessary), + * like the value of the `url.origin` property of a URL object. + * Most notably, this string should omit the trailing slash, as that denotes a path. + * @default '' + */ + origin?: string; + codeGeneration?: { + /** + * If set to false any calls to eval or function constructors (Function, GeneratorFunction, etc) + * will throw an EvalError. + * @default true + */ + strings?: boolean; + /** + * If set to false any attempt to compile a WebAssembly module will throw a WebAssembly.CompileError. + * @default true + */ + wasm?: boolean; + }; + } + + class Script { + constructor(code: string, options?: ScriptOptions); + runInContext(contextifiedSandbox: Context, options?: RunningScriptOptions): any; + runInNewContext(sandbox?: Context, options?: RunningScriptOptions): any; + runInThisContext(options?: RunningScriptOptions): any; + createCachedData(): Buffer; + } + function createContext(sandbox?: Context, options?: CreateContextOptions): Context; + function isContext(sandbox: Context): boolean; + function runInContext(code: string, contextifiedSandbox: Context, options?: RunningScriptOptions | string): any; + function runInNewContext(code: string, sandbox?: Context, options?: RunningScriptOptions | string): any; + function runInThisContext(code: string, options?: RunningScriptOptions | string): any; + function compileFunction(code: string, params: string[], options: CompileFunctionOptions): Function; +} diff --git a/node_modules/@types/node/worker_threads.d.ts b/node_modules/@types/node/worker_threads.d.ts new file mode 100644 index 0000000..45ea85e --- /dev/null +++ b/node_modules/@types/node/worker_threads.d.ts @@ -0,0 +1,153 @@ +declare module "worker_threads" { + import { Context } from "vm"; + import { EventEmitter } from "events"; + import { Readable, Writable } from "stream"; + + const isMainThread: boolean; + const parentPort: null | MessagePort; + const threadId: number; + const workerData: any; + + class MessageChannel { + readonly port1: MessagePort; + readonly port2: MessagePort; + } + + class MessagePort extends EventEmitter { + close(): void; + postMessage(value: any, transferList?: Array): void; + ref(): void; + unref(): void; + start(): void; + + addListener(event: "close", listener: () => void): this; + addListener(event: "message", listener: (value: any) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "message", value: any): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "message", listener: (value: any) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "message", listener: (value: any) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "message", listener: (value: any) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "message", listener: (value: any) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "message", listener: (value: any) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + + off(event: "close", listener: () => void): this; + off(event: "message", listener: (value: any) => void): this; + off(event: string | symbol, listener: (...args: any[]) => void): this; + } + + interface WorkerOptions { + eval?: boolean; + workerData?: any; + stdin?: boolean; + stdout?: boolean; + stderr?: boolean; + execArgv?: string[]; + } + + class Worker extends EventEmitter { + readonly stdin: Writable | null; + readonly stdout: Readable; + readonly stderr: Readable; + readonly threadId: number; + + constructor(filename: string, options?: WorkerOptions); + + postMessage(value: any, transferList?: Array): void; + ref(): void; + unref(): void; + /** + * Stop all JavaScript execution in the worker thread as soon as possible. + * Returns a Promise for the exit code that is fulfilled when the `exit` event is emitted. + */ + terminate(): Promise; + /** + * Transfer a `MessagePort` to a different `vm` Context. The original `port` + * object will be rendered unusable, and the returned `MessagePort` instance will + * take its place. + * + * The returned `MessagePort` will be an object in the target context, and will + * inherit from its global `Object` class. Objects passed to the + * `port.onmessage()` listener will also be created in the target context + * and inherit from its global `Object` class. + * + * However, the created `MessagePort` will no longer inherit from + * `EventEmitter`, and only `port.onmessage()` can be used to receive + * events using it. + */ + moveMessagePortToContext(port: MessagePort, context: Context): MessagePort; + + /** + * Receive a single message from a given `MessagePort`. If no message is available, + * `undefined` is returned, otherwise an object with a single `message` property + * that contains the message payload, corresponding to the oldest message in the + * `MessagePort`’s queue. + */ + receiveMessageOnPort(port: MessagePort): {} | undefined; + + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "exit", listener: (exitCode: number) => void): this; + addListener(event: "message", listener: (value: any) => void): this; + addListener(event: "online", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "error", err: Error): boolean; + emit(event: "exit", exitCode: number): boolean; + emit(event: "message", value: any): boolean; + emit(event: "online"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "error", listener: (err: Error) => void): this; + on(event: "exit", listener: (exitCode: number) => void): this; + on(event: "message", listener: (value: any) => void): this; + on(event: "online", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "error", listener: (err: Error) => void): this; + once(event: "exit", listener: (exitCode: number) => void): this; + once(event: "message", listener: (value: any) => void): this; + once(event: "online", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "exit", listener: (exitCode: number) => void): this; + prependListener(event: "message", listener: (value: any) => void): this; + prependListener(event: "online", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "exit", listener: (exitCode: number) => void): this; + prependOnceListener(event: "message", listener: (value: any) => void): this; + prependOnceListener(event: "online", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "exit", listener: (exitCode: number) => void): this; + removeListener(event: "message", listener: (value: any) => void): this; + removeListener(event: "online", listener: () => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + + off(event: "error", listener: (err: Error) => void): this; + off(event: "exit", listener: (exitCode: number) => void): this; + off(event: "message", listener: (value: any) => void): this; + off(event: "online", listener: () => void): this; + off(event: string | symbol, listener: (...args: any[]) => void): this; + } +} diff --git a/node_modules/@types/node/zlib.d.ts b/node_modules/@types/node/zlib.d.ts new file mode 100644 index 0000000..a03e900 --- /dev/null +++ b/node_modules/@types/node/zlib.d.ts @@ -0,0 +1,352 @@ +declare module "zlib" { + import * as stream from "stream"; + + interface ZlibOptions { + /** + * @default constants.Z_NO_FLUSH + */ + flush?: number; + /** + * @default constants.Z_FINISH + */ + finishFlush?: number; + /** + * @default 16*1024 + */ + chunkSize?: number; + windowBits?: number; + level?: number; // compression only + memLevel?: number; // compression only + strategy?: number; // compression only + dictionary?: NodeJS.ArrayBufferView | ArrayBuffer; // deflate/inflate only, empty dictionary by default + } + + interface BrotliOptions { + /** + * @default constants.BROTLI_OPERATION_PROCESS + */ + flush?: number; + /** + * @default constants.BROTLI_OPERATION_FINISH + */ + finishFlush?: number; + /** + * @default 16*1024 + */ + chunkSize?: number; + params?: { + /** + * Each key is a `constants.BROTLI_*` constant. + */ + [key: number]: boolean | number; + }; + } + + interface Zlib { + /** @deprecated Use bytesWritten instead. */ + readonly bytesRead: number; + readonly bytesWritten: number; + shell?: boolean | string; + close(callback?: () => void): void; + flush(kind?: number | (() => void), callback?: () => void): void; + } + + interface ZlibParams { + params(level: number, strategy: number, callback: () => void): void; + } + + interface ZlibReset { + reset(): void; + } + + interface BrotliCompress extends stream.Transform, Zlib { } + interface BrotliDecompress extends stream.Transform, Zlib { } + interface Gzip extends stream.Transform, Zlib { } + interface Gunzip extends stream.Transform, Zlib { } + interface Deflate extends stream.Transform, Zlib, ZlibReset, ZlibParams { } + interface Inflate extends stream.Transform, Zlib, ZlibReset { } + interface DeflateRaw extends stream.Transform, Zlib, ZlibReset, ZlibParams { } + interface InflateRaw extends stream.Transform, Zlib, ZlibReset { } + interface Unzip extends stream.Transform, Zlib { } + + function createBrotliCompress(options?: BrotliOptions): BrotliCompress; + function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress; + function createGzip(options?: ZlibOptions): Gzip; + function createGunzip(options?: ZlibOptions): Gunzip; + function createDeflate(options?: ZlibOptions): Deflate; + function createInflate(options?: ZlibOptions): Inflate; + function createDeflateRaw(options?: ZlibOptions): DeflateRaw; + function createInflateRaw(options?: ZlibOptions): InflateRaw; + function createUnzip(options?: ZlibOptions): Unzip; + + type InputType = string | ArrayBuffer | NodeJS.ArrayBufferView; + + type CompressCallback = (error: Error | null, result: Buffer) => void; + + function brotliCompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void; + function brotliCompress(buf: InputType, callback: CompressCallback): void; + function brotliCompressSync(buf: InputType, options?: BrotliOptions): Buffer; + function brotliDecompress(buf: InputType, options: BrotliOptions, callback: CompressCallback): void; + function brotliDecompress(buf: InputType, callback: CompressCallback): void; + function brotliDecompressSync(buf: InputType, options?: BrotliOptions): Buffer; + function deflate(buf: InputType, callback: CompressCallback): void; + function deflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + function deflateSync(buf: InputType, options?: ZlibOptions): Buffer; + function deflateRaw(buf: InputType, callback: CompressCallback): void; + function deflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + function deflateRawSync(buf: InputType, options?: ZlibOptions): Buffer; + function gzip(buf: InputType, callback: CompressCallback): void; + function gzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + function gzipSync(buf: InputType, options?: ZlibOptions): Buffer; + function gunzip(buf: InputType, callback: CompressCallback): void; + function gunzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + function gunzipSync(buf: InputType, options?: ZlibOptions): Buffer; + function inflate(buf: InputType, callback: CompressCallback): void; + function inflate(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + function inflateSync(buf: InputType, options?: ZlibOptions): Buffer; + function inflateRaw(buf: InputType, callback: CompressCallback): void; + function inflateRaw(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + function inflateRawSync(buf: InputType, options?: ZlibOptions): Buffer; + function unzip(buf: InputType, callback: CompressCallback): void; + function unzip(buf: InputType, options: ZlibOptions, callback: CompressCallback): void; + function unzipSync(buf: InputType, options?: ZlibOptions): Buffer; + + namespace constants { + const BROTLI_DECODE: number; + const BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: number; + const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: number; + const BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: number; + const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: number; + const BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: number; + const BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: number; + const BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: number; + const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: number; + const BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: number; + const BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: number; + const BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: number; + const BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: number; + const BROTLI_DECODER_ERROR_FORMAT_DISTANCE: number; + const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: number; + const BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: number; + const BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: number; + const BROTLI_DECODER_ERROR_FORMAT_PADDING_1: number; + const BROTLI_DECODER_ERROR_FORMAT_PADDING_2: number; + const BROTLI_DECODER_ERROR_FORMAT_RESERVED: number; + const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: number; + const BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: number; + const BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: number; + const BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: number; + const BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: number; + const BROTLI_DECODER_ERROR_UNREACHABLE: number; + const BROTLI_DECODER_NEEDS_MORE_INPUT: number; + const BROTLI_DECODER_NEEDS_MORE_OUTPUT: number; + const BROTLI_DECODER_NO_ERROR: number; + const BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: number; + const BROTLI_DECODER_PARAM_LARGE_WINDOW: number; + const BROTLI_DECODER_RESULT_ERROR: number; + const BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: number; + const BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: number; + const BROTLI_DECODER_RESULT_SUCCESS: number; + const BROTLI_DECODER_SUCCESS: number; + + const BROTLI_DEFAULT_MODE: number; + const BROTLI_DEFAULT_QUALITY: number; + const BROTLI_DEFAULT_WINDOW: number; + const BROTLI_ENCODE: number; + const BROTLI_LARGE_MAX_WINDOW_BITS: number; + const BROTLI_MAX_INPUT_BLOCK_BITS: number; + const BROTLI_MAX_QUALITY: number; + const BROTLI_MAX_WINDOW_BITS: number; + const BROTLI_MIN_INPUT_BLOCK_BITS: number; + const BROTLI_MIN_QUALITY: number; + const BROTLI_MIN_WINDOW_BITS: number; + + const BROTLI_MODE_FONT: number; + const BROTLI_MODE_GENERIC: number; + const BROTLI_MODE_TEXT: number; + + const BROTLI_OPERATION_EMIT_METADATA: number; + const BROTLI_OPERATION_FINISH: number; + const BROTLI_OPERATION_FLUSH: number; + const BROTLI_OPERATION_PROCESS: number; + + const BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: number; + const BROTLI_PARAM_LARGE_WINDOW: number; + const BROTLI_PARAM_LGBLOCK: number; + const BROTLI_PARAM_LGWIN: number; + const BROTLI_PARAM_MODE: number; + const BROTLI_PARAM_NDIRECT: number; + const BROTLI_PARAM_NPOSTFIX: number; + const BROTLI_PARAM_QUALITY: number; + const BROTLI_PARAM_SIZE_HINT: number; + + const DEFLATE: number; + const DEFLATERAW: number; + const GUNZIP: number; + const GZIP: number; + const INFLATE: number; + const INFLATERAW: number; + const UNZIP: number; + + const Z_BEST_COMPRESSION: number; + const Z_BEST_SPEED: number; + const Z_BLOCK: number; + const Z_BUF_ERROR: number; + const Z_DATA_ERROR: number; + + const Z_DEFAULT_CHUNK: number; + const Z_DEFAULT_COMPRESSION: number; + const Z_DEFAULT_LEVEL: number; + const Z_DEFAULT_MEMLEVEL: number; + const Z_DEFAULT_STRATEGY: number; + const Z_DEFAULT_WINDOWBITS: number; + + const Z_ERRNO: number; + const Z_FILTERED: number; + const Z_FINISH: number; + const Z_FIXED: number; + const Z_FULL_FLUSH: number; + const Z_HUFFMAN_ONLY: number; + const Z_MAX_CHUNK: number; + const Z_MAX_LEVEL: number; + const Z_MAX_MEMLEVEL: number; + const Z_MAX_WINDOWBITS: number; + const Z_MEM_ERROR: number; + const Z_MIN_CHUNK: number; + const Z_MIN_LEVEL: number; + const Z_MIN_MEMLEVEL: number; + const Z_MIN_WINDOWBITS: number; + const Z_NEED_DICT: number; + const Z_NO_COMPRESSION: number; + const Z_NO_FLUSH: number; + const Z_OK: number; + const Z_PARTIAL_FLUSH: number; + const Z_RLE: number; + const Z_STREAM_END: number; + const Z_STREAM_ERROR: number; + const Z_SYNC_FLUSH: number; + const Z_VERSION_ERROR: number; + const ZLIB_VERNUM: number; + } + + /** + * @deprecated + */ + const Z_NO_FLUSH: number; + /** + * @deprecated + */ + const Z_PARTIAL_FLUSH: number; + /** + * @deprecated + */ + const Z_SYNC_FLUSH: number; + /** + * @deprecated + */ + const Z_FULL_FLUSH: number; + /** + * @deprecated + */ + const Z_FINISH: number; + /** + * @deprecated + */ + const Z_BLOCK: number; + /** + * @deprecated + */ + const Z_TREES: number; + /** + * @deprecated + */ + const Z_OK: number; + /** + * @deprecated + */ + const Z_STREAM_END: number; + /** + * @deprecated + */ + const Z_NEED_DICT: number; + /** + * @deprecated + */ + const Z_ERRNO: number; + /** + * @deprecated + */ + const Z_STREAM_ERROR: number; + /** + * @deprecated + */ + const Z_DATA_ERROR: number; + /** + * @deprecated + */ + const Z_MEM_ERROR: number; + /** + * @deprecated + */ + const Z_BUF_ERROR: number; + /** + * @deprecated + */ + const Z_VERSION_ERROR: number; + /** + * @deprecated + */ + const Z_NO_COMPRESSION: number; + /** + * @deprecated + */ + const Z_BEST_SPEED: number; + /** + * @deprecated + */ + const Z_BEST_COMPRESSION: number; + /** + * @deprecated + */ + const Z_DEFAULT_COMPRESSION: number; + /** + * @deprecated + */ + const Z_FILTERED: number; + /** + * @deprecated + */ + const Z_HUFFMAN_ONLY: number; + /** + * @deprecated + */ + const Z_RLE: number; + /** + * @deprecated + */ + const Z_FIXED: number; + /** + * @deprecated + */ + const Z_DEFAULT_STRATEGY: number; + /** + * @deprecated + */ + const Z_BINARY: number; + /** + * @deprecated + */ + const Z_TEXT: number; + /** + * @deprecated + */ + const Z_ASCII: number; + /** + * @deprecated + */ + const Z_UNKNOWN: number; + /** + * @deprecated + */ + const Z_DEFLATED: number; +} diff --git a/node_modules/atob-lite/.npmignore b/node_modules/atob-lite/.npmignore new file mode 100644 index 0000000..50c7458 --- /dev/null +++ b/node_modules/atob-lite/.npmignore @@ -0,0 +1,6 @@ +node_modules +*.log +.DS_Store +bundle.js +test +test.js diff --git a/node_modules/atob-lite/LICENSE.md b/node_modules/atob-lite/LICENSE.md new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/atob-lite/LICENSE.md @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/atob-lite/README.md b/node_modules/atob-lite/README.md new file mode 100644 index 0000000..99ea05d --- /dev/null +++ b/node_modules/atob-lite/README.md @@ -0,0 +1,37 @@ +# atob-lite +![](http://img.shields.io/badge/stability-stable-orange.svg?style=flat) +![](http://img.shields.io/npm/v/atob-lite.svg?style=flat) +![](http://img.shields.io/npm/dm/atob-lite.svg?style=flat) +![](http://img.shields.io/npm/l/atob-lite.svg?style=flat) + +Smallest/simplest possible means of using atob with both Node and browserify. + +In the browser, decoding base64 strings is done using: + +``` javascript +var decoded = atob(encoded) +``` + +However in Node, it's done like so: + +``` javascript +var decoded = new Buffer(encoded, 'base64').toString('utf8') +``` + +You can easily check if `Buffer` exists and switch between the approaches +accordingly, but using `Buffer` anywhere in your browser source will pull +in browserify's `Buffer` shim which is pretty hefty. This package uses +the `main` and `browser` fields in its `package.json` to perform this +check at build time and avoid pulling `Buffer` in unnecessarily. + +## Usage + +[![NPM](https://nodei.co/npm/atob-lite.png)](https://nodei.co/npm/atob-lite/) + +### `decoded = atob(encoded)` + +Returns the decoded value of a base64-encoded string. + +## License + +MIT. See [LICENSE.md](http://github.com/hughsk/atob-lite/blob/master/LICENSE.md) for details. diff --git a/node_modules/atob-lite/atob-browser.js b/node_modules/atob-lite/atob-browser.js new file mode 100644 index 0000000..cee1a38 --- /dev/null +++ b/node_modules/atob-lite/atob-browser.js @@ -0,0 +1,3 @@ +module.exports = function _atob(str) { + return atob(str) +} diff --git a/node_modules/atob-lite/atob-node.js b/node_modules/atob-lite/atob-node.js new file mode 100644 index 0000000..7072075 --- /dev/null +++ b/node_modules/atob-lite/atob-node.js @@ -0,0 +1,3 @@ +module.exports = function atob(str) { + return Buffer.from(str, 'base64').toString('binary') +} diff --git a/node_modules/atob-lite/package.json b/node_modules/atob-lite/package.json new file mode 100644 index 0000000..69040b4 --- /dev/null +++ b/node_modules/atob-lite/package.json @@ -0,0 +1,42 @@ +{ + "name": "atob-lite", + "version": "2.0.0", + "description": "Smallest/simplest possible means of using atob with both Node and browserify", + "main": "atob-node.js", + "browser": "atob-browser.js", + "license": "MIT", + "scripts": { + "test": "npm run test-node && npm run test-browser", + "test-node": "node test | tap-spec", + "test-browser": "browserify test | smokestack | tap-spec" + }, + "author": { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com", + "url": "http://hughsk.io/" + }, + "dependencies": {}, + "devDependencies": { + "browserify": "^10.2.4", + "smokestack": "^3.3.0", + "tap-closer": "^1.0.0", + "tap-spec": "^4.0.0", + "tape": "^4.0.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/hughsk/atob-lite.git" + }, + "keywords": [ + "atob", + "base64", + "isomorphic", + "browser", + "node", + "shared" + ], + "homepage": "https://github.com/hughsk/atob-lite", + "bugs": { + "url": "https://github.com/hughsk/atob-lite/issues" + } +} diff --git a/node_modules/balanced-match/.npmignore b/node_modules/balanced-match/.npmignore new file mode 100644 index 0000000..ae5d8c3 --- /dev/null +++ b/node_modules/balanced-match/.npmignore @@ -0,0 +1,5 @@ +test +.gitignore +.travis.yml +Makefile +example.js diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md new file mode 100644 index 0000000..2cdc8e4 --- /dev/null +++ b/node_modules/balanced-match/LICENSE.md @@ -0,0 +1,21 @@ +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/balanced-match/README.md b/node_modules/balanced-match/README.md new file mode 100644 index 0000000..08e918c --- /dev/null +++ b/node_modules/balanced-match/README.md @@ -0,0 +1,91 @@ +# balanced-match + +Match balanced string pairs, like `{` and `}` or `` and ``. Supports regular expressions as well! + +[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match) +[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match) + +[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match) + +## Example + +Get the first matching pair of braces: + +```js +var balanced = require('balanced-match'); + +console.log(balanced('{', '}', 'pre{in{nested}}post')); +console.log(balanced('{', '}', 'pre{first}between{second}post')); +console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post')); +``` + +The matches are: + +```bash +$ node example.js +{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' } +{ start: 3, + end: 9, + pre: 'pre', + body: 'first', + post: 'between{second}post' } +{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' } +``` + +## API + +### var m = balanced(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +object with those keys: + +* **start** the index of the first match of `a` +* **end** the index of the matching `b` +* **pre** the preamble, `a` and `b` not included +* **body** the match, `a` and `b` not included +* **post** the postscript, `a` and `b` not included + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`. + +### var r = balanced.range(a, b, str) + +For the first non-nested matching pair of `a` and `b` in `str`, return an +array with indexes: `[ , ]`. + +If there's no match, `undefined` will be returned. + +If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install balanced-match +``` + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/balanced-match/index.js b/node_modules/balanced-match/index.js new file mode 100644 index 0000000..1685a76 --- /dev/null +++ b/node_modules/balanced-match/index.js @@ -0,0 +1,59 @@ +'use strict'; +module.exports = balanced; +function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; +} + +function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; +} + +balanced.range = range; +function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [ begs.pop(), bi ]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [ left, right ]; + } + } + + return result; +} diff --git a/node_modules/balanced-match/package.json b/node_modules/balanced-match/package.json new file mode 100644 index 0000000..61349c6 --- /dev/null +++ b/node_modules/balanced-match/package.json @@ -0,0 +1,49 @@ +{ + "name": "balanced-match", + "description": "Match balanced character pairs, like \"{\" and \"}\"", + "version": "1.0.0", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/balanced-match.git" + }, + "homepage": "https://github.com/juliangruber/balanced-match", + "main": "index.js", + "scripts": { + "test": "make test", + "bench": "make bench" + }, + "dependencies": {}, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [ + "match", + "regexp", + "test", + "balanced", + "parse" + ], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/node_modules/before-after-hook/LICENSE b/node_modules/before-after-hook/LICENSE new file mode 100644 index 0000000..225063c --- /dev/null +++ b/node_modules/before-after-hook/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Gregor Martynus and other contributors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/before-after-hook/README.md b/node_modules/before-after-hook/README.md new file mode 100644 index 0000000..68c927d --- /dev/null +++ b/node_modules/before-after-hook/README.md @@ -0,0 +1,574 @@ +# before-after-hook + +> asynchronous hooks for internal functionality + +[![npm downloads](https://img.shields.io/npm/dw/before-after-hook.svg)](https://www.npmjs.com/package/before-after-hook) +[![Build Status](https://travis-ci.org/gr2m/before-after-hook.svg?branch=master)](https://travis-ci.org/gr2m/before-after-hook) +[![Coverage Status](https://coveralls.io/repos/gr2m/before-after-hook/badge.svg?branch=master)](https://coveralls.io/r/gr2m/before-after-hook?branch=master) +[![Greenkeeper badge](https://badges.greenkeeper.io/gr2m/before-after-hook.svg)](https://greenkeeper.io/) + +## Usage + +### Singular hook + +Recommended for [TypeScript](#typescript) + +```js +// instantiate singular hook API +const hook = new Hook.Singular() + +// Create a hook +function getData (options) { + return hook(fetchFromDatabase, options) + .then(handleData) + .catch(handleGetError) +} + +// register before/error/after hooks. +// The methods can be async or return a promise +hook.before(beforeHook) +hook.error(errorHook) +hook.after(afterHook) + +getData({id: 123}) +``` + +### Hook collection +```js +// instantiate hook collection API +const hookCollection = new Hook.Collection() + +// Create a hook +function getData (options) { + return hookCollection('get', fetchFromDatabase, options) + .then(handleData) + .catch(handleGetError) +} + +// register before/error/after hooks. +// The methods can be async or return a promise +hookCollection.before('get', beforeHook) +hookCollection.error('get', errorHook) +hookCollection.after('get', afterHook) + +getData({id: 123}) +``` + +### Hook.Singular vs Hook.Collection + +There's no fundamental difference between the `Hook.Singular` and `Hook.Collection` hooks except for the fact that a hook from a collection requires you to pass along the name. Therefore the following explanation applies to both code snippets as described above. + +The methods are executed in the following order + +1. `beforeHook` +2. `fetchFromDatabase` +3. `afterHook` +4. `getData` + +`beforeHook` can mutate `options` before it’s passed to `fetchFromDatabase`. + +If an error is thrown in `beforeHook` or `fetchFromDatabase` then `errorHook` is +called next. + +If `afterHook` throws an error then `handleGetError` is called instead +of `getData`. + +If `errorHook` throws an error then `handleGetError` is called next, otherwise +`afterHook` and `getData`. + +You can also use `hook.wrap` to achieve the same thing as shown above (collection example): + +```js +hookCollection.wrap('get', async (getData, options) => { + await beforeHook(options) + + try { + const result = getData(options) + } catch (error) { + await errorHook(error, options) + } + + await afterHook(result, options) +}) +``` + +## Install + +``` +npm install before-after-hook +``` + +Or download [the latest `before-after-hook.min.js`](https://github.com/gr2m/before-after-hook/releases/latest). + +## API + +- [Singular Hook Constructor](#singular-hook-api) +- [Hook Collection Constructor](#hook-collection-api) + +## Singular hook API + +- [Singular constructor](#singular-constructor) +- [hook.api](#singular-api) +- [hook()](#singular-api) +- [hook.before()](#singular-api) +- [hook.error()](#singular-api) +- [hook.after()](#singular-api) +- [hook.wrap()](#singular-api) +- [hook.remove()](#singular-api) + +### Singular constructor + +The `Hook.Singular` constructor has no options and returns a `hook` instance with the +methods below: + +```js +const hook = new Hook.Singular() +``` +Using the singular hook is recommended for [TypeScript](#typescript) + +### Singular API + +The singular hook is a reference to a single hook. This means that there's no need to pass along any identifier (such as a `name` as can be seen in the [Hook.Collection API](#hookcollectionapi)). + +The API of a singular hook is exactly the same as a collection hook and we therefore suggest you read the [Hook.Collection API](#hookcollectionapi) and leave out any use of the `name` argument. Just skip it like described in this example: +```js +const hook = new Hook.Singular() + +// good +hook.before(beforeHook) +hook.after(afterHook) +hook(fetchFromDatabase, options) + +// bad +hook.before('get', beforeHook) +hook.after('get', afterHook) +hook('get', fetchFromDatabase, options) +``` + +## Hook collection API + +- [Collection constructor](#collection-constructor) +- [collection.api](#collectionapi) +- [collection()](#collection) +- [collection.before()](#collectionbefore) +- [collection.error()](#collectionerror) +- [collection.after()](#collectionafter) +- [collection.wrap()](#collectionwrap) +- [collection.remove()](#collectionremove) + +### Collection constructor + +The `Hook.Collection` constructor has no options and returns a `hookCollection` instance with the +methods below + +```js +const hookCollection = new Hook.Collection() +``` + +### hookCollection.api + +Use the `api` property to return the public API: + +- [hookCollection.before()](#hookcollectionbefore) +- [hookCollection.after()](#hookcollectionafter) +- [hookCollection.error()](#hookcollectionerror) +- [hookCollection.wrap()](#hookcollectionwrap) +- [hookCollection.remove()](#hookcollectionremove) + +That way you don’t need to expose the [hookCollection()](#hookcollection) method to consumers of your library + +### hookCollection() + +Invoke before and after hooks. Returns a promise. + +```js +hookCollection(nameOrNames, method /*, options */) +``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameString or Array of StringsHook name, for example 'save'. Or an array of names, see example below.Yes
methodFunctionCallback to be executed after all before hooks finished execution successfully. options is passed as first argumentYes
optionsObjectWill be passed to all before hooks as reference, so they can mutate itNo, defaults to empty object ({})
+ +Resolves with whatever `method` returns or resolves with. +Rejects with error that is thrown or rejected with by + +1. Any of the before hooks, whichever rejects / throws first +2. `method` +3. Any of the after hooks, whichever rejects / throws first + +Simple Example + +```js +hookCollection('save', function (record) { + return store.save(record) +}, record) +// shorter: hookCollection('save', store.save, record) + +hookCollection.before('save', function addTimestamps (record) { + const now = new Date().toISOString() + if (record.createdAt) { + record.updatedAt = now + } else { + record.createdAt = now + } +}) +``` + +Example defining multiple hooks at once. + +```js +hookCollection(['add', 'save'], function (record) { + return store.save(record) +}, record) + +hookCollection.before('add', function addTimestamps (record) { + if (!record.type) { + throw new Error('type property is required') + } +}) + +hookCollection.before('save', function addTimestamps (record) { + if (!record.type) { + throw new Error('type property is required') + } +}) +``` + +Defining multiple hooks is helpful if you have similar methods for which you want to define separate hooks, but also an additional hook that gets called for all at once. The example above is equal to this: + +```js +hookCollection('add', function (record) { + return hookCollection('save', function (record) { + return store.save(record) + }, record) +}, record) +``` + +### hookCollection.before() + +Add before hook for given name. + +```js +hookCollection.before(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed before the wrapped method. Called with the hook’s + options argument. Before hooks can mutate the passed options + before they are passed to the wrapped method. + Yes
+ +Example + +```js +hookCollection.before('save', function validate (record) { + if (!record.name) { + throw new Error('name property is required') + } +}) +``` + +### hookCollection.error() + +Add error hook for given name. + +```js +hookCollection.error(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed when an error occurred in either the wrapped method or a + before hook. Called with the thrown error + and the hook’s options argument. The first method + which does not throw an error will set the result that the after hook + methods will receive. + Yes
+ +Example + +```js +hookCollection.error('save', function (error, options) { + if (error.ignore) return + throw error +}) +``` + +### hookCollection.after() + +Add after hook for given name. + +```js +hookCollection.after(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Executed after wrapped method. Called with what the wrapped method + resolves with the hook’s options argument. + Yes
+ +Example + +```js +hookCollection.after('save', function (result, options) { + if (result.updatedAt) { + app.emit('update', result) + } else { + app.emit('create', result) + } +}) +``` + +### hookCollection.wrap() + +Add wrap hook for given name. + +```js +hookCollection.wrap(name, method) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
methodFunction + Receives both the wrapped method and the passed options as arguments so it can add logic before and after the wrapped method, it can handle errors and even replace the wrapped method altogether + Yes
+ +Example + +```js +hookCollection.wrap('save', async function (saveInDatabase, options) { + if (!record.name) { + throw new Error('name property is required') + } + + try { + const result = await saveInDatabase(options) + + if (result.updatedAt) { + app.emit('update', result) + } else { + app.emit('create', result) + } + + return result + } catch (error) { + if (error.ignore) return + throw error + } +}) +``` + +See also: [Test mock example](examples/test-mock-example.md) + +### hookCollection.remove() + +Removes hook for given name. + +```js +hookCollection.remove(name, hookMethod) +``` + + + + + + + + + + + + + + + + + + + + + + +
ArgumentTypeDescriptionRequired
nameStringHook name, for example 'save'Yes
beforeHookMethodFunction + Same function that was previously passed to hookCollection.before(), hookCollection.error(), hookCollection.after() or hookCollection.wrap() + Yes
+ +Example + +```js +hookCollection.remove('save', validateRecord) +``` + +## TypeScript + +This library contains type definitions for TypeScript. When you use TypeScript we highly recommend using the `Hook.Singular` constructor for your hooks as this allows you to pass along type information for the options object. For example: + +```ts + +import {Hook} from 'before-after-hook' + +interface Foo { + bar: string + num: number; +} + +const hook = new Hook.Singular(); + +hook.before(function (foo) { + + // typescript will complain about the following mutation attempts + foo.hello = 'world' + foo.bar = 123 + + // yet this is valid + foo.bar = 'other-string' + foo.num = 123 +}) + +const foo = hook(function(foo) { + // handle `foo` + foo.bar = 'another-string' +}, {bar: 'random-string'}) + +// foo outputs +{ + bar: 'another-string', + num: 123 +} +``` + +An alternative import: + +```ts +import {Singular, Collection} from 'before-after-hook' + +const hook = new Singular<{foo: string}>(); +const hookCollection = new Collection(); +``` + +## Upgrading to 1.4 + +Since version 1.4 the `Hook` constructor has been deprecated in favor of returning `Hook.Singular` in an upcoming breaking release. + +Version 1.4 is still 100% backwards-compatible, but if you want to continue using hook collections, we recommend using the `Hook.Collection` constructor instead before the next release. + +For even more details, check out [the PR](https://github.com/gr2m/before-after-hook/pull/52). + +## See also + +If `before-after-hook` is not for you, have a look at one of these alternatives: + +- https://github.com/keystonejs/grappling-hook +- https://github.com/sebelga/promised-hooks +- https://github.com/bnoguchi/hooks-js +- https://github.com/cb1kenobi/hook-emitter + +## License + +[Apache 2.0](LICENSE) diff --git a/node_modules/before-after-hook/index.d.ts b/node_modules/before-after-hook/index.d.ts new file mode 100644 index 0000000..3c19a5c --- /dev/null +++ b/node_modules/before-after-hook/index.d.ts @@ -0,0 +1,96 @@ +type HookMethod = (options: O) => R | Promise + +type BeforeHook = (options: O) => void +type ErrorHook = (error: E, options: O) => void +type AfterHook = (result: R, options: O) => void +type WrapHook = ( + hookMethod: HookMethod, + options: O +) => R | Promise + +type AnyHook = + | BeforeHook + | ErrorHook + | AfterHook + | WrapHook + +export interface HookCollection { + /** + * Invoke before and after hooks + */ + ( + name: string | string[], + hookMethod: HookMethod, + options?: any + ): Promise + /** + * Add `before` hook for given `name` + */ + before(name: string, beforeHook: BeforeHook): void + /** + * Add `error` hook for given `name` + */ + error(name: string, errorHook: ErrorHook): void + /** + * Add `after` hook for given `name` + */ + after(name: string, afterHook: AfterHook): void + /** + * Add `wrap` hook for given `name` + */ + wrap(name: string, wrapHook: WrapHook): void + /** + * Remove added hook for given `name` + */ + remove(name: string, hook: AnyHook): void +} + +export interface HookSingular { + /** + * Invoke before and after hooks + */ + (hookMethod: HookMethod, options?: O): Promise + /** + * Add `before` hook + */ + before(beforeHook: BeforeHook): void + /** + * Add `error` hook + */ + error(errorHook: ErrorHook): void + /** + * Add `after` hook + */ + after(afterHook: AfterHook): void + /** + * Add `wrap` hook + */ + wrap(wrapHook: WrapHook): void + /** + * Remove added hook + */ + remove(hook: AnyHook): void +} + +type Collection = new () => HookCollection +type Singular = new () => HookSingular + +interface Hook { + new (): HookCollection + + /** + * Creates a collection of hooks + */ + Collection: Collection + + /** + * Creates a nameless hook that supports strict typings + */ + Singular: Singular +} + +export const Hook: Hook +export const Collection: Collection +export const Singular: Singular + +export default Hook diff --git a/node_modules/before-after-hook/index.js b/node_modules/before-after-hook/index.js new file mode 100644 index 0000000..a97d89b --- /dev/null +++ b/node_modules/before-after-hook/index.js @@ -0,0 +1,57 @@ +var register = require('./lib/register') +var addHook = require('./lib/add') +var removeHook = require('./lib/remove') + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) + +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef + + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) +} + +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} + } + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook +} + +function HookCollection () { + var state = { + registry: {} + } + + var hook = register.bind(null, state) + bindApi(hook, state) + + return hook +} + +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} + +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() + +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection diff --git a/node_modules/before-after-hook/lib/add.js b/node_modules/before-after-hook/lib/add.js new file mode 100644 index 0000000..a34e3f4 --- /dev/null +++ b/node_modules/before-after-hook/lib/add.js @@ -0,0 +1,46 @@ +module.exports = addHook + +function addHook (state, kind, name, hook) { + var orig = hook + if (!state.registry[name]) { + state.registry[name] = [] + } + + if (kind === 'before') { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)) + } + } + + if (kind === 'after') { + hook = function (method, options) { + var result + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_ + return orig(result, options) + }) + .then(function () { + return result + }) + } + } + + if (kind === 'error') { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options) + }) + } + } + + state.registry[name].push({ + hook: hook, + orig: orig + }) +} diff --git a/node_modules/before-after-hook/lib/register.js b/node_modules/before-after-hook/lib/register.js new file mode 100644 index 0000000..b3d01fd --- /dev/null +++ b/node_modules/before-after-hook/lib/register.js @@ -0,0 +1,28 @@ +module.exports = register + +function register (state, name, method, options) { + if (typeof method !== 'function') { + throw new Error('method for before hook must be a function') + } + + if (!options) { + options = {} + } + + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options) + }, method)() + } + + return Promise.resolve() + .then(function () { + if (!state.registry[name]) { + return method(options) + } + + return (state.registry[name]).reduce(function (method, registered) { + return registered.hook.bind(null, method, options) + }, method)() + }) +} diff --git a/node_modules/before-after-hook/lib/remove.js b/node_modules/before-after-hook/lib/remove.js new file mode 100644 index 0000000..e357c51 --- /dev/null +++ b/node_modules/before-after-hook/lib/remove.js @@ -0,0 +1,17 @@ +module.exports = removeHook + +function removeHook (state, name, method) { + if (!state.registry[name]) { + return + } + + var index = state.registry[name] + .map(function (registered) { return registered.orig }) + .indexOf(method) + + if (index === -1) { + return + } + + state.registry[name].splice(index, 1) +} diff --git a/node_modules/before-after-hook/package.json b/node_modules/before-after-hook/package.json new file mode 100644 index 0000000..1aa58a5 --- /dev/null +++ b/node_modules/before-after-hook/package.json @@ -0,0 +1,70 @@ +{ + "name": "before-after-hook", + "version": "2.1.0", + "description": "asynchronous before/error/after hooks for internal functionality", + "files": [ + "index.js", + "index.d.ts", + "lib" + ], + "types": "./index.d.ts", + "scripts": { + "prebuild": "rimraf dist && mkdirp dist", + "build": "browserify index.js --standalone=Hook > dist/before-after-hook.js", + "postbuild": "uglifyjs dist/before-after-hook.js -mc > dist/before-after-hook.min.js", + "pretest": "standard", + "test": "npm run -s test:node | tap-spec", + "posttest": "npm run validate:ts", + "test:node": "node test", + "test:watch": "gaze 'clear && node test | tap-min' 'test/**/*.js' 'index.js' 'lib/**/*.js'", + "test:coverage": "istanbul cover test", + "test:coverage:upload": "istanbul-coveralls", + "validate:ts": "tsc --strict --target es6 index.d.ts", + "postvalidate:ts": "tsc --noEmit --strict --target es6 test/typescript-validate.ts", + "presemantic-release": "npm run build", + "semantic-release": "semantic-release" + }, + "repository": { + "type": "git", + "url": "https://github.com/gr2m/before-after-hook.git" + }, + "keywords": [ + "hook", + "hooks", + "api" + ], + "author": "Gregor Martynus", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/gr2m/before-after-hook/issues" + }, + "homepage": "https://github.com/gr2m/before-after-hook#readme", + "dependencies": {}, + "devDependencies": { + "browserify": "^16.0.0", + "gaze-cli": "^0.2.0", + "istanbul": "^0.4.0", + "istanbul-coveralls": "^1.0.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.4.4", + "semantic-release": "^15.0.0", + "simple-mock": "^0.8.0", + "standard": "^13.0.1", + "tap-min": "^2.0.0", + "tap-spec": "^5.0.0", + "tape": "^4.2.2", + "typescript": "^3.5.3", + "uglify-js": "^3.0.0" + }, + "release": { + "publish": [ + "@semantic-release/npm", + { + "path": "@semantic-release/github", + "assets": [ + "dist/*.js" + ] + } + ] + } +} diff --git a/node_modules/bottleneck/.babelrc.es5 b/node_modules/bottleneck/.babelrc.es5 new file mode 100644 index 0000000..e7120e3 --- /dev/null +++ b/node_modules/bottleneck/.babelrc.es5 @@ -0,0 +1,5 @@ +{ + "presets": [ + ["@babel/preset-env", {}] + ] +} \ No newline at end of file diff --git a/node_modules/bottleneck/.babelrc.lib b/node_modules/bottleneck/.babelrc.lib new file mode 100644 index 0000000..de9dbba --- /dev/null +++ b/node_modules/bottleneck/.babelrc.lib @@ -0,0 +1,9 @@ +{ + "presets": [ + ["@babel/preset-env", { + "targets": { + "node": "6.0" + } + }] + ] +} \ No newline at end of file diff --git a/node_modules/bottleneck/.env b/node_modules/bottleneck/.env new file mode 100644 index 0000000..7afc96e --- /dev/null +++ b/node_modules/bottleneck/.env @@ -0,0 +1,2 @@ +REDIS_HOST=127.0.0.1 +REDIS_PORT=6379 diff --git a/node_modules/bottleneck/.travis.yml b/node_modules/bottleneck/.travis.yml new file mode 100644 index 0000000..8204ece --- /dev/null +++ b/node_modules/bottleneck/.travis.yml @@ -0,0 +1,25 @@ +language: node_js +node_js: + - 8 +branches: + only: + - master + - next +services: + - redis-server +env: + global: + - "REDIS_HOST=127.0.0.1" + - "REDIS_PORT=6379" +cache: + directories: + - $HOME/.npm +install: +- npm i +sudo: required +after_success: npx codecov --file=./coverage/lcov.info +script: npm run test-all + +before_install: + - npm i -g npm@5.10 + - npm --version \ No newline at end of file diff --git a/node_modules/bottleneck/LICENSE b/node_modules/bottleneck/LICENSE new file mode 100644 index 0000000..835fc31 --- /dev/null +++ b/node_modules/bottleneck/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Simon Grondin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/bottleneck/README.md b/node_modules/bottleneck/README.md new file mode 100644 index 0000000..bb8d52f --- /dev/null +++ b/node_modules/bottleneck/README.md @@ -0,0 +1,1027 @@ +# bottleneck + +[![Downloads][npm-downloads]][npm-url] +[![version][npm-version]][npm-url] +[![License][npm-license]][license-url] + + +Bottleneck is a lightweight and zero-dependency Task Scheduler and Rate Limiter for Node.js and the browser. + +Bottleneck is an easy solution as it adds very little complexity to your code. It is battle-hardened, reliable and production-ready and used on a large scale in private companies and open source software. + +It supports **Clustering**: it can rate limit jobs across multiple Node.js instances. It uses Redis and strictly atomic operations to stay reliable in the presence of unreliable clients and networks. It also supports *Redis Cluster* and *Redis Sentinel*. + +**[Upgrading from version 1?](#upgrading-to-v2)** + + + +- [Install](#install) +- [Quick Start](#quick-start) + * [Gotchas & Common Mistakes](#gotchas--common-mistakes) +- [Constructor](#constructor) +- [Reservoir Intervals](#reservoir-intervals) +- [`submit()`](#submit) +- [`schedule()`](#schedule) +- [`wrap()`](#wrap) +- [Job Options](#job-options) +- [Jobs Lifecycle](#jobs-lifecycle) +- [Events](#events) +- [Retries](#retries) +- [`updateSettings()`](#updatesettings) +- [`incrementReservoir()`](#incrementreservoir) +- [`currentReservoir()`](#currentreservoir) +- [`stop()`](#stop) +- [`chain()`](#chain) +- [Group](#group) +- [Batching](#batching) +- [Clustering](#clustering) +- [Debugging Your Application](#debugging-your-application) +- [Upgrading To v2](#upgrading-to-v2) +- [Contributing](#contributing) + + + +## Install + +``` +npm install --save bottleneck +``` + +```js +import Bottleneck from "bottleneck"; + +// Note: To support older browsers and Node <6.0, you must import the ES5 bundle instead. +var Bottleneck = require("bottleneck/es5"); +``` + +## Quick Start + +### Step 1 of 3 + +Most APIs have a rate limit. For example, to execute 3 requests per second: +```js +const limiter = new Bottleneck({ + minTime: 333 +}); +``` + +If there's a chance some requests might take longer than 333ms and you want to prevent more than 1 request from running at a time, add `maxConcurrent: 1`: +```js +const limiter = new Bottleneck({ + maxConcurrent: 1, + minTime: 333 +}); +``` + +`minTime` and `maxConcurrent` are enough for the majority of use cases. They work well together to ensure a smooth rate of requests. If your use case requires executing requests in **bursts** or every time a quota resets, look into [Reservoir Intervals](#reservoir-intervals). + +### Step 2 of 3 + +#### ➤ Using promises? + +Instead of this: +```js +myFunction(arg1, arg2) +.then((result) => { + /* handle result */ +}); +``` +Do this: +```js +limiter.schedule(() => myFunction(arg1, arg2)) +.then((result) => { + /* handle result */ +}); +``` +Or this: +```js +const wrapped = limiter.wrap(myFunction); + +wrapped(arg1, arg2) +.then((result) => { + /* handle result */ +}); +``` + +#### ➤ Using async/await? + +Instead of this: +```js +const result = await myFunction(arg1, arg2); +``` +Do this: +```js +const result = await limiter.schedule(() => myFunction(arg1, arg2)); +``` +Or this: +```js +const wrapped = limiter.wrap(myFunction); + +const result = await wrapped(arg1, arg2); +``` + +#### ➤ Using callbacks? + +Instead of this: +```js +someAsyncCall(arg1, arg2, callback); +``` +Do this: +```js +limiter.submit(someAsyncCall, arg1, arg2, callback); +``` + +### Step 3 of 3 + +Remember... + +Bottleneck builds a queue of jobs and executes them as soon as possible. By default, the jobs will be executed in the order they were received. + +**Read the 'Gotchas' and you're good to go**. Or keep reading to learn about all the fine tuning and advanced options available. If your rate limits need to be enforced across a cluster of computers, read the [Clustering](#clustering) docs. + +[Need help debugging your application?](#debugging-your-application) + +Instead of throttling maybe [you want to batch up requests](#batching) into fewer calls? + +### Gotchas & Common Mistakes + +* Make sure the function you pass to `schedule()` or `wrap()` only returns once **all the work it does** has completed. + +Instead of this: +```js +limiter.schedule(() => { + tasksArray.forEach(x => processTask(x)); + // BAD, we return before our processTask() functions are finished processing! +}); +``` +Do this: +```js +limiter.schedule(() => { + const allTasks = tasksArray.map(x => processTask(x)); + // GOOD, we wait until all tasks are done. + return Promise.all(allTasks); +}); +``` + +* If you're passing an object's method as a job, you'll probably need to `bind()` the object: +```js +// instead of this: +limiter.schedule(object.doSomething); +// do this: +limiter.schedule(object.doSomething.bind(object)); +// or, wrap it in an arrow function instead: +limiter.schedule(() => object.doSomething()); +``` + +* Bottleneck requires Node 6+ to function. However, an ES5 build is included: `var Bottleneck = require("bottleneck/es5");`. + +* Make sure you're catching `"error"` events emitted by your limiters! + +* Consider setting a `maxConcurrent` value instead of leaving it `null`. This can help your application's performance, especially if you think the limiter's queue might become very long. + +* If you plan on using `priorities`, make sure to set a `maxConcurrent` value. + +* **When using `submit()`**, if a callback isn't necessary, you must pass `null` or an empty function instead. It will not work otherwise. + +* **When using `submit()`**, make sure all the jobs will eventually complete by calling their callback, or set an [`expiration`](#job-options). Even if you submitted your job with a `null` callback , it still needs to call its callback. This is particularly important if you are using a `maxConcurrent` value that isn't `null` (unlimited), otherwise those not completed jobs will be clogging up the limiter and no new jobs will be allowed to run. It's safe to call the callback more than once, subsequent calls are ignored. + +## Docs + +### Constructor + +```js +const limiter = new Bottleneck({/* options */}); +``` + +Basic options: + +| Option | Default | Description | +|--------|---------|-------------| +| `maxConcurrent` | `null` (unlimited) | How many jobs can be executing at the same time. Consider setting a value instead of leaving it `null`, it can help your application's performance, especially if you think the limiter's queue might get very long. | +| `minTime` | `0` ms | How long to wait after launching a job before launching another one. | +| `highWater` | `null` (unlimited) | How long can the queue be? When the queue length exceeds that value, the selected `strategy` is executed to shed the load. | +| `strategy` | `Bottleneck.strategy.LEAK` | Which strategy to use when the queue gets longer than the high water mark. [Read about strategies](#strategies). Strategies are never executed if `highWater` is `null`. | +| `penalty` | `15 * minTime`, or `5000` when `minTime` is `0` | The `penalty` value used by the `BLOCK` strategy. | +| `reservoir` | `null` (unlimited) | How many jobs can be executed before the limiter stops executing jobs. If `reservoir` reaches `0`, no jobs will be executed until it is no longer `0`. New jobs will still be queued up. | +| `reservoirRefreshInterval` | `null` (disabled) | Every `reservoirRefreshInterval` milliseconds, the `reservoir` value will be automatically updated to the value of `reservoirRefreshAmount`. The `reservoirRefreshInterval` value should be a [multiple of 250 (5000 for Clustering)](https://github.com/SGrondin/bottleneck/issues/88). | +| `reservoirRefreshAmount` | `null` (disabled) | The value to set `reservoir` to when `reservoirRefreshInterval` is in use. | +| `reservoirIncreaseInterval` | `null` (disabled) | Every `reservoirIncreaseInterval` milliseconds, the `reservoir` value will be automatically incremented by `reservoirIncreaseAmount`. The `reservoirIncreaseInterval` value should be a [multiple of 250 (5000 for Clustering)](https://github.com/SGrondin/bottleneck/issues/88). | +| `reservoirIncreaseAmount` | `null` (disabled) | The increment applied to `reservoir` when `reservoirIncreaseInterval` is in use. | +| `reservoirIncreaseMaximum` | `null` (disabled) | The maximum value that `reservoir` can reach when `reservoirIncreaseInterval` is in use. | +| `Promise` | `Promise` (built-in) | This lets you override the Promise library used by Bottleneck. | + + +### Reservoir Intervals + +Reservoir Intervals let you execute requests in bursts, by automatically controlling the limiter's `reservoir` value. The `reservoir` is simply the number of jobs the limiter is allowed to execute. Once the value reaches 0, it stops starting new jobs. + +There are 2 types of Reservoir Intervals: Refresh Intervals and Increase Intervals. + +#### Refresh Interval + +In this example, we throttle to 100 requests every 60 seconds: + +```js +const limiter = new Bottleneck({ + reservoir: 100, // initial value + reservoirRefreshAmount: 100, + reservoirRefreshInterval: 60 * 1000, // must be divisible by 250 + + // also use maxConcurrent and/or minTime for safety + maxConcurrent: 1, + minTime: 333 // pick a value that makes sense for your use case +}); +``` +`reservoir` is a counter decremented every time a job is launched, we set its initial value to 100. Then, every `reservoirRefreshInterval` (60000 ms), `reservoir` is automatically updated to be equal to the `reservoirRefreshAmount` (100). + +#### Increase Interval + +In this example, we throttle jobs to meet the Shopify API Rate Limits. Users are allowed to send 40 requests initially, then every second grants 2 more requests up to a maximum of 40. + +```js +const limiter = new Bottleneck({ + reservoir: 40, // initial value + reservoirIncreaseAmount: 2, + reservoirIncreaseInterval: 1000, // must be divisible by 250 + reservoirIncreaseMaximum: 40, + + // also use maxConcurrent and/or minTime for safety + maxConcurrent: 5, + minTime: 250 // pick a value that makes sense for your use case +}); +``` + +#### Warnings + +Reservoir Intervals are an advanced feature, please take the time to read and understand the following warnings. + +- **Reservoir Intervals are not a replacement for `minTime` and `maxConcurrent`.** It's strongly recommended to also use `minTime` and/or `maxConcurrent` to spread out the load. For example, suppose a lot of jobs are queued up because the `reservoir` is 0. Every time the Refresh Interval is triggered, a number of jobs equal to `reservoirRefreshAmount` will automatically be launched, all at the same time! To prevent this flooding effect and keep your application running smoothly, use `minTime` and `maxConcurrent` to **stagger** the jobs. + +- **The Reservoir Interval starts from the moment the limiter is created**. Let's suppose we're using `reservoirRefreshAmount: 5`. If you happen to add 10 jobs just 1ms before the refresh is triggered, the first 5 will run immediately, then 1ms later it will refresh the reservoir value and that will make the last 5 also run right away. It will have run 10 jobs in just over 1ms no matter what your reservoir interval was! + +- **Reservoir Intervals prevent a limiter from being garbage collected.** Call `limiter.disconnect()` to clear the interval and allow the memory to be freed. However, it's not necessary to call `.disconnect()` to allow the Node.js process to exit. + +### submit() + +Adds a job to the queue. This is the callback version of `schedule()`. +```js +limiter.submit(someAsyncCall, arg1, arg2, callback); +``` +You can pass `null` instead of an empty function if there is no callback, but `someAsyncCall` still needs to call **its** callback to let the limiter know it has completed its work. + +`submit()` can also accept [advanced options](#job-options). + +### schedule() + +Adds a job to the queue. This is the Promise and async/await version of `submit()`. +```js +const fn = function(arg1, arg2) { + return httpGet(arg1, arg2); // Here httpGet() returns a promise +}; + +limiter.schedule(fn, arg1, arg2) +.then((result) => { + /* ... */ +}); +``` +In other words, `schedule()` takes a function **fn** and a list of arguments. `schedule()` returns a promise that will be executed according to the rate limits. + +`schedule()` can also accept [advanced options](#job-options). + +Here's another example: +```js +// suppose that `client.get(url)` returns a promise + +const url = "https://wikipedia.org"; + +limiter.schedule(() => client.get(url)) +.then(response => console.log(response.body)); +``` + +### wrap() + +Takes a function that returns a promise. Returns a function identical to the original, but rate limited. +```js +const wrapped = limiter.wrap(fn); + +wrapped() +.then(function (result) { + /* ... */ +}) +.catch(function (error) { + // Bottleneck might need to fail the job even if the original function can never fail. + // For example, your job is taking longer than the `expiration` time you've set. +}); +``` + +### Job Options + +`submit()`, `schedule()`, and `wrap()` all accept advanced options. +```js +// Submit +limiter.submit({/* options */}, someAsyncCall, arg1, arg2, callback); + +// Schedule +limiter.schedule({/* options */}, fn, arg1, arg2); + +// Wrap +const wrapped = limiter.wrap(fn); +wrapped.withOptions({/* options */}, arg1, arg2); +``` + +| Option | Default | Description | +|--------|---------|-------------| +| `priority` | `5` | A priority between `0` and `9`. A job with a priority of `4` will be queued ahead of a job with a priority of `5`. **Important:** You must set a low `maxConcurrent` value for priorities to work, otherwise there is nothing to queue because jobs will be be scheduled immediately! | +| `weight` | `1` | Must be an integer equal to or higher than `0`. The `weight` is what increases the number of running jobs (up to `maxConcurrent`) and decreases the `reservoir` value. | +| `expiration` | `null` (unlimited) | The number of milliseconds a job is given to complete. Jobs that execute for longer than `expiration` ms will be failed with a `BottleneckError`. | +| `id` | `` | You should give an ID to your jobs, it helps with [debugging](#debugging-your-application). | + +### Strategies + +A strategy is a simple algorithm that is executed every time adding a job would cause the number of queued jobs to exceed `highWater`. Strategies are never executed if `highWater` is `null`. + +#### Bottleneck.strategy.LEAK +When adding a new job to a limiter, if the queue length reaches `highWater`, drop the oldest job with the lowest priority. This is useful when jobs that have been waiting for too long are not important anymore. If all the queued jobs are more important (based on their `priority` value) than the one being added, it will not be added. + +#### Bottleneck.strategy.OVERFLOW_PRIORITY +Same as `LEAK`, except it will only drop jobs that are *less important* than the one being added. If all the queued jobs are as or more important than the new one, it will not be added. + +#### Bottleneck.strategy.OVERFLOW +When adding a new job to a limiter, if the queue length reaches `highWater`, do not add the new job. This strategy totally ignores priority levels. + +#### Bottleneck.strategy.BLOCK +When adding a new job to a limiter, if the queue length reaches `highWater`, the limiter falls into "blocked mode". All queued jobs are dropped and no new jobs will be accepted until the limiter unblocks. It will unblock after `penalty` milliseconds have passed without receiving a new job. `penalty` is equal to `15 * minTime` (or `5000` if `minTime` is `0`) by default. This strategy is ideal when bruteforce attacks are to be expected. This strategy totally ignores priority levels. + + +### Jobs lifecycle + +1. **Received**. Your new job has been added to the limiter. Bottleneck needs to check whether it can be accepted into the queue. +2. **Queued**. Bottleneck has accepted your job, but it can not tell at what exact timestamp it will run yet, because it is dependent on previous jobs. +3. **Running**. Your job is not in the queue anymore, it will be executed after a delay that was computed according to your `minTime` setting. +4. **Executing**. Your job is executing its code. +5. **Done**. Your job has completed. + +**Note:** By default, Bottleneck does not keep track of DONE jobs, to save memory. You can enable this feature by passing `trackDoneStatus: true` as an option when creating a limiter. + +#### counts() + +```js +const counts = limiter.counts(); + +console.log(counts); +/* +{ + RECEIVED: 0, + QUEUED: 0, + RUNNING: 0, + EXECUTING: 0, + DONE: 0 +} +*/ +``` + +Returns an object with the current number of jobs per status in the limiter. + +#### jobStatus() + +```js +console.log(limiter.jobStatus("some-job-id")); +// Example: QUEUED +``` + +Returns the status of the job with the provided job id **in the limiter**. Returns `null` if no job with that id exist. + +#### jobs() + +```js +console.log(limiter.jobs("RUNNING")); +// Example: ['id1', 'id2'] +``` + +Returns an array of all the job ids with the specified status **in the limiter**. Not passing a status string returns all the known ids. + +#### queued() + +```js +const count = limiter.queued(priority); + +console.log(count); +``` + +`priority` is optional. Returns the number of `QUEUED` jobs with the given `priority` level. Omitting the `priority` argument returns the total number of queued jobs **in the limiter**. + +#### clusterQueued() + +```js +const count = await limiter.clusterQueued(); + +console.log(count); +``` + +Returns the number of `QUEUED` jobs **in the Cluster**. + +#### empty() + +```js +if (limiter.empty()) { + // do something... +} +``` + +Returns a boolean which indicates whether there are any `RECEIVED` or `QUEUED` jobs **in the limiter**. + +#### running() + +```js +limiter.running() +.then((count) => console.log(count)); +``` + +Returns a promise that returns the **total weight** of the `RUNNING` and `EXECUTING` jobs **in the Cluster**. + +#### done() + +```js +limiter.done() +.then((count) => console.log(count)); +``` + +Returns a promise that returns the **total weight** of `DONE` jobs **in the Cluster**. Does not require passing the `trackDoneStatus: true` option. + +#### check() + +```js +limiter.check() +.then((wouldRunNow) => console.log(wouldRunNow)); +``` +Checks if a new job would be executed immediately if it was submitted now. Returns a promise that returns a boolean. + + +### Events + +__'error'__ +```js +limiter.on("error", function (error) { + /* handle errors here */ +}); +``` + +The two main causes of error events are: uncaught exceptions in your event handlers, and network errors when Clustering is enabled. + +__'failed'__ +```js +limiter.on("failed", function (error, jobInfo) { + // This will be called every time a job fails. +}); +``` + +__'retry'__ + +See [Retries](#retries) to learn how to automatically retry jobs. +```js +limiter.on("retry", function (message, jobInfo) { + // This will be called every time a job is retried. +}); +``` + +__'empty'__ +```js +limiter.on("empty", function () { + // This will be called when `limiter.empty()` becomes true. +}); +``` + +__'idle'__ +```js +limiter.on("idle", function () { + // This will be called when `limiter.empty()` is `true` and `limiter.running()` is `0`. +}); +``` + +__'dropped'__ +```js +limiter.on("dropped", function (dropped) { + // This will be called when a strategy was triggered. + // The dropped request is passed to this event listener. +}); +``` + +__'depleted'__ +```js +limiter.on("depleted", function (empty) { + // This will be called every time the reservoir drops to 0. + // The `empty` (boolean) argument indicates whether `limiter.empty()` is currently true. +}); +``` + +__'debug'__ +```js +limiter.on("debug", function (message, data) { + // Useful to figure out what the limiter is doing in real time + // and to help debug your application +}); +``` + +__'received'__ +__'queued'__ +__'scheduled'__ +__'executing'__ +__'done'__ +```js +limiter.on("queued", function (info) { + // This event is triggered when a job transitions from one Lifecycle stage to another +}); +``` + +See [Jobs Lifecycle](#jobs-lifecycle) for more information. + +These Lifecycle events are not triggered for jobs located on another limiter in a Cluster, for performance reasons. + +#### Other event methods + +Use `removeAllListeners()` with an optional event name as first argument to remove listeners. + +Use `.once()` instead of `.on()` to only receive a single event. + + +### Retries + +The following example: +```js +const limiter = new Bottleneck(); + +// Listen to the "failed" event +limiter.on("failed", async (error, jobInfo) => { + const id = jobInfo.options.id; + console.warn(`Job ${id} failed: ${error}`); + + if (jobInfo.retryCount === 0) { // Here we only retry once + console.log(`Retrying job ${id} in 25ms!`); + return 25; + } +}); + +// Listen to the "retry" event +limiter.on("retry", (error, jobInfo) => console.log(`Now retrying ${jobInfo.options.id}`)); + +const main = async function () { + let executions = 0; + + // Schedule one job + const result = await limiter.schedule({ id: 'ABC123' }, async () => { + executions++; + if (executions === 1) { + throw new Error("Boom!"); + } else { + return "Success!"; + } + }); + + console.log(`Result: ${result}`); +} + +main(); +``` +will output +``` +Job ABC123 failed: Error: Boom! +Retrying job ABC123 in 25ms! +Now retrying ABC123 +Result: Success! +``` +To re-run your job, simply return an integer from the `'failed'` event handler. The number returned is how many milliseconds to wait before retrying it. Return `0` to retry it immediately. + +**IMPORTANT:** When you ask the limiter to retry a job it will not send it back into the queue. It will stay in the `EXECUTING` [state](#jobs-lifecycle) until it succeeds or until you stop retrying it. **This means that it counts as a concurrent job for `maxConcurrent` even while it's just waiting to be retried.** The number of milliseconds to wait ignores your `minTime` settings. + + +### updateSettings() + +```js +limiter.updateSettings(options); +``` +The options are the same as the [limiter constructor](#constructor). + +**Note:** Changes don't affect `SCHEDULED` jobs. + +### incrementReservoir() + +```js +limiter.incrementReservoir(incrementBy); +``` +Returns a promise that returns the new reservoir value. + +### currentReservoir() + +```js +limiter.currentReservoir() +.then((reservoir) => console.log(reservoir)); +``` +Returns a promise that returns the current reservoir value. + +### stop() + +The `stop()` method is used to safely shutdown a limiter. It prevents any new jobs from being added to the limiter and waits for all `EXECUTING` jobs to complete. + +```js +limiter.stop(options) +.then(() => { + console.log("Shutdown completed!") +}); +``` + +`stop()` returns a promise that resolves once all the `EXECUTING` jobs have completed and, if desired, once all non-`EXECUTING` jobs have been dropped. + +| Option | Default | Description | +|--------|---------|-------------| +| `dropWaitingJobs` | `true` | When `true`, drop all the `RECEIVED`, `QUEUED` and `RUNNING` jobs. When `false`, allow those jobs to complete before resolving the Promise returned by this method. | +| `dropErrorMessage` | `This limiter has been stopped.` | The error message used to drop jobs when `dropWaitingJobs` is `true`. | +| `enqueueErrorMessage` | `This limiter has been stopped and cannot accept new jobs.` | The error message used to reject a job added to the limiter after `stop()` has been called. | + +### chain() + +Tasks that are ready to be executed will be added to that other limiter. Suppose you have 2 types of tasks, A and B. They both have their own limiter with their own settings, but both must also follow a global limiter G: +```js +const limiterA = new Bottleneck( /* some settings */ ); +const limiterB = new Bottleneck( /* some different settings */ ); +const limiterG = new Bottleneck( /* some global settings */ ); + +limiterA.chain(limiterG); +limiterB.chain(limiterG); + +// Requests added to limiterA must follow the A and G rate limits. +// Requests added to limiterB must follow the B and G rate limits. +// Requests added to limiterG must follow the G rate limits. +``` + +To unchain, call `limiter.chain(null);`. + +## Group + +The `Group` feature of Bottleneck manages many limiters automatically for you. It creates limiters dynamically and transparently. + +Let's take a DNS server as an example of how Bottleneck can be used. It's a service that sees a lot of abuse and where incoming DNS requests need to be rate limited. Bottleneck is so tiny, it's acceptable to create one limiter for each origin IP, even if it means creating thousands of limiters. The `Group` feature is perfect for this use case. Create one Group and use the origin IP to rate limit each IP independently. Each call with the same key (IP) will be routed to the same underlying limiter. A Group is created like a limiter: + + +```js +const group = new Bottleneck.Group(options); +``` + +The `options` object will be used for every limiter created by the Group. + +The Group is then used with the `.key(str)` method: + +```js +// In this example, the key is an IP +group.key("77.66.54.32").schedule(() => { + /* process the request */ +}); +``` + +#### key() + +* `str` : The key to use. All jobs added with the same key will use the same underlying limiter. *Default: `""`* + +The return value of `.key(str)` is a limiter. If it doesn't already exist, it is generated for you. Calling `key()` is how limiters are created inside a Group. + +Limiters that have been idle for longer than 5 minutes are deleted to avoid memory leaks, this value can be changed by passing a different `timeout` option, in milliseconds. + +#### on("created") + +```js +group.on("created", (limiter, key) => { + console.log("A new limiter was created for key: " + key) + + // Prepare the limiter, for example we'll want to listen to its "error" events! + limiter.on("error", (err) => { + // Handle errors here + }) +}); +``` + +Listening for the `"created"` event is the recommended way to set up a new limiter. Your event handler is executed before `key()` returns the newly created limiter. + +#### updateSettings() + +```js +const group = new Bottleneck.Group({ maxConcurrent: 2, minTime: 250 }); +group.updateSettings({ minTime: 500 }); +``` +After executing the above commands, **new limiters** will be created with `{ maxConcurrent: 2, minTime: 500 }`. + + +#### deleteKey() + +* `str`: The key for the limiter to delete. + +Manually deletes the limiter at the specified key. When using Clustering, the Redis data is immediately deleted and the other Groups in the Cluster will eventually delete their local key automatically, unless it is still being used. + +#### keys() + +Returns an array containing all the keys in the Group. + +#### clusterKeys() + +Same as `group.keys()`, but returns all keys in this Group ID across the Cluster. + +#### limiters() + +```js +const limiters = group.limiters(); + +console.log(limiters); +// [ { key: "some key", limiter: }, { key: "some other key", limiter: } ] +``` + +## Batching + +Some APIs can accept multiple operations in a single call. Bottleneck's Batching feature helps you take advantage of those APIs: +```js +const batcher = new Bottleneck.Batcher({ + maxTime: 1000, + maxSize: 10 +}); + +batcher.on("batch", (batch) => { + console.log(batch); // ["some-data", "some-other-data"] + + // Handle batch here +}); + +batcher.add("some-data"); +batcher.add("some-other-data"); +``` + +`batcher.add()` returns a Promise that resolves once the request has been flushed to a `"batch"` event. + +| Option | Default | Description | +|--------|---------|-------------| +| `maxTime` | `null` (unlimited) | Maximum acceptable time (in milliseconds) a request can have to wait before being flushed to the `"batch"` event. | +| `maxSize` | `null` (unlimited) | Maximum number of requests in a batch. | + +Batching doesn't throttle requests, it only groups them up optimally according to your `maxTime` and `maxSize` settings. + +## Clustering + +Clustering lets many limiters access the same shared state, stored in Redis. Changes to the state are Atomic, Consistent and Isolated (and fully [ACID](https://en.wikipedia.org/wiki/ACID) with the right [Durability](https://redis.io/topics/persistence) configuration), to eliminate any chances of race conditions or state corruption. Your settings, such as `maxConcurrent`, `minTime`, etc., are shared across the whole cluster, which means —for example— that `{ maxConcurrent: 5 }` guarantees no more than 5 jobs can ever run at a time in the entire cluster of limiters. 100% of Bottleneck's features are supported in Clustering mode. Enabling Clustering is as simple as changing a few settings. It's also a convenient way to store or export state for later use. + +Bottleneck will attempt to spread load evenly across limiters. + +### Enabling Clustering + +First, add `redis` or `ioredis` to your application's dependencies: +```bash +# NodeRedis (https://github.com/NodeRedis/node_redis) +npm install --save redis + +# or ioredis (https://github.com/luin/ioredis) +npm install --save ioredis +``` +Then create a limiter or a Group: +```js +const limiter = new Bottleneck({ + /* Some basic options */ + maxConcurrent: 5, + minTime: 500 + id: "my-super-app" // All limiters with the same id will be clustered together + + /* Clustering options */ + datastore: "redis", // or "ioredis" + clearDatastore: false, + clientOptions: { + host: "127.0.0.1", + port: 6379 + + // Redis client options + // Using NodeRedis? See https://github.com/NodeRedis/node_redis#options-object-properties + // Using ioredis? See https://github.com/luin/ioredis/blob/master/API.md#new-redisport-host-options + } +}); +``` + +| Option | Default | Description | +|--------|---------|-------------| +| `datastore` | `"local"` | Where the limiter stores its internal state. The default (`"local"`) keeps the state in the limiter itself. Set it to `"redis"` or `"ioredis"` to enable Clustering. | +| `clearDatastore` | `false` | When set to `true`, on initial startup, the limiter will wipe any existing Bottleneck state data on the Redis db. | +| `clientOptions` | `{}` | This object is passed directly to the redis client library you've selected. | +| `clusterNodes` | `null` | **ioredis only.** When `clusterNodes` is not null, the client will be instantiated by calling `new Redis.Cluster(clusterNodes, clientOptions)` instead of `new Redis(clientOptions)`. | +| `timeout` | `null` (no TTL) | The Redis TTL in milliseconds ([TTL](https://redis.io/commands/ttl)) for the keys created by the limiter. When `timeout` is set, the limiter's state will be automatically removed from Redis after `timeout` milliseconds of inactivity. | +| `Redis` | `null` | Overrides the import/require of the redis/ioredis library. You shouldn't need to set this option unless your application is failing to start due to a failure to require/import the client library. | + +**Note: When using Groups**, the `timeout` option has a default of `300000` milliseconds and the generated limiters automatically receive an `id` with the pattern `${group.id}-${KEY}`. + +**Note:** If you are seeing a runtime error due to the `require()` function not being able to load `redis`/`ioredis`, then directly pass the module as the `Redis` option. Example: +```js +import Redis from "ioredis" + +const limiter = new Bottleneck({ + id: "my-super-app", + datastore: "ioredis", + clientOptions: { host: '12.34.56.78', port: 6379 }, + Redis +}); +``` +Unfortunately, this is a side effect of having to disable inlining, which is necessary to make Bottleneck easy to use in the browser. + +### Important considerations when Clustering + +The first limiter connecting to Redis will store its [constructor options](#constructor) on Redis and all subsequent limiters will be using those settings. You can alter the constructor options used by all the connected limiters by calling `updateSettings()`. The `clearDatastore` option instructs a new limiter to wipe any previous Bottleneck data (for that `id`), including previously stored settings. + +Queued jobs are **NOT** stored on Redis. They are local to each limiter. Exiting the Node.js process will lose those jobs. This is because Bottleneck has no way to propagate the JS code to run a job across a different Node.js process than the one it originated on. Bottleneck doesn't keep track of the queue contents of the limiters on a cluster for performance and reliability reasons. You can use something like [`BeeQueue`](https://github.com/bee-queue/bee-queue) in addition to Bottleneck to get around this limitation. + +Due to the above, functionality relying on the queue length happens purely locally: +- Priorities are local. A higher priority job will run before a lower priority job **on the same limiter**. Another limiter on the cluster might run a lower priority job before our higher priority one. +- Assuming constant priority levels, Bottleneck guarantees that jobs will be run in the order they were received **on the same limiter**. Another limiter on the cluster might run a job received later before ours runs. +- `highWater` and load shedding ([strategies](#strategies)) are per limiter. However, one limiter entering Blocked mode will put the entire cluster in Blocked mode until `penalty` milliseconds have passed. See [Strategies](#strategies). +- The `"empty"` event is triggered when the (local) queue is empty. +- The `"idle"` event is triggered when the (local) queue is empty *and* no jobs are currently running anywhere in the cluster. + +You must work around these limitations in your application code if they are an issue to you. The `publish()` method could be useful here. + +The current design guarantees reliability, is highly performant and lets limiters come and go. Your application can scale up or down, and clients can be disconnected at any time without issues. + +It is **strongly recommended** that you give an `id` to every limiter and Group since it is used to build the name of your limiter's Redis keys! Limiters with the same `id` inside the same Redis db will be sharing the same datastore. + +It is **strongly recommended** that you set an `expiration` (See [Job Options](#job-options)) *on every job*, since that lets the cluster recover from crashed or disconnected clients. Otherwise, a client crashing while executing a job would not be able to tell the cluster to decrease its number of "running" jobs. By using expirations, those lost jobs are automatically cleared after the specified time has passed. Using expirations is essential to keeping a cluster reliable in the face of unpredictable application bugs, network hiccups, and so on. + +Network latency between Node.js and Redis is not taken into account when calculating timings (such as `minTime`). To minimize the impact of latency, Bottleneck only performs a single Redis call per [lifecycle transition](#jobs-lifecycle). Keeping the Redis server close to your limiters will help you get a more consistent experience. Keeping the system time consistent across all clients will also help. + +It is **strongly recommended** to [set up an `"error"` listener](#events) on all your limiters and on your Groups. + +### Clustering Methods + +The `ready()`, `publish()` and `clients()` methods also exist when using the `local` datastore, for code compatibility reasons: code written for `redis`/`ioredis` won't break with `local`. + +#### ready() + +This method returns a promise that resolves once the limiter is connected to Redis. + +As of v2.9.0, it's no longer necessary to wait for `.ready()` to resolve before issuing commands to a limiter. The commands will be queued until the limiter successfully connects. Make sure to listen to the `"error"` event to handle connection errors. + +```js +const limiter = new Bottleneck({/* options */}); + +limiter.on("error", (err) => { + // handle network errors +}); + +limiter.ready() +.then(() => { + // The limiter is ready +}); +``` + +#### publish(message) + +This method broadcasts the `message` string to every limiter in the Cluster. It returns a promise. +```js +const limiter = new Bottleneck({/* options */}); + +limiter.on("message", (msg) => { + console.log(msg); // prints "this is a string" +}); + +limiter.publish("this is a string"); +``` + +To send objects, stringify them first: +```js +limiter.on("message", (msg) => { + console.log(JSON.parse(msg).hello) // prints "world" +}); + +limiter.publish(JSON.stringify({ hello: "world" })); +``` + +#### clients() + +If you need direct access to the redis clients, use `.clients()`: +```js +console.log(limiter.clients()); +// { client: , subscriber: } +``` + +### Additional Clustering information + +- Bottleneck is compatible with [Redis Clusters](https://redis.io/topics/cluster-tutorial), but you must use the `ioredis` datastore and the `clusterNodes` option. +- Bottleneck is compatible with Redis Sentinel, but you must use the `ioredis` datastore. +- Bottleneck's data is stored in Redis keys starting with `b_`. It also uses pubsub channels starting with `b_` It will not interfere with any other data stored on the server. +- Bottleneck loads a few Lua scripts on the Redis server using the `SCRIPT LOAD` command. These scripts only take up a few Kb of memory. Running the `SCRIPT FLUSH` command will cause any connected limiters to experience critical errors until a new limiter connects to Redis and loads the scripts again. +- The Lua scripts are highly optimized and designed to use as few resources as possible. + +### Managing Redis Connections + +Bottleneck needs to create 2 Redis Clients to function, one for normal operations and one for pubsub subscriptions. These 2 clients are kept in a `Bottleneck.RedisConnection` (NodeRedis) or a `Bottleneck.IORedisConnection` (ioredis) object, referred to as the Connection object. + +By default, every Group and every standalone limiter (a limiter not created by a Group) will create their own Connection object, but it is possible to manually control this behavior. In this example, every Group and limiter is sharing the same Connection object and therefore the same 2 clients: +```js +const connection = new Bottleneck.RedisConnection({ + clientOptions: {/* NodeRedis/ioredis options */} + // ioredis also accepts `clusterNodes` here +}); + + +const limiter = new Bottleneck({ connection: connection }); +const group = new Bottleneck.Group({ connection: connection }); +``` +You can access and reuse the Connection object of any Group or limiter: +```js +const group = new Bottleneck.Group({ connection: limiter.connection }); +``` +When a Connection object is created manually, the connectivity `"error"` events are emitted on the Connection itself. +```js +connection.on("error", (err) => { /* handle connectivity errors here */ }); +``` +If you already have a NodeRedis/ioredis client, you can ask Bottleneck to reuse it, although currently the Connection object will still create a second client for pubsub operations: +```js +import Redis from "redis"; +const client = new Redis.createClient({/* options */}); + +const connection = new Bottleneck.RedisConnection({ + // `clientOptions` and `clusterNodes` will be ignored since we're passing a raw client + client: client +}); + +const limiter = new Bottleneck({ connection: connection }); +const group = new Bottleneck.Group({ connection: connection }); +``` +Depending on your application, using more clients can improve performance. + +Use the `disconnect(flush)` method to close the Redis clients. +```js +limiter.disconnect(); +group.disconnect(); +``` +If you created the Connection object manually, you need to call `connection.disconnect()` instead, for safety reasons. + +## Debugging your application + +Debugging complex scheduling logic can be difficult, especially when priorities, weights, and network latency all interact with one another. + +If your application is not behaving as expected, start by making sure you're catching `"error"` [events emitted](#events) by your limiters and your Groups. Those errors are most likely uncaught exceptions from your application code. + +Make sure you've read the ['Gotchas'](#gotchas) section. + +To see exactly what a limiter is doing in real time, listen to the `"debug"` event. It contains detailed information about how the limiter is executing your code. Adding [job IDs](#job-options) to all your jobs makes the debug output more readable. + +When Bottleneck has to fail one of your jobs, it does so by using `BottleneckError` objects. This lets you tell those errors apart from your own code's errors: +```js +limiter.schedule(fn) +.then((result) => { /* ... */ } ) +.catch((error) => { + if (error instanceof Bottleneck.BottleneckError) { + /* ... */ + } +}); +``` + +## Upgrading to v2 + +The internal algorithms essentially haven't changed from v1, but many small changes to the interface were made to introduce new features. + +All the breaking changes: +- Bottleneck v2 requires Node 6+ or a modern browser. Use `require("bottleneck/es5")` if you need ES5 support in v2. Bottleneck v1 will continue to use ES5 only. +- The Bottleneck constructor now takes an options object. See [Constructor](#constructor). +- The `Cluster` feature is now called `Group`. This is to distinguish it from the new v2 [Clustering](#clustering) feature. +- The `Group` constructor takes an options object to match the limiter constructor. +- Jobs take an optional options object. See [Job options](#job-options). +- Removed `submitPriority()`, use `submit()` with an options object instead. +- Removed `schedulePriority()`, use `schedule()` with an options object instead. +- The `rejectOnDrop` option is now `true` by default. It can be set to `false` if you wish to retain v1 behavior. However this option is left undocumented as enabling it is considered to be a poor practice. +- Use `null` instead of `0` to indicate an unlimited `maxConcurrent` value. +- Use `null` instead of `-1` to indicate an unlimited `highWater` value. +- Renamed `changeSettings()` to `updateSettings()`, it now returns a promise to indicate completion. It takes the same options object as the constructor. +- Renamed `nbQueued()` to `queued()`. +- Renamed `nbRunning` to `running()`, it now returns its result using a promise. +- Removed `isBlocked()`. +- Changing the Promise library is now done through the options object like any other limiter setting. +- Removed `changePenalty()`, it is now done through the options object like any other limiter setting. +- Removed `changeReservoir()`, it is now done through the options object like any other limiter setting. +- Removed `stopAll()`. Use the new `stop()` method. +- `check()` now accepts an optional `weight` argument, and returns its result using a promise. +- Removed the `Group` `changeTimeout()` method. Instead, pass a `timeout` option when creating a Group. + +Version 2 is more user-friendly and powerful. + +After upgrading your code, please take a minute to read the [Debugging your application](#debugging-your-application) chapter. + + +## Contributing + +This README is always in need of improvements. If wording can be clearer and simpler, please consider forking this repo and submitting a Pull Request, or simply opening an issue. + +Suggestions and bug reports are also welcome. + +To work on the Bottleneck code, simply clone the repo, makes your changes to the files located in `src/` only, then run `./scripts/build.sh && npm test` to ensure that everything is set up correctly. + +To speed up compilation time during development, run `./scripts/build.sh dev` instead. Make sure to build and test without `dev` before submitting a PR. + +The tests must also pass in Clustering mode and using the ES5 bundle. You'll need a Redis server running locally (latency needs to be minimal to run the tests). If the server isn't using the default hostname and port, you can set those in the `.env` file. Then run `./scripts/build.sh && npm run test-all`. + +All contributions are appreciated and will be considered. + +[license-url]: https://github.com/SGrondin/bottleneck/blob/master/LICENSE + +[npm-url]: https://www.npmjs.com/package/bottleneck +[npm-license]: https://img.shields.io/npm/l/bottleneck.svg?style=flat +[npm-version]: https://img.shields.io/npm/v/bottleneck.svg?style=flat +[npm-downloads]: https://img.shields.io/npm/dm/bottleneck.svg?style=flat diff --git a/node_modules/bottleneck/bottleneck.d.ts b/node_modules/bottleneck/bottleneck.d.ts new file mode 100644 index 0000000..3ad20c1 --- /dev/null +++ b/node_modules/bottleneck/bottleneck.d.ts @@ -0,0 +1,629 @@ +declare module "bottleneck" { + namespace Bottleneck { + type ConstructorOptions = { + /** + * How many jobs can be running at the same time. + */ + readonly maxConcurrent?: number | null; + /** + * How long to wait after launching a job before launching another one. + */ + readonly minTime?: number | null; + /** + * How long can the queue get? When the queue length exceeds that value, the selected `strategy` is executed to shed the load. + */ + readonly highWater?: number | null; + /** + * Which strategy to use if the queue gets longer than the high water mark. + */ + readonly strategy?: Bottleneck.Strategy | null; + /** + * The `penalty` value used by the `Bottleneck.strategy.BLOCK` strategy. + */ + readonly penalty?: number | null; + /** + * How many jobs can be executed before the limiter stops executing jobs. If `reservoir` reaches `0`, no jobs will be executed until it is no longer `0`. + */ + readonly reservoir?: number | null; + /** + * Every `reservoirRefreshInterval` milliseconds, the `reservoir` value will be automatically reset to `reservoirRefreshAmount`. + */ + readonly reservoirRefreshInterval?: number | null; + /** + * The value to reset `reservoir` to when `reservoirRefreshInterval` is in use. + */ + readonly reservoirRefreshAmount?: number | null; + /** + * The increment applied to `reservoir` when `reservoirIncreaseInterval` is in use. + */ + readonly reservoirIncreaseAmount?: number | null; + /** + * Every `reservoirIncreaseInterval` milliseconds, the `reservoir` value will be automatically incremented by `reservoirIncreaseAmount`. + */ + readonly reservoirIncreaseInterval?: number | null; + /** + * The maximum value that `reservoir` can reach when `reservoirIncreaseInterval` is in use. + */ + readonly reservoirIncreaseMaximum?: number | null; + /** + * Optional identifier + */ + readonly id?: string | null; + /** + * Set to true to leave your failed jobs hanging instead of failing them. + */ + readonly rejectOnDrop?: boolean | null; + /** + * Set to true to keep track of done jobs with counts() and jobStatus(). Uses more memory. + */ + readonly trackDoneStatus?: boolean | null; + /** + * Where the limiter stores its internal state. The default (`local`) keeps the state in the limiter itself. Set it to `redis` to enable Clustering. + */ + readonly datastore?: string | null; + /** + * Override the Promise library used by Bottleneck. + */ + readonly Promise?: any; + /** + * This object is passed directly to the redis client library you've selected. + */ + readonly clientOptions?: any; + /** + * **ioredis only.** When `clusterNodes` is not null, the client will be instantiated by calling `new Redis.Cluster(clusterNodes, clientOptions)`. + */ + readonly clusterNodes?: any; + /** + * An existing Bottleneck.RedisConnection or Bottleneck.IORedisConnection object to use. + * If using, `datastore`, `clientOptions` and `clusterNodes` will be ignored. + */ + /** + * Optional Redis/IORedis library from `require('ioredis')` or equivalent. If not, Bottleneck will attempt to require Redis/IORedis at runtime. + */ + readonly Redis?: any; + /** + * Bottleneck connection object created from `new Bottleneck.RedisConnection` or `new Bottleneck.IORedisConnection`. + */ + readonly connection?: Bottleneck.RedisConnection | Bottleneck.IORedisConnection | null; + /** + * When set to `true`, on initial startup, the limiter will wipe any existing Bottleneck state data on the Redis db. + */ + readonly clearDatastore?: boolean | null; + /** + * The Redis TTL in milliseconds for the keys created by the limiter. When `timeout` is set, the limiter's state will be automatically removed from Redis after timeout milliseconds of inactivity. Note: timeout is 300000 (5 minutes) by default when using a Group. + */ + readonly timeout?: number | null; + + [propName: string]: any; + }; + type JobOptions = { + /** + * A priority between `0` and `9`. A job with a priority of `4` will _always_ be executed before a job with a priority of `5`. + */ + readonly priority?: number | null; + /** + * Must be an integer equal to or higher than `0`. The `weight` is what increases the number of running jobs (up to `maxConcurrent`, if using) and decreases the `reservoir` value (if using). + */ + readonly weight?: number | null; + /** + * The number milliseconds a job has to finish. Jobs that take longer than their `expiration` will be failed with a `BottleneckError`. + */ + readonly expiration?: number | null; + /** + * Optional identifier, helps with debug output. + */ + readonly id?: string | null; + }; + type StopOptions = { + /** + * When `true`, drop all the RECEIVED, QUEUED and RUNNING jobs. When `false`, allow those jobs to complete before resolving the Promise returned by this method. + */ + readonly dropWaitingJobs?: boolean | null; + /** + * The error message used to drop jobs when `dropWaitingJobs` is `true`. + */ + readonly dropErrorMessage?: string | null; + /** + * The error message used to reject a job added to the limiter after `stop()` has been called. + */ + readonly enqueueErrorMessage?: string | null; + }; + type Callback = (err: any, result: T) => void; + type ClientsList = { client?: any; subscriber?: any }; + type GroupLimiterPair = { key: string; limiter: Bottleneck }; + interface Strategy {} + + type EventInfo = { + readonly args: any[]; + readonly options: { + readonly id: string; + readonly priority: number; + readonly weight: number; + readonly expiration?: number; + }; + }; + type EventInfoDropped = EventInfo & { + readonly task: Function; + readonly promise: Promise; + }; + type EventInfoQueued = EventInfo & { + readonly reachedHWM: boolean; + readonly blocked: boolean; + }; + type EventInfoRetryable = EventInfo & { readonly retryCount: number; }; + + enum Status { + RECEIVED = "RECEIVED", + QUEUED = "QUEUED", + RUNNING = "RUNNING", + EXECUTING = "EXECUTING", + DONE = "DONE" + } + type Counts = { + RECEIVED: number, + QUEUED: number, + RUNNING: number, + EXECUTING: number, + DONE?: number + }; + + type RedisConnectionOptions = { + /** + * This object is passed directly to NodeRedis' createClient() method. + */ + readonly clientOptions?: any; + /** + * An existing NodeRedis client to use. If using, `clientOptions` will be ignored. + */ + readonly client?: any; + /** + * Optional Redis library from `require('redis')` or equivalent. If not, Bottleneck will attempt to require Redis at runtime. + */ + readonly Redis?: any; + }; + + type IORedisConnectionOptions = { + /** + * This object is passed directly to ioredis' constructor method. + */ + readonly clientOptions?: any; + /** + * When `clusterNodes` is not null, the client will be instantiated by calling `new Redis.Cluster(clusterNodes, clientOptions)`. + */ + readonly clusterNodes?: any; + /** + * An existing ioredis client to use. If using, `clientOptions` and `clusterNodes` will be ignored. + */ + readonly client?: any; + /** + * Optional IORedis library from `require('ioredis')` or equivalent. If not, Bottleneck will attempt to require IORedis at runtime. + */ + readonly Redis?: any; + }; + + type BatcherOptions = { + /** + * Maximum acceptable time (in milliseconds) a request can have to wait before being flushed to the `"batch"` event. + */ + readonly maxTime?: number | null; + /** + * Maximum number of requests in a batch. + */ + readonly maxSize?: number | null; + }; + + class BottleneckError extends Error { + } + + class RedisConnection { + constructor(options?: Bottleneck.RedisConnectionOptions); + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: "error", fn: (error: any) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: "error", fn: (error: any) => void): void; + + /** + * Waits until the connection is ready and returns the raw Node_Redis clients. + */ + ready(): Promise; + + /** + * Close the redis clients. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + } + + class IORedisConnection { + constructor(options?: Bottleneck.IORedisConnectionOptions); + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: "error", fn: (error: any) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: "error", fn: (error: any) => void): void; + + /** + * Waits until the connection is ready and returns the raw ioredis clients. + */ + ready(): Promise; + + /** + * Close the redis clients. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + } + + class Batcher { + constructor(options?: Bottleneck.BatcherOptions); + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: string, fn: Function): void; + on(name: "error", fn: (error: any) => void): void; + on(name: "batch", fn: (batch: any[]) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: string, fn: Function): void; + once(name: "error", fn: (error: any) => void): void; + once(name: "batch", fn: (batch: any[]) => void): void; + + /** + * Add a request to the Batcher. Batches are flushed to the "batch" event. + */ + add(data: any): Promise; + } + + class Group { + constructor(options?: Bottleneck.ConstructorOptions); + + id: string; + datastore: string; + connection?: Bottleneck.RedisConnection | Bottleneck.IORedisConnection; + + /** + * Returns the limiter for the specified key. + * @param str - The limiter key. + */ + key(str: string): Bottleneck; + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: string, fn: Function): void; + on(name: "error", fn: (error: any) => void): void; + on(name: "created", fn: (limiter: Bottleneck, key: string) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: string, fn: Function): void; + once(name: "error", fn: (error: any) => void): void; + once(name: "created", fn: (limiter: Bottleneck, key: string) => void): void; + + /** + * Removes all registered event listeners. + * @param name - The optional event name to remove listeners from. + */ + removeAllListeners(name?: string): void; + + /** + * Updates the group settings. + * @param options - The new settings. + */ + updateSettings(options: Bottleneck.ConstructorOptions): void; + + /** + * Deletes the limiter for the given key. + * Returns true if a key was deleted. + * @param str - The key + */ + deleteKey(str: string): Promise; + + /** + * Disconnects the underlying redis clients, unless the Group was created with the `connection` option. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + + /** + * Returns all the key-limiter pairs. + */ + limiters(): Bottleneck.GroupLimiterPair[]; + + /** + * Returns all Group keys in the local instance + */ + keys(): string[]; + + /** + * Returns all Group keys in the Cluster + */ + clusterKeys(): Promise; + } + + class Events { + constructor(object: Object); + + /** + * Returns the number of limiters for the event name + * @param name - The event name. + */ + listenerCount(name: string): number; + + /** + * Returns a promise with the first non-null/non-undefined result from a listener + * @param name - The event name. + * @param args - The arguments to pass to the event listeners. + */ + trigger(name: string, ...args: any[]): Promise; + } + } + + class Bottleneck { + public static readonly strategy: { + /** + * When adding a new job to a limiter, if the queue length reaches `highWater`, drop the oldest job with the lowest priority. This is useful when jobs that have been waiting for too long are not important anymore. If all the queued jobs are more important (based on their `priority` value) than the one being added, it will not be added. + */ + readonly LEAK: Bottleneck.Strategy; + /** + * Same as `LEAK`, except it will only drop jobs that are less important than the one being added. If all the queued jobs are as or more important than the new one, it will not be added. + */ + readonly OVERFLOW_PRIORITY: Bottleneck.Strategy; + /** + * When adding a new job to a limiter, if the queue length reaches `highWater`, do not add the new job. This strategy totally ignores priority levels. + */ + readonly OVERFLOW: Bottleneck.Strategy; + /** + * When adding a new job to a limiter, if the queue length reaches `highWater`, the limiter falls into "blocked mode". All queued jobs are dropped and no new jobs will be accepted until the limiter unblocks. It will unblock after `penalty` milliseconds have passed without receiving a new job. `penalty` is equal to `15 * minTime` (or `5000` if `minTime` is `0`) by default and can be changed by calling `changePenalty()`. This strategy is ideal when bruteforce attacks are to be expected. This strategy totally ignores priority levels. + */ + readonly BLOCK: Bottleneck.Strategy; + }; + + constructor(options?: Bottleneck.ConstructorOptions); + + id: string; + datastore: string; + connection?: Bottleneck.RedisConnection | Bottleneck.IORedisConnection; + + /** + * Returns a promise which will be resolved once the limiter is ready to accept jobs + * or rejected if it fails to start up. + */ + ready(): Promise; + + /** + * Returns a datastore-specific object of redis clients. + */ + clients(): Bottleneck.ClientsList; + + /** + * Returns the name of the Redis pubsub channel used for this limiter + */ + channel(): string; + + /** + * Disconnects the underlying redis clients, unless the limiter was created with the `connection` option. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + + /** + * Broadcast a string to every limiter in the Cluster. + */ + publish(message: string): Promise; + + /** + * Returns an object with the current number of jobs per status. + */ + counts(): Bottleneck.Counts; + + /** + * Returns the status of the job with the provided job id. + */ + jobStatus(id: string): Bottleneck.Status; + + /** + * Returns the status of the job with the provided job id. + */ + jobs(status?: Bottleneck.Status): string[]; + + /** + * Returns the number of requests queued. + * @param priority - Returns the number of requests queued with the specified priority. + */ + queued(priority?: number): number; + + /** + * Returns the number of requests queued across the Cluster. + */ + clusterQueued(): Promise; + + /** + * Returns whether there are any jobs currently in the queue or in the process of being added to the queue. + */ + empty(): boolean; + + /** + * Returns the total weight of jobs in a RUNNING or EXECUTING state in the Cluster. + */ + running(): Promise; + + /** + * Returns the total weight of jobs in a DONE state in the Cluster. + */ + done(): Promise; + + /** + * If a request was added right now, would it be run immediately? + * @param weight - The weight of the request + */ + check(weight?: number): Promise; + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: "error", fn: (error: any) => void): void; + on(name: "empty", fn: () => void): void; + on(name: "idle", fn: () => void): void; + on(name: "depleted", fn: (empty: boolean) => void): void; + on(name: "message", fn: (message: string) => void): void; + on(name: "debug", fn: (message: string, info: any) => void): void; + on(name: "dropped", fn: (dropped: Bottleneck.EventInfoDropped) => void): void; + on(name: "received", fn: (info: Bottleneck.EventInfo) => void): void; + on(name: "queued", fn: (info: Bottleneck.EventInfoQueued) => void): void; + on(name: "scheduled", fn: (info: Bottleneck.EventInfo) => void): void; + on(name: "executing", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + on(name: "failed", fn: (error: any, info: Bottleneck.EventInfoRetryable) => Promise | number | void | null): void; + on(name: "retry", fn: (message: string, info: Bottleneck.EventInfoRetryable) => void): void; + on(name: "done", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: "error", fn: (error: any) => void): void; + once(name: "empty", fn: () => void): void; + once(name: "idle", fn: () => void): void; + once(name: "depleted", fn: (empty: boolean) => void): void; + once(name: "message", fn: (message: string) => void): void; + once(name: "debug", fn: (message: string, info: any) => void): void; + once(name: "dropped", fn: (dropped: Bottleneck.EventInfoDropped) => void): void; + once(name: "received", fn: (info: Bottleneck.EventInfo) => void): void; + once(name: "queued", fn: (info: Bottleneck.EventInfoQueued) => void): void; + once(name: "scheduled", fn: (info: Bottleneck.EventInfo) => void): void; + once(name: "executing", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + once(name: "failed", fn: (error: any, info: Bottleneck.EventInfoRetryable) => Promise | number | void | null): void; + once(name: "retry", fn: (message: string, info: Bottleneck.EventInfoRetryable) => void): void; + once(name: "done", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + + /** + * Removes all registered event listeners. + * @param name - The optional event name to remove listeners from. + */ + removeAllListeners(name?: string): void; + + /** + * Changes the settings for future requests. + * @param options - The new settings. + */ + updateSettings(options?: Bottleneck.ConstructorOptions): Bottleneck; + + /** + * Adds to the reservoir count and returns the new value. + */ + incrementReservoir(incrementBy: number): Promise; + + /** + * The `stop()` method is used to safely shutdown a limiter. It prevents any new jobs from being added to the limiter and waits for all Executing jobs to complete. + */ + stop(options?: Bottleneck.StopOptions): Promise; + + /** + * Returns the current reservoir count, if any. + */ + currentReservoir(): Promise; + + /** + * Chain this limiter to another. + * @param limiter - The limiter that requests to this limiter must also follow. + */ + chain(limiter?: Bottleneck): Bottleneck; + + wrap(fn: () => PromiseLike): (() => Promise) & { withOptions: (options: Bottleneck.JobOptions) => Promise; }; + wrap(fn: (arg1: A1) => PromiseLike): ((arg1: A1) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2) => PromiseLike): ((arg1: A1, arg2: A2) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3, arg4: A4) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9) => Promise; }; + wrap(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10) => PromiseLike): ((arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10) => Promise) & { withOptions: (options: Bottleneck.JobOptions, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10) => Promise; }; + + submit(fn: (callback: Bottleneck.Callback) => void, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, callback: Bottleneck.Callback) => void, arg1: A1, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, callback: Bottleneck.Callback): void; + submit(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10, callback: Bottleneck.Callback): void; + + submit(options: Bottleneck.JobOptions, fn: (callback: Bottleneck.Callback) => void, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, callback: Bottleneck.Callback) => void, arg1: A1, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, callback: Bottleneck.Callback): void; + submit(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10, callback: Bottleneck.Callback) => void, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10, callback: Bottleneck.Callback): void; + + schedule(fn: () => PromiseLike): Promise; + schedule(fn: (arg1: A1) => PromiseLike, arg1: A1): Promise; + schedule(fn: (arg1: A1, arg2: A2) => PromiseLike, arg1: A1, arg2: A2): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3) => PromiseLike, arg1: A1, arg2: A2, arg3: A3): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9): Promise; + schedule(fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10): Promise; + + schedule(options: Bottleneck.JobOptions, fn: () => PromiseLike): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1) => PromiseLike, arg1: A1): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2) => PromiseLike, arg1: A1, arg2: A2): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3) => PromiseLike, arg1: A1, arg2: A2, arg3: A3): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9): Promise; + schedule(options: Bottleneck.JobOptions, fn: (arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10) => PromiseLike, arg1: A1, arg2: A2, arg3: A3, arg4: A4, arg5: A5, arg6: A6, arg7: A7, arg8: A8, arg9: A9, arg10: A10): Promise; + } + + export default Bottleneck; +} + diff --git a/node_modules/bottleneck/bottleneck.d.ts.ejs b/node_modules/bottleneck/bottleneck.d.ts.ejs new file mode 100644 index 0000000..18f19ad --- /dev/null +++ b/node_modules/bottleneck/bottleneck.d.ts.ejs @@ -0,0 +1,588 @@ +declare module "bottleneck" { + namespace Bottleneck { + type ConstructorOptions = { + /** + * How many jobs can be running at the same time. + */ + readonly maxConcurrent?: number | null; + /** + * How long to wait after launching a job before launching another one. + */ + readonly minTime?: number | null; + /** + * How long can the queue get? When the queue length exceeds that value, the selected `strategy` is executed to shed the load. + */ + readonly highWater?: number | null; + /** + * Which strategy to use if the queue gets longer than the high water mark. + */ + readonly strategy?: Bottleneck.Strategy | null; + /** + * The `penalty` value used by the `Bottleneck.strategy.BLOCK` strategy. + */ + readonly penalty?: number | null; + /** + * How many jobs can be executed before the limiter stops executing jobs. If `reservoir` reaches `0`, no jobs will be executed until it is no longer `0`. + */ + readonly reservoir?: number | null; + /** + * Every `reservoirRefreshInterval` milliseconds, the `reservoir` value will be automatically reset to `reservoirRefreshAmount`. + */ + readonly reservoirRefreshInterval?: number | null; + /** + * The value to reset `reservoir` to when `reservoirRefreshInterval` is in use. + */ + readonly reservoirRefreshAmount?: number | null; + /** + * The increment applied to `reservoir` when `reservoirIncreaseInterval` is in use. + */ + readonly reservoirIncreaseAmount?: number | null; + /** + * Every `reservoirIncreaseInterval` milliseconds, the `reservoir` value will be automatically incremented by `reservoirIncreaseAmount`. + */ + readonly reservoirIncreaseInterval?: number | null; + /** + * The maximum value that `reservoir` can reach when `reservoirIncreaseInterval` is in use. + */ + readonly reservoirIncreaseMaximum?: number | null; + /** + * Optional identifier + */ + readonly id?: string | null; + /** + * Set to true to leave your failed jobs hanging instead of failing them. + */ + readonly rejectOnDrop?: boolean | null; + /** + * Set to true to keep track of done jobs with counts() and jobStatus(). Uses more memory. + */ + readonly trackDoneStatus?: boolean | null; + /** + * Where the limiter stores its internal state. The default (`local`) keeps the state in the limiter itself. Set it to `redis` to enable Clustering. + */ + readonly datastore?: string | null; + /** + * Override the Promise library used by Bottleneck. + */ + readonly Promise?: any; + /** + * This object is passed directly to the redis client library you've selected. + */ + readonly clientOptions?: any; + /** + * **ioredis only.** When `clusterNodes` is not null, the client will be instantiated by calling `new Redis.Cluster(clusterNodes, clientOptions)`. + */ + readonly clusterNodes?: any; + /** + * An existing Bottleneck.RedisConnection or Bottleneck.IORedisConnection object to use. + * If using, `datastore`, `clientOptions` and `clusterNodes` will be ignored. + */ + /** + * Optional Redis/IORedis library from `require('ioredis')` or equivalent. If not, Bottleneck will attempt to require Redis/IORedis at runtime. + */ + readonly Redis?: any; + /** + * Bottleneck connection object created from `new Bottleneck.RedisConnection` or `new Bottleneck.IORedisConnection`. + */ + readonly connection?: Bottleneck.RedisConnection | Bottleneck.IORedisConnection | null; + /** + * When set to `true`, on initial startup, the limiter will wipe any existing Bottleneck state data on the Redis db. + */ + readonly clearDatastore?: boolean | null; + /** + * The Redis TTL in milliseconds for the keys created by the limiter. When `timeout` is set, the limiter's state will be automatically removed from Redis after timeout milliseconds of inactivity. Note: timeout is 300000 (5 minutes) by default when using a Group. + */ + readonly timeout?: number | null; + + [propName: string]: any; + }; + type JobOptions = { + /** + * A priority between `0` and `9`. A job with a priority of `4` will _always_ be executed before a job with a priority of `5`. + */ + readonly priority?: number | null; + /** + * Must be an integer equal to or higher than `0`. The `weight` is what increases the number of running jobs (up to `maxConcurrent`, if using) and decreases the `reservoir` value (if using). + */ + readonly weight?: number | null; + /** + * The number milliseconds a job has to finish. Jobs that take longer than their `expiration` will be failed with a `BottleneckError`. + */ + readonly expiration?: number | null; + /** + * Optional identifier, helps with debug output. + */ + readonly id?: string | null; + }; + type StopOptions = { + /** + * When `true`, drop all the RECEIVED, QUEUED and RUNNING jobs. When `false`, allow those jobs to complete before resolving the Promise returned by this method. + */ + readonly dropWaitingJobs?: boolean | null; + /** + * The error message used to drop jobs when `dropWaitingJobs` is `true`. + */ + readonly dropErrorMessage?: string | null; + /** + * The error message used to reject a job added to the limiter after `stop()` has been called. + */ + readonly enqueueErrorMessage?: string | null; + }; + type Callback = (err: any, result: T) => void; + type ClientsList = { client?: any; subscriber?: any }; + type GroupLimiterPair = { key: string; limiter: Bottleneck }; + interface Strategy {} + + type EventInfo = { + readonly args: any[]; + readonly options: { + readonly id: string; + readonly priority: number; + readonly weight: number; + readonly expiration?: number; + }; + }; + type EventInfoDropped = EventInfo & { + readonly task: Function; + readonly promise: Promise; + }; + type EventInfoQueued = EventInfo & { + readonly reachedHWM: boolean; + readonly blocked: boolean; + }; + type EventInfoRetryable = EventInfo & { readonly retryCount: number; }; + + enum Status { + RECEIVED = "RECEIVED", + QUEUED = "QUEUED", + RUNNING = "RUNNING", + EXECUTING = "EXECUTING", + DONE = "DONE" + } + type Counts = { + RECEIVED: number, + QUEUED: number, + RUNNING: number, + EXECUTING: number, + DONE?: number + }; + + type RedisConnectionOptions = { + /** + * This object is passed directly to NodeRedis' createClient() method. + */ + readonly clientOptions?: any; + /** + * An existing NodeRedis client to use. If using, `clientOptions` will be ignored. + */ + readonly client?: any; + /** + * Optional Redis library from `require('redis')` or equivalent. If not, Bottleneck will attempt to require Redis at runtime. + */ + readonly Redis?: any; + }; + + type IORedisConnectionOptions = { + /** + * This object is passed directly to ioredis' constructor method. + */ + readonly clientOptions?: any; + /** + * When `clusterNodes` is not null, the client will be instantiated by calling `new Redis.Cluster(clusterNodes, clientOptions)`. + */ + readonly clusterNodes?: any; + /** + * An existing ioredis client to use. If using, `clientOptions` and `clusterNodes` will be ignored. + */ + readonly client?: any; + /** + * Optional IORedis library from `require('ioredis')` or equivalent. If not, Bottleneck will attempt to require IORedis at runtime. + */ + readonly Redis?: any; + }; + + type BatcherOptions = { + /** + * Maximum acceptable time (in milliseconds) a request can have to wait before being flushed to the `"batch"` event. + */ + readonly maxTime?: number | null; + /** + * Maximum number of requests in a batch. + */ + readonly maxSize?: number | null; + }; + + class BottleneckError extends Error { + } + + class RedisConnection { + constructor(options?: Bottleneck.RedisConnectionOptions); + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: "error", fn: (error: any) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: "error", fn: (error: any) => void): void; + + /** + * Waits until the connection is ready and returns the raw Node_Redis clients. + */ + ready(): Promise; + + /** + * Close the redis clients. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + } + + class IORedisConnection { + constructor(options?: Bottleneck.IORedisConnectionOptions); + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: "error", fn: (error: any) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: "error", fn: (error: any) => void): void; + + /** + * Waits until the connection is ready and returns the raw ioredis clients. + */ + ready(): Promise; + + /** + * Close the redis clients. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + } + + class Batcher { + constructor(options?: Bottleneck.BatcherOptions); + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: string, fn: Function): void; + on(name: "error", fn: (error: any) => void): void; + on(name: "batch", fn: (batch: any[]) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: string, fn: Function): void; + once(name: "error", fn: (error: any) => void): void; + once(name: "batch", fn: (batch: any[]) => void): void; + + /** + * Add a request to the Batcher. Batches are flushed to the "batch" event. + */ + add(data: any): Promise; + } + + class Group { + constructor(options?: Bottleneck.ConstructorOptions); + + id: string; + datastore: string; + connection?: Bottleneck.RedisConnection | Bottleneck.IORedisConnection; + + /** + * Returns the limiter for the specified key. + * @param str - The limiter key. + */ + key(str: string): Bottleneck; + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: string, fn: Function): void; + on(name: "error", fn: (error: any) => void): void; + on(name: "created", fn: (limiter: Bottleneck, key: string) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: string, fn: Function): void; + once(name: "error", fn: (error: any) => void): void; + once(name: "created", fn: (limiter: Bottleneck, key: string) => void): void; + + /** + * Removes all registered event listeners. + * @param name - The optional event name to remove listeners from. + */ + removeAllListeners(name?: string): void; + + /** + * Updates the group settings. + * @param options - The new settings. + */ + updateSettings(options: Bottleneck.ConstructorOptions): void; + + /** + * Deletes the limiter for the given key. + * Returns true if a key was deleted. + * @param str - The key + */ + deleteKey(str: string): Promise; + + /** + * Disconnects the underlying redis clients, unless the Group was created with the `connection` option. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + + /** + * Returns all the key-limiter pairs. + */ + limiters(): Bottleneck.GroupLimiterPair[]; + + /** + * Returns all Group keys in the local instance + */ + keys(): string[]; + + /** + * Returns all Group keys in the Cluster + */ + clusterKeys(): Promise; + } + + class Events { + constructor(object: Object); + + /** + * Returns the number of limiters for the event name + * @param name - The event name. + */ + listenerCount(name: string): number; + + /** + * Returns a promise with the first non-null/non-undefined result from a listener + * @param name - The event name. + * @param args - The arguments to pass to the event listeners. + */ + trigger(name: string, ...args: any[]): Promise; + } + } + + class Bottleneck { + public static readonly strategy: { + /** + * When adding a new job to a limiter, if the queue length reaches `highWater`, drop the oldest job with the lowest priority. This is useful when jobs that have been waiting for too long are not important anymore. If all the queued jobs are more important (based on their `priority` value) than the one being added, it will not be added. + */ + readonly LEAK: Bottleneck.Strategy; + /** + * Same as `LEAK`, except it will only drop jobs that are less important than the one being added. If all the queued jobs are as or more important than the new one, it will not be added. + */ + readonly OVERFLOW_PRIORITY: Bottleneck.Strategy; + /** + * When adding a new job to a limiter, if the queue length reaches `highWater`, do not add the new job. This strategy totally ignores priority levels. + */ + readonly OVERFLOW: Bottleneck.Strategy; + /** + * When adding a new job to a limiter, if the queue length reaches `highWater`, the limiter falls into "blocked mode". All queued jobs are dropped and no new jobs will be accepted until the limiter unblocks. It will unblock after `penalty` milliseconds have passed without receiving a new job. `penalty` is equal to `15 * minTime` (or `5000` if `minTime` is `0`) by default and can be changed by calling `changePenalty()`. This strategy is ideal when bruteforce attacks are to be expected. This strategy totally ignores priority levels. + */ + readonly BLOCK: Bottleneck.Strategy; + }; + + constructor(options?: Bottleneck.ConstructorOptions); + + id: string; + datastore: string; + connection?: Bottleneck.RedisConnection | Bottleneck.IORedisConnection; + + /** + * Returns a promise which will be resolved once the limiter is ready to accept jobs + * or rejected if it fails to start up. + */ + ready(): Promise; + + /** + * Returns a datastore-specific object of redis clients. + */ + clients(): Bottleneck.ClientsList; + + /** + * Returns the name of the Redis pubsub channel used for this limiter + */ + channel(): string; + + /** + * Disconnects the underlying redis clients, unless the limiter was created with the `connection` option. + * @param flush - Write transient data before closing. + */ + disconnect(flush?: boolean): Promise; + + /** + * Broadcast a string to every limiter in the Cluster. + */ + publish(message: string): Promise; + + /** + * Returns an object with the current number of jobs per status. + */ + counts(): Bottleneck.Counts; + + /** + * Returns the status of the job with the provided job id. + */ + jobStatus(id: string): Bottleneck.Status; + + /** + * Returns the status of the job with the provided job id. + */ + jobs(status?: Bottleneck.Status): string[]; + + /** + * Returns the number of requests queued. + * @param priority - Returns the number of requests queued with the specified priority. + */ + queued(priority?: number): number; + + /** + * Returns the number of requests queued across the Cluster. + */ + clusterQueued(): Promise; + + /** + * Returns whether there are any jobs currently in the queue or in the process of being added to the queue. + */ + empty(): boolean; + + /** + * Returns the total weight of jobs in a RUNNING or EXECUTING state in the Cluster. + */ + running(): Promise; + + /** + * Returns the total weight of jobs in a DONE state in the Cluster. + */ + done(): Promise; + + /** + * If a request was added right now, would it be run immediately? + * @param weight - The weight of the request + */ + check(weight?: number): Promise; + + /** + * Register an event listener. + * @param name - The event name. + * @param fn - The callback function. + */ + on(name: "error", fn: (error: any) => void): void; + on(name: "empty", fn: () => void): void; + on(name: "idle", fn: () => void): void; + on(name: "depleted", fn: (empty: boolean) => void): void; + on(name: "message", fn: (message: string) => void): void; + on(name: "debug", fn: (message: string, info: any) => void): void; + on(name: "dropped", fn: (dropped: Bottleneck.EventInfoDropped) => void): void; + on(name: "received", fn: (info: Bottleneck.EventInfo) => void): void; + on(name: "queued", fn: (info: Bottleneck.EventInfoQueued) => void): void; + on(name: "scheduled", fn: (info: Bottleneck.EventInfo) => void): void; + on(name: "executing", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + on(name: "failed", fn: (error: any, info: Bottleneck.EventInfoRetryable) => Promise | number | void | null): void; + on(name: "retry", fn: (message: string, info: Bottleneck.EventInfoRetryable) => void): void; + on(name: "done", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + + /** + * Register an event listener for one event only. + * @param name - The event name. + * @param fn - The callback function. + */ + once(name: "error", fn: (error: any) => void): void; + once(name: "empty", fn: () => void): void; + once(name: "idle", fn: () => void): void; + once(name: "depleted", fn: (empty: boolean) => void): void; + once(name: "message", fn: (message: string) => void): void; + once(name: "debug", fn: (message: string, info: any) => void): void; + once(name: "dropped", fn: (dropped: Bottleneck.EventInfoDropped) => void): void; + once(name: "received", fn: (info: Bottleneck.EventInfo) => void): void; + once(name: "queued", fn: (info: Bottleneck.EventInfoQueued) => void): void; + once(name: "scheduled", fn: (info: Bottleneck.EventInfo) => void): void; + once(name: "executing", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + once(name: "failed", fn: (error: any, info: Bottleneck.EventInfoRetryable) => Promise | number | void | null): void; + once(name: "retry", fn: (message: string, info: Bottleneck.EventInfoRetryable) => void): void; + once(name: "done", fn: (info: Bottleneck.EventInfoRetryable) => void): void; + + /** + * Removes all registered event listeners. + * @param name - The optional event name to remove listeners from. + */ + removeAllListeners(name?: string): void; + + /** + * Changes the settings for future requests. + * @param options - The new settings. + */ + updateSettings(options?: Bottleneck.ConstructorOptions): Bottleneck; + + /** + * Adds to the reservoir count and returns the new value. + */ + incrementReservoir(incrementBy: number): Promise; + + /** + * The `stop()` method is used to safely shutdown a limiter. It prevents any new jobs from being added to the limiter and waits for all Executing jobs to complete. + */ + stop(options?: Bottleneck.StopOptions): Promise; + + /** + * Returns the current reservoir count, if any. + */ + currentReservoir(): Promise; + + /** + * Chain this limiter to another. + * @param limiter - The limiter that requests to this limiter must also follow. + */ + chain(limiter?: Bottleneck): Bottleneck; + + <%_ for (var count of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) { _%> + wrap, A<%= idx %><%_ } _%>>(fn: (<%= Array.apply(null, Array(count)).map((e, i) => i+1).map(i => `arg${i}: A${i}`).join(", ") %>) => PromiseLike): ((<%_ for (var idx = 1; idx <= count; idx++) { _%><%_ if (idx > 1) { %>, <% } %>arg<%= idx %>: A<%= idx %><%_ } _%>) => Promise) & { withOptions: (options: Bottleneck.JobOptions<%_ for (var idx = 1; idx <= count; idx++) { _%>, arg<%= idx %>: A<%= idx %><%_ } _%>) => Promise; }; + <%_ } _%> + + <%_ for (var count of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) { _%> + submit, A<%= idx %><%_ } _%>>(fn: (<%_ for (var idx = 1; idx <= count; idx++) { _%>arg<%= idx %>: A<%= idx %>, <% } _%>callback: Bottleneck.Callback) => void<%_ for (var idx = 1; idx <= count; idx++) { _%>, arg<%= idx %>: A<%= idx %><%_ } _%>, callback: Bottleneck.Callback): void; + <%_ } _%> + + <%_ for (var count of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) { _%> + submit, A<%= idx %><%_ } _%>>(options: Bottleneck.JobOptions, fn: (<%_ for (var idx = 1; idx <= count; idx++) { _%>arg<%= idx %>: A<%= idx %>, <% } _%>callback: Bottleneck.Callback) => void<%_ for (var idx = 1; idx <= count; idx++) { _%>, arg<%= idx %>: A<%= idx %><%_ } _%>, callback: Bottleneck.Callback): void; + <%_ } _%> + + <%_ for (var count of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) { _%> + schedule, A<%= idx %><%_ } _%>>(fn: (<%= Array.apply(null, Array(count)).map((e, i) => i+1).map(i => `arg${i}: A${i}`).join(", ") %>) => PromiseLike<%_ for (var idx = 1; idx <= count; idx++) { _%>, arg<%= idx %>: A<%= idx %><%_ } _%>): Promise; + <%_ } _%> + + <%_ for (var count of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) { _%> + schedule, A<%= idx %><%_ } _%>>(options: Bottleneck.JobOptions, fn: (<%= Array.apply(null, Array(count)).map((e, i) => i+1).map(i => `arg${i}: A${i}`).join(", ") %>) => PromiseLike<%_ for (var idx = 1; idx <= count; idx++) { _%>, arg<%= idx %>: A<%= idx %><%_ } _%>): Promise; + <%_ } _%> + } + + export default Bottleneck; +} diff --git a/node_modules/bottleneck/bower.json b/node_modules/bottleneck/bower.json new file mode 100644 index 0000000..b72e87e --- /dev/null +++ b/node_modules/bottleneck/bower.json @@ -0,0 +1,30 @@ +{ + "name": "bottleneck", + "main": "bottleneck.js", + "version": "2.19.5", + "homepage": "https://github.com/SGrondin/bottleneck", + "authors": [ + "SGrondin " + ], + "description": "Distributed task scheduler and rate limiter", + "moduleType": [ + "globals", + "node" + ], + "keywords": [ + "async", + "rate", + "limiter", + "limiting", + "throttle", + "throttling", + "load", + "ddos" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components" + ] +} diff --git a/node_modules/bottleneck/es5.js b/node_modules/bottleneck/es5.js new file mode 100644 index 0000000..a177b65 --- /dev/null +++ b/node_modules/bottleneck/es5.js @@ -0,0 +1,5064 @@ +/** + * This file contains the full Bottleneck library (MIT) compiled to ES5. + * https://github.com/SGrondin/bottleneck + * It also contains the regenerator-runtime (MIT), necessary for Babel-generated ES5 code to execute promise and async/await code. + * See the following link for Copyright and License information: + * https://github.com/facebook/regenerator/blob/master/packages/regenerator-runtime/runtime.js + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Bottleneck = factory()); +}(this, (function () { 'use strict'; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + function getCjsExportFromNamespace (n) { + return n && n['default'] || n; + } + + var runtime = createCommonjsModule(function (module) { + /** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + !(function(global) { + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + var runtime = global.regeneratorRuntime; + if (runtime) { + { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = module.exports; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + runtime.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + runtime.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator.return) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + })( + // In sloppy mode, unbound `this` refers to the global object, fallback to + // Function constructor if we're in global strict mode. That is sadly a form + // of indirect eval which violates Content Security Policy. + (function() { + return this || (typeof self === "object" && self); + })() || Function("return this")() + ); + }); + + function _typeof(obj) { + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } + } + + function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + + _next(undefined); + }); + }; + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + function isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + + function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); + } + + function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; + } + + function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return _setPrototypeOf(Wrapper, Class); + }; + + return _wrapNativeSuper(Class); + } + + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } + + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); + } + + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); + } + + function _toArray(arr) { + return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); + } + + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + } + + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + + return arr2; + } + } + + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + + function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + } + + function _iterableToArrayLimit(arr, i) { + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); + } + + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + } + + var load = function load(received, defaults) { + var onto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var k, ref, v; + + for (k in defaults) { + v = defaults[k]; + onto[k] = (ref = received[k]) != null ? ref : v; + } + + return onto; + }; + + var overwrite = function overwrite(received, defaults) { + var onto = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var k, v; + + for (k in received) { + v = received[k]; + + if (defaults[k] !== void 0) { + onto[k] = v; + } + } + + return onto; + }; + + var parser = { + load: load, + overwrite: overwrite + }; + + var DLList; + + DLList = + /*#__PURE__*/ + function () { + function DLList(incr, decr) { + _classCallCheck(this, DLList); + + this.incr = incr; + this.decr = decr; + this._first = null; + this._last = null; + this.length = 0; + } + + _createClass(DLList, [{ + key: "push", + value: function push(value) { + var node; + this.length++; + + if (typeof this.incr === "function") { + this.incr(); + } + + node = { + value: value, + prev: this._last, + next: null + }; + + if (this._last != null) { + this._last.next = node; + this._last = node; + } else { + this._first = this._last = node; + } + + return void 0; + } + }, { + key: "shift", + value: function shift() { + var value; + + if (this._first == null) { + return; + } else { + this.length--; + + if (typeof this.decr === "function") { + this.decr(); + } + } + + value = this._first.value; + + if ((this._first = this._first.next) != null) { + this._first.prev = null; + } else { + this._last = null; + } + + return value; + } + }, { + key: "first", + value: function first() { + if (this._first != null) { + return this._first.value; + } + } + }, { + key: "getArray", + value: function getArray() { + var node, ref, results; + node = this._first; + results = []; + + while (node != null) { + results.push((ref = node, node = node.next, ref.value)); + } + + return results; + } + }, { + key: "forEachShift", + value: function forEachShift(cb) { + var node; + node = this.shift(); + + while (node != null) { + cb(node), node = this.shift(); + } + + return void 0; + } + }, { + key: "debug", + value: function debug() { + var node, ref, ref1, ref2, results; + node = this._first; + results = []; + + while (node != null) { + results.push((ref = node, node = node.next, { + value: ref.value, + prev: (ref1 = ref.prev) != null ? ref1.value : void 0, + next: (ref2 = ref.next) != null ? ref2.value : void 0 + })); + } + + return results; + } + }]); + + return DLList; + }(); + + var DLList_1 = DLList; + + var Events; + + Events = + /*#__PURE__*/ + function () { + function Events(instance) { + var _this = this; + + _classCallCheck(this, Events); + + this.instance = instance; + this._events = {}; + + if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) { + throw new Error("An Emitter already exists for this object"); + } + + this.instance.on = function (name, cb) { + return _this._addListener(name, "many", cb); + }; + + this.instance.once = function (name, cb) { + return _this._addListener(name, "once", cb); + }; + + this.instance.removeAllListeners = function () { + var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (name != null) { + return delete _this._events[name]; + } else { + return _this._events = {}; + } + }; + } + + _createClass(Events, [{ + key: "_addListener", + value: function _addListener(name, status, cb) { + var base; + + if ((base = this._events)[name] == null) { + base[name] = []; + } + + this._events[name].push({ + cb: cb, + status: status + }); + + return this.instance; + } + }, { + key: "listenerCount", + value: function listenerCount(name) { + if (this._events[name] != null) { + return this._events[name].length; + } else { + return 0; + } + } + }, { + key: "trigger", + value: function () { + var _trigger = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2(name) { + var _this2 = this; + + var _len, + args, + _key, + e, + promises, + _args2 = arguments; + + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + for (_len = _args2.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = _args2[_key]; + } + + _context2.prev = 1; + + if (name !== "debug") { + this.trigger("debug", "Event triggered: ".concat(name), args); + } + + if (!(this._events[name] == null)) { + _context2.next = 5; + break; + } + + return _context2.abrupt("return"); + + case 5: + this._events[name] = this._events[name].filter(function (listener) { + return listener.status !== "none"; + }); + promises = this._events[name].map( + /*#__PURE__*/ + function () { + var _ref = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee(listener) { + var e, returned; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!(listener.status === "none")) { + _context.next = 2; + break; + } + + return _context.abrupt("return"); + + case 2: + if (listener.status === "once") { + listener.status = "none"; + } + + _context.prev = 3; + returned = typeof listener.cb === "function" ? listener.cb.apply(listener, args) : void 0; + + if (!(typeof (returned != null ? returned.then : void 0) === "function")) { + _context.next = 11; + break; + } + + _context.next = 8; + return returned; + + case 8: + return _context.abrupt("return", _context.sent); + + case 11: + return _context.abrupt("return", returned); + + case 12: + _context.next = 19; + break; + + case 14: + _context.prev = 14; + _context.t0 = _context["catch"](3); + e = _context.t0; + + { + _this2.trigger("error", e); + } + + return _context.abrupt("return", null); + + case 19: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[3, 14]]); + })); + + return function (_x2) { + return _ref.apply(this, arguments); + }; + }()); + _context2.next = 9; + return Promise.all(promises); + + case 9: + _context2.t0 = function (x) { + return x != null; + }; + + return _context2.abrupt("return", _context2.sent.find(_context2.t0)); + + case 13: + _context2.prev = 13; + _context2.t1 = _context2["catch"](1); + e = _context2.t1; + + { + this.trigger("error", e); + } + + return _context2.abrupt("return", null); + + case 18: + case "end": + return _context2.stop(); + } + } + }, _callee2, this, [[1, 13]]); + })); + + function trigger(_x) { + return _trigger.apply(this, arguments); + } + + return trigger; + }() + }]); + + return Events; + }(); + + var Events_1 = Events; + + var DLList$1, Events$1, Queues; + DLList$1 = DLList_1; + Events$1 = Events_1; + + Queues = + /*#__PURE__*/ + function () { + function Queues(num_priorities) { + _classCallCheck(this, Queues); + + var i; + this.Events = new Events$1(this); + this._length = 0; + + this._lists = function () { + var _this = this; + + var j, ref, results; + results = []; + + for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) { + results.push(new DLList$1(function () { + return _this.incr(); + }, function () { + return _this.decr(); + })); + } + + return results; + }.call(this); + } + + _createClass(Queues, [{ + key: "incr", + value: function incr() { + if (this._length++ === 0) { + return this.Events.trigger("leftzero"); + } + } + }, { + key: "decr", + value: function decr() { + if (--this._length === 0) { + return this.Events.trigger("zero"); + } + } + }, { + key: "push", + value: function push(job) { + return this._lists[job.options.priority].push(job); + } + }, { + key: "queued", + value: function queued(priority) { + if (priority != null) { + return this._lists[priority].length; + } else { + return this._length; + } + } + }, { + key: "shiftAll", + value: function shiftAll(fn) { + return this._lists.forEach(function (list) { + return list.forEachShift(fn); + }); + } + }, { + key: "getFirst", + value: function getFirst() { + var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._lists; + var j, len, list; + + for (j = 0, len = arr.length; j < len; j++) { + list = arr[j]; + + if (list.length > 0) { + return list; + } + } + + return []; + } + }, { + key: "shiftLastFrom", + value: function shiftLastFrom(priority) { + return this.getFirst(this._lists.slice(priority).reverse()).shift(); + } + }]); + + return Queues; + }(); + + var Queues_1 = Queues; + + var BottleneckError; + + BottleneckError = + /*#__PURE__*/ + function (_Error) { + _inherits(BottleneckError, _Error); + + function BottleneckError() { + _classCallCheck(this, BottleneckError); + + return _possibleConstructorReturn(this, _getPrototypeOf(BottleneckError).apply(this, arguments)); + } + + return BottleneckError; + }(_wrapNativeSuper(Error)); + + var BottleneckError_1 = BottleneckError; + + var BottleneckError$1, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser$1; + NUM_PRIORITIES = 10; + DEFAULT_PRIORITY = 5; + parser$1 = parser; + BottleneckError$1 = BottleneckError_1; + + Job = + /*#__PURE__*/ + function () { + function Job(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) { + var _this = this; + + _classCallCheck(this, Job); + + this.task = task; + this.args = args; + this.rejectOnDrop = rejectOnDrop; + this.Events = Events; + this._states = _states; + this.Promise = Promise; + this.options = parser$1.load(options, jobDefaults); + this.options.priority = this._sanitizePriority(this.options.priority); + + if (this.options.id === jobDefaults.id) { + this.options.id = "".concat(this.options.id, "-").concat(this._randomIndex()); + } + + this.promise = new this.Promise(function (_resolve, _reject) { + _this._resolve = _resolve; + _this._reject = _reject; + }); + this.retryCount = 0; + } + + _createClass(Job, [{ + key: "_sanitizePriority", + value: function _sanitizePriority(priority) { + var sProperty; + sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority; + + if (sProperty < 0) { + return 0; + } else if (sProperty > NUM_PRIORITIES - 1) { + return NUM_PRIORITIES - 1; + } else { + return sProperty; + } + } + }, { + key: "_randomIndex", + value: function _randomIndex() { + return Math.random().toString(36).slice(2); + } + }, { + key: "doDrop", + value: function doDrop() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + error = _ref.error, + _ref$message = _ref.message, + message = _ref$message === void 0 ? "This job has been dropped by Bottleneck" : _ref$message; + + if (this._states.remove(this.options.id)) { + if (this.rejectOnDrop) { + this._reject(error != null ? error : new BottleneckError$1(message)); + } + + this.Events.trigger("dropped", { + args: this.args, + options: this.options, + task: this.task, + promise: this.promise + }); + return true; + } else { + return false; + } + } + }, { + key: "_assertStatus", + value: function _assertStatus(expected) { + var status; + status = this._states.jobStatus(this.options.id); + + if (!(status === expected || expected === "DONE" && status === null)) { + throw new BottleneckError$1("Invalid job status ".concat(status, ", expected ").concat(expected, ". Please open an issue at https://github.com/SGrondin/bottleneck/issues")); + } + } + }, { + key: "doReceive", + value: function doReceive() { + this._states.start(this.options.id); + + return this.Events.trigger("received", { + args: this.args, + options: this.options + }); + } + }, { + key: "doQueue", + value: function doQueue(reachedHWM, blocked) { + this._assertStatus("RECEIVED"); + + this._states.next(this.options.id); + + return this.Events.trigger("queued", { + args: this.args, + options: this.options, + reachedHWM: reachedHWM, + blocked: blocked + }); + } + }, { + key: "doRun", + value: function doRun() { + if (this.retryCount === 0) { + this._assertStatus("QUEUED"); + + this._states.next(this.options.id); + } else { + this._assertStatus("EXECUTING"); + } + + return this.Events.trigger("scheduled", { + args: this.args, + options: this.options + }); + } + }, { + key: "doExecute", + value: function () { + var _doExecute = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee(chained, clearGlobalState, run, free) { + var error, eventInfo, passed; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (this.retryCount === 0) { + this._assertStatus("RUNNING"); + + this._states.next(this.options.id); + } else { + this._assertStatus("EXECUTING"); + } + + eventInfo = { + args: this.args, + options: this.options, + retryCount: this.retryCount + }; + this.Events.trigger("executing", eventInfo); + _context.prev = 3; + _context.next = 6; + return chained != null ? chained.schedule.apply(chained, [this.options, this.task].concat(_toConsumableArray(this.args))) : this.task.apply(this, _toConsumableArray(this.args)); + + case 6: + passed = _context.sent; + + if (!clearGlobalState()) { + _context.next = 13; + break; + } + + this.doDone(eventInfo); + _context.next = 11; + return free(this.options, eventInfo); + + case 11: + this._assertStatus("DONE"); + + return _context.abrupt("return", this._resolve(passed)); + + case 13: + _context.next = 19; + break; + + case 15: + _context.prev = 15; + _context.t0 = _context["catch"](3); + error = _context.t0; + return _context.abrupt("return", this._onFailure(error, eventInfo, clearGlobalState, run, free)); + + case 19: + case "end": + return _context.stop(); + } + } + }, _callee, this, [[3, 15]]); + })); + + function doExecute(_x, _x2, _x3, _x4) { + return _doExecute.apply(this, arguments); + } + + return doExecute; + }() + }, { + key: "doExpire", + value: function doExpire(clearGlobalState, run, free) { + var error, eventInfo; + + if (this._states.jobStatus(this.options.id === "RUNNING")) { + this._states.next(this.options.id); + } + + this._assertStatus("EXECUTING"); + + eventInfo = { + args: this.args, + options: this.options, + retryCount: this.retryCount + }; + error = new BottleneckError$1("This job timed out after ".concat(this.options.expiration, " ms.")); + return this._onFailure(error, eventInfo, clearGlobalState, run, free); + } + }, { + key: "_onFailure", + value: function () { + var _onFailure2 = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2(error, eventInfo, clearGlobalState, run, free) { + var retry, retryAfter; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!clearGlobalState()) { + _context2.next = 16; + break; + } + + _context2.next = 3; + return this.Events.trigger("failed", error, eventInfo); + + case 3: + retry = _context2.sent; + + if (!(retry != null)) { + _context2.next = 11; + break; + } + + retryAfter = ~~retry; + this.Events.trigger("retry", "Retrying ".concat(this.options.id, " after ").concat(retryAfter, " ms"), eventInfo); + this.retryCount++; + return _context2.abrupt("return", run(retryAfter)); + + case 11: + this.doDone(eventInfo); + _context2.next = 14; + return free(this.options, eventInfo); + + case 14: + this._assertStatus("DONE"); + + return _context2.abrupt("return", this._reject(error)); + + case 16: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function _onFailure(_x5, _x6, _x7, _x8, _x9) { + return _onFailure2.apply(this, arguments); + } + + return _onFailure; + }() + }, { + key: "doDone", + value: function doDone(eventInfo) { + this._assertStatus("EXECUTING"); + + this._states.next(this.options.id); + + return this.Events.trigger("done", eventInfo); + } + }]); + + return Job; + }(); + + var Job_1 = Job; + + var BottleneckError$2, LocalDatastore, parser$2; + parser$2 = parser; + BottleneckError$2 = BottleneckError_1; + + LocalDatastore = + /*#__PURE__*/ + function () { + function LocalDatastore(instance, storeOptions, storeInstanceOptions) { + _classCallCheck(this, LocalDatastore); + + this.instance = instance; + this.storeOptions = storeOptions; + this.clientId = this.instance._randomIndex(); + parser$2.load(storeInstanceOptions, storeInstanceOptions, this); + this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now(); + this._running = 0; + this._done = 0; + this._unblockTime = 0; + this.ready = this.Promise.resolve(); + this.clients = {}; + + this._startHeartbeat(); + } + + _createClass(LocalDatastore, [{ + key: "_startHeartbeat", + value: function _startHeartbeat() { + var _this = this; + + var base; + + if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) { + return typeof (base = this.heartbeat = setInterval(function () { + var amount, incr, maximum, now, reservoir; + now = Date.now(); + + if (_this.storeOptions.reservoirRefreshInterval != null && now >= _this._lastReservoirRefresh + _this.storeOptions.reservoirRefreshInterval) { + _this._lastReservoirRefresh = now; + _this.storeOptions.reservoir = _this.storeOptions.reservoirRefreshAmount; + + _this.instance._drainAll(_this.computeCapacity()); + } + + if (_this.storeOptions.reservoirIncreaseInterval != null && now >= _this._lastReservoirIncrease + _this.storeOptions.reservoirIncreaseInterval) { + var _this$storeOptions = _this.storeOptions; + amount = _this$storeOptions.reservoirIncreaseAmount; + maximum = _this$storeOptions.reservoirIncreaseMaximum; + reservoir = _this$storeOptions.reservoir; + _this._lastReservoirIncrease = now; + incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount; + + if (incr > 0) { + _this.storeOptions.reservoir += incr; + return _this.instance._drainAll(_this.computeCapacity()); + } + } + }, this.heartbeatInterval)).unref === "function" ? base.unref() : void 0; + } else { + return clearInterval(this.heartbeat); + } + } + }, { + key: "__publish__", + value: function () { + var _publish__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee(message) { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.yieldLoop(); + + case 2: + return _context.abrupt("return", this.instance.Events.trigger("message", message.toString())); + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function __publish__(_x) { + return _publish__.apply(this, arguments); + } + + return __publish__; + }() + }, { + key: "__disconnect__", + value: function () { + var _disconnect__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2(flush) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.yieldLoop(); + + case 2: + clearInterval(this.heartbeat); + return _context2.abrupt("return", this.Promise.resolve()); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function __disconnect__(_x2) { + return _disconnect__.apply(this, arguments); + } + + return __disconnect__; + }() + }, { + key: "yieldLoop", + value: function yieldLoop() { + var t = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + return new this.Promise(function (resolve, reject) { + return setTimeout(resolve, t); + }); + } + }, { + key: "computePenalty", + value: function computePenalty() { + var ref; + return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000; + } + }, { + key: "__updateSettings__", + value: function () { + var _updateSettings__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee3(options) { + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this.yieldLoop(); + + case 2: + parser$2.overwrite(options, options, this.storeOptions); + + this._startHeartbeat(); + + this.instance._drainAll(this.computeCapacity()); + + return _context3.abrupt("return", true); + + case 6: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function __updateSettings__(_x3) { + return _updateSettings__.apply(this, arguments); + } + + return __updateSettings__; + }() + }, { + key: "__running__", + value: function () { + var _running__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee4() { + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return this.yieldLoop(); + + case 2: + return _context4.abrupt("return", this._running); + + case 3: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function __running__() { + return _running__.apply(this, arguments); + } + + return __running__; + }() + }, { + key: "__queued__", + value: function () { + var _queued__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee5() { + return regeneratorRuntime.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return this.yieldLoop(); + + case 2: + return _context5.abrupt("return", this.instance.queued()); + + case 3: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + + function __queued__() { + return _queued__.apply(this, arguments); + } + + return __queued__; + }() + }, { + key: "__done__", + value: function () { + var _done__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee6() { + return regeneratorRuntime.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 2; + return this.yieldLoop(); + + case 2: + return _context6.abrupt("return", this._done); + + case 3: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + + function __done__() { + return _done__.apply(this, arguments); + } + + return __done__; + }() + }, { + key: "__groupCheck__", + value: function () { + var _groupCheck__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee7(time) { + return regeneratorRuntime.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + _context7.next = 2; + return this.yieldLoop(); + + case 2: + return _context7.abrupt("return", this._nextRequest + this.timeout < time); + + case 3: + case "end": + return _context7.stop(); + } + } + }, _callee7, this); + })); + + function __groupCheck__(_x4) { + return _groupCheck__.apply(this, arguments); + } + + return __groupCheck__; + }() + }, { + key: "computeCapacity", + value: function computeCapacity() { + var maxConcurrent, reservoir; + var _this$storeOptions2 = this.storeOptions; + maxConcurrent = _this$storeOptions2.maxConcurrent; + reservoir = _this$storeOptions2.reservoir; + + if (maxConcurrent != null && reservoir != null) { + return Math.min(maxConcurrent - this._running, reservoir); + } else if (maxConcurrent != null) { + return maxConcurrent - this._running; + } else if (reservoir != null) { + return reservoir; + } else { + return null; + } + } + }, { + key: "conditionsCheck", + value: function conditionsCheck(weight) { + var capacity; + capacity = this.computeCapacity(); + return capacity == null || weight <= capacity; + } + }, { + key: "__incrementReservoir__", + value: function () { + var _incrementReservoir__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee8(incr) { + var reservoir; + return regeneratorRuntime.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + _context8.next = 2; + return this.yieldLoop(); + + case 2: + reservoir = this.storeOptions.reservoir += incr; + + this.instance._drainAll(this.computeCapacity()); + + return _context8.abrupt("return", reservoir); + + case 5: + case "end": + return _context8.stop(); + } + } + }, _callee8, this); + })); + + function __incrementReservoir__(_x5) { + return _incrementReservoir__.apply(this, arguments); + } + + return __incrementReservoir__; + }() + }, { + key: "__currentReservoir__", + value: function () { + var _currentReservoir__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee9() { + return regeneratorRuntime.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + _context9.next = 2; + return this.yieldLoop(); + + case 2: + return _context9.abrupt("return", this.storeOptions.reservoir); + + case 3: + case "end": + return _context9.stop(); + } + } + }, _callee9, this); + })); + + function __currentReservoir__() { + return _currentReservoir__.apply(this, arguments); + } + + return __currentReservoir__; + }() + }, { + key: "isBlocked", + value: function isBlocked(now) { + return this._unblockTime >= now; + } + }, { + key: "check", + value: function check(weight, now) { + return this.conditionsCheck(weight) && this._nextRequest - now <= 0; + } + }, { + key: "__check__", + value: function () { + var _check__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee10(weight) { + var now; + return regeneratorRuntime.wrap(function _callee10$(_context10) { + while (1) { + switch (_context10.prev = _context10.next) { + case 0: + _context10.next = 2; + return this.yieldLoop(); + + case 2: + now = Date.now(); + return _context10.abrupt("return", this.check(weight, now)); + + case 4: + case "end": + return _context10.stop(); + } + } + }, _callee10, this); + })); + + function __check__(_x6) { + return _check__.apply(this, arguments); + } + + return __check__; + }() + }, { + key: "__register__", + value: function () { + var _register__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee11(index, weight, expiration) { + var now, wait; + return regeneratorRuntime.wrap(function _callee11$(_context11) { + while (1) { + switch (_context11.prev = _context11.next) { + case 0: + _context11.next = 2; + return this.yieldLoop(); + + case 2: + now = Date.now(); + + if (!this.conditionsCheck(weight)) { + _context11.next = 11; + break; + } + + this._running += weight; + + if (this.storeOptions.reservoir != null) { + this.storeOptions.reservoir -= weight; + } + + wait = Math.max(this._nextRequest - now, 0); + this._nextRequest = now + wait + this.storeOptions.minTime; + return _context11.abrupt("return", { + success: true, + wait: wait, + reservoir: this.storeOptions.reservoir + }); + + case 11: + return _context11.abrupt("return", { + success: false + }); + + case 12: + case "end": + return _context11.stop(); + } + } + }, _callee11, this); + })); + + function __register__(_x7, _x8, _x9) { + return _register__.apply(this, arguments); + } + + return __register__; + }() + }, { + key: "strategyIsBlock", + value: function strategyIsBlock() { + return this.storeOptions.strategy === 3; + } + }, { + key: "__submit__", + value: function () { + var _submit__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee12(queueLength, weight) { + var blocked, now, reachedHWM; + return regeneratorRuntime.wrap(function _callee12$(_context12) { + while (1) { + switch (_context12.prev = _context12.next) { + case 0: + _context12.next = 2; + return this.yieldLoop(); + + case 2: + if (!(this.storeOptions.maxConcurrent != null && weight > this.storeOptions.maxConcurrent)) { + _context12.next = 4; + break; + } + + throw new BottleneckError$2("Impossible to add a job having a weight of ".concat(weight, " to a limiter having a maxConcurrent setting of ").concat(this.storeOptions.maxConcurrent)); + + case 4: + now = Date.now(); + reachedHWM = this.storeOptions.highWater != null && queueLength === this.storeOptions.highWater && !this.check(weight, now); + blocked = this.strategyIsBlock() && (reachedHWM || this.isBlocked(now)); + + if (blocked) { + this._unblockTime = now + this.computePenalty(); + this._nextRequest = this._unblockTime + this.storeOptions.minTime; + + this.instance._dropAllQueued(); + } + + return _context12.abrupt("return", { + reachedHWM: reachedHWM, + blocked: blocked, + strategy: this.storeOptions.strategy + }); + + case 9: + case "end": + return _context12.stop(); + } + } + }, _callee12, this); + })); + + function __submit__(_x10, _x11) { + return _submit__.apply(this, arguments); + } + + return __submit__; + }() + }, { + key: "__free__", + value: function () { + var _free__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee13(index, weight) { + return regeneratorRuntime.wrap(function _callee13$(_context13) { + while (1) { + switch (_context13.prev = _context13.next) { + case 0: + _context13.next = 2; + return this.yieldLoop(); + + case 2: + this._running -= weight; + this._done += weight; + + this.instance._drainAll(this.computeCapacity()); + + return _context13.abrupt("return", { + running: this._running + }); + + case 6: + case "end": + return _context13.stop(); + } + } + }, _callee13, this); + })); + + function __free__(_x12, _x13) { + return _free__.apply(this, arguments); + } + + return __free__; + }() + }]); + + return LocalDatastore; + }(); + + var LocalDatastore_1 = LocalDatastore; + + var lua = { + "blacklist_client.lua": "local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n", + "check.lua": "local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n", + "conditions_check.lua": "local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n", + "current_reservoir.lua": "return process_tick(now, false)['reservoir']\n", + "done.lua": "process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n", + "free.lua": "local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n", + "get_time.lua": "redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n", + "group_check.lua": "return not (redis.call('exists', settings_key) == 1)\n", + "heartbeat.lua": "process_tick(now, true)\n", + "increment_reservoir.lua": "local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n", + "init.lua": "local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n", + "process_tick.lua": "local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n", + "queued.lua": "local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n", + "refresh_expiration.lua": "local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n", + "refs.lua": "local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n", + "register.lua": "local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n", + "register_client.lua": "local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n", + "running.lua": "return process_tick(now, false)['running']\n", + "submit.lua": "local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n", + "update_settings.lua": "local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n", + "validate_client.lua": "if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n", + "validate_keys.lua": "if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n" + }; + + var lua$1 = /*#__PURE__*/Object.freeze({ + default: lua + }); + + var require$$0 = getCjsExportFromNamespace(lua$1); + + var Scripts = createCommonjsModule(function (module, exports) { + var headers, lua, templates; + lua = require$$0; + headers = { + refs: lua["refs.lua"], + validate_keys: lua["validate_keys.lua"], + validate_client: lua["validate_client.lua"], + refresh_expiration: lua["refresh_expiration.lua"], + process_tick: lua["process_tick.lua"], + conditions_check: lua["conditions_check.lua"], + get_time: lua["get_time.lua"] + }; + + exports.allKeys = function (id) { + return [ + /* + HASH + */ + "b_".concat(id, "_settings"), + /* + HASH + job index -> weight + */ + "b_".concat(id, "_job_weights"), + /* + ZSET + job index -> expiration + */ + "b_".concat(id, "_job_expirations"), + /* + HASH + job index -> client + */ + "b_".concat(id, "_job_clients"), + /* + ZSET + client -> sum running + */ + "b_".concat(id, "_client_running"), + /* + HASH + client -> num queued + */ + "b_".concat(id, "_client_num_queued"), + /* + ZSET + client -> last job registered + */ + "b_".concat(id, "_client_last_registered"), + /* + ZSET + client -> last seen + */ + "b_".concat(id, "_client_last_seen")]; + }; + + templates = { + init: { + keys: exports.allKeys, + headers: ["process_tick"], + refresh_expiration: true, + code: lua["init.lua"] + }, + group_check: { + keys: exports.allKeys, + headers: [], + refresh_expiration: false, + code: lua["group_check.lua"] + }, + register_client: { + keys: exports.allKeys, + headers: ["validate_keys"], + refresh_expiration: false, + code: lua["register_client.lua"] + }, + blacklist_client: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client"], + refresh_expiration: false, + code: lua["blacklist_client.lua"] + }, + heartbeat: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["heartbeat.lua"] + }, + update_settings: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: true, + code: lua["update_settings.lua"] + }, + running: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["running.lua"] + }, + queued: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client"], + refresh_expiration: false, + code: lua["queued.lua"] + }, + done: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["done.lua"] + }, + check: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"], + refresh_expiration: false, + code: lua["check.lua"] + }, + submit: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"], + refresh_expiration: true, + code: lua["submit.lua"] + }, + register: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"], + refresh_expiration: true, + code: lua["register.lua"] + }, + free: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: true, + code: lua["free.lua"] + }, + current_reservoir: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["current_reservoir.lua"] + }, + increment_reservoir: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: true, + code: lua["increment_reservoir.lua"] + } + }; + exports.names = Object.keys(templates); + + exports.keys = function (name, id) { + return templates[name].keys(id); + }; + + exports.payload = function (name) { + var template; + template = templates[name]; + return Array.prototype.concat(headers.refs, template.headers.map(function (h) { + return headers[h]; + }), template.refresh_expiration ? headers.refresh_expiration : "", template.code).join("\n"); + }; + }); + var Scripts_1 = Scripts.allKeys; + var Scripts_2 = Scripts.names; + var Scripts_3 = Scripts.keys; + var Scripts_4 = Scripts.payload; + + var Events$2, RedisConnection, Scripts$1, parser$3; + parser$3 = parser; + Events$2 = Events_1; + Scripts$1 = Scripts; + + RedisConnection = function () { + var RedisConnection = + /*#__PURE__*/ + function () { + function RedisConnection() { + var _this = this; + + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, RedisConnection); + + parser$3.load(options, this.defaults, this); + + if (this.Redis == null) { + this.Redis = eval("require")("redis"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option. + } + + if (this.Events == null) { + this.Events = new Events$2(this); + } + + this.terminated = false; + + if (this.client == null) { + this.client = this.Redis.createClient(this.clientOptions); + } + + this.subscriber = this.client.duplicate(); + this.limiters = {}; + this.shas = {}; + this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(function () { + return _this._loadScripts(); + }).then(function () { + return { + client: _this.client, + subscriber: _this.subscriber + }; + }); + } + + _createClass(RedisConnection, [{ + key: "_setup", + value: function _setup(client, sub) { + var _this2 = this; + + client.setMaxListeners(0); + return new this.Promise(function (resolve, reject) { + client.on("error", function (e) { + return _this2.Events.trigger("error", e); + }); + + if (sub) { + client.on("message", function (channel, message) { + var ref; + return (ref = _this2.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0; + }); + } + + if (client.ready) { + return resolve(); + } else { + return client.once("ready", resolve); + } + }); + } + }, { + key: "_loadScript", + value: function _loadScript(name) { + var _this3 = this; + + return new this.Promise(function (resolve, reject) { + var payload; + payload = Scripts$1.payload(name); + return _this3.client.multi([["script", "load", payload]]).exec(function (err, replies) { + if (err != null) { + return reject(err); + } + + _this3.shas[name] = replies[0]; + return resolve(replies[0]); + }); + }); + } + }, { + key: "_loadScripts", + value: function _loadScripts() { + var _this4 = this; + + return this.Promise.all(Scripts$1.names.map(function (k) { + return _this4._loadScript(k); + })); + } + }, { + key: "__runCommand__", + value: function () { + var _runCommand__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee(cmd) { + var _this5 = this; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.ready; + + case 2: + return _context.abrupt("return", new this.Promise(function (resolve, reject) { + return _this5.client.multi([cmd]).exec_atomic(function (err, replies) { + if (err != null) { + return reject(err); + } else { + return resolve(replies[0]); + } + }); + })); + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function __runCommand__(_x) { + return _runCommand__.apply(this, arguments); + } + + return __runCommand__; + }() + }, { + key: "__addLimiter__", + value: function __addLimiter__(instance) { + var _this6 = this; + + return this.Promise.all([instance.channel(), instance.channel_client()].map(function (channel) { + return new _this6.Promise(function (resolve, reject) { + var _handler; + + _handler = function handler(chan) { + if (chan === channel) { + _this6.subscriber.removeListener("subscribe", _handler); + + _this6.limiters[channel] = instance; + return resolve(); + } + }; + + _this6.subscriber.on("subscribe", _handler); + + return _this6.subscriber.subscribe(channel); + }); + })); + } + }, { + key: "__removeLimiter__", + value: function __removeLimiter__(instance) { + var _this7 = this; + + return this.Promise.all([instance.channel(), instance.channel_client()].map( + /*#__PURE__*/ + function () { + var _ref = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2(channel) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (_this7.terminated) { + _context2.next = 3; + break; + } + + _context2.next = 3; + return new _this7.Promise(function (resolve, reject) { + return _this7.subscriber.unsubscribe(channel, function (err, chan) { + if (err != null) { + return reject(err); + } + + if (chan === channel) { + return resolve(); + } + }); + }); + + case 3: + return _context2.abrupt("return", delete _this7.limiters[channel]); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + return function (_x2) { + return _ref.apply(this, arguments); + }; + }())); + } + }, { + key: "__scriptArgs__", + value: function __scriptArgs__(name, id, args, cb) { + var keys; + keys = Scripts$1.keys(name, id); + return [this.shas[name], keys.length].concat(keys, args, cb); + } + }, { + key: "__scriptFn__", + value: function __scriptFn__(name) { + return this.client.evalsha.bind(this.client); + } + }, { + key: "disconnect", + value: function disconnect() { + var flush = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var i, k, len, ref; + ref = Object.keys(this.limiters); + + for (i = 0, len = ref.length; i < len; i++) { + k = ref[i]; + clearInterval(this.limiters[k]._store.heartbeat); + } + + this.limiters = {}; + this.terminated = true; + this.client.end(flush); + this.subscriber.end(flush); + return this.Promise.resolve(); + } + }]); + + return RedisConnection; + }(); + RedisConnection.prototype.datastore = "redis"; + RedisConnection.prototype.defaults = { + Redis: null, + clientOptions: {}, + client: null, + Promise: Promise, + Events: null + }; + return RedisConnection; + }.call(commonjsGlobal); + + var RedisConnection_1 = RedisConnection; + + var Events$3, IORedisConnection, Scripts$2, parser$4; + parser$4 = parser; + Events$3 = Events_1; + Scripts$2 = Scripts; + + IORedisConnection = function () { + var IORedisConnection = + /*#__PURE__*/ + function () { + function IORedisConnection() { + var _this = this; + + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, IORedisConnection); + + parser$4.load(options, this.defaults, this); + + if (this.Redis == null) { + this.Redis = eval("require")("ioredis"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option. + } + + if (this.Events == null) { + this.Events = new Events$3(this); + } + + this.terminated = false; + + if (this.clusterNodes != null) { + this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions); + this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions); + } else if (this.client != null && this.client.duplicate == null) { + this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options); + } else { + if (this.client == null) { + this.client = new this.Redis(this.clientOptions); + } + + this.subscriber = this.client.duplicate(); + } + + this.limiters = {}; + this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(function () { + _this._loadScripts(); + + return { + client: _this.client, + subscriber: _this.subscriber + }; + }); + } + + _createClass(IORedisConnection, [{ + key: "_setup", + value: function _setup(client, sub) { + var _this2 = this; + + client.setMaxListeners(0); + return new this.Promise(function (resolve, reject) { + client.on("error", function (e) { + return _this2.Events.trigger("error", e); + }); + + if (sub) { + client.on("message", function (channel, message) { + var ref; + return (ref = _this2.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0; + }); + } + + if (client.status === "ready") { + return resolve(); + } else { + return client.once("ready", resolve); + } + }); + } + }, { + key: "_loadScripts", + value: function _loadScripts() { + var _this3 = this; + + return Scripts$2.names.forEach(function (name) { + return _this3.client.defineCommand(name, { + lua: Scripts$2.payload(name) + }); + }); + } + }, { + key: "__runCommand__", + value: function () { + var _runCommand__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee(cmd) { + var _, deleted, _ref, _ref2, _ref2$; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.ready; + + case 2: + _context.next = 4; + return this.client.pipeline([cmd]).exec(); + + case 4: + _ref = _context.sent; + _ref2 = _slicedToArray(_ref, 1); + _ref2$ = _slicedToArray(_ref2[0], 2); + _ = _ref2$[0]; + deleted = _ref2$[1]; + return _context.abrupt("return", deleted); + + case 10: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function __runCommand__(_x) { + return _runCommand__.apply(this, arguments); + } + + return __runCommand__; + }() + }, { + key: "__addLimiter__", + value: function __addLimiter__(instance) { + var _this4 = this; + + return this.Promise.all([instance.channel(), instance.channel_client()].map(function (channel) { + return new _this4.Promise(function (resolve, reject) { + return _this4.subscriber.subscribe(channel, function () { + _this4.limiters[channel] = instance; + return resolve(); + }); + }); + })); + } + }, { + key: "__removeLimiter__", + value: function __removeLimiter__(instance) { + var _this5 = this; + + return [instance.channel(), instance.channel_client()].forEach( + /*#__PURE__*/ + function () { + var _ref3 = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2(channel) { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (_this5.terminated) { + _context2.next = 3; + break; + } + + _context2.next = 3; + return _this5.subscriber.unsubscribe(channel); + + case 3: + return _context2.abrupt("return", delete _this5.limiters[channel]); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + return function (_x2) { + return _ref3.apply(this, arguments); + }; + }()); + } + }, { + key: "__scriptArgs__", + value: function __scriptArgs__(name, id, args, cb) { + var keys; + keys = Scripts$2.keys(name, id); + return [keys.length].concat(keys, args, cb); + } + }, { + key: "__scriptFn__", + value: function __scriptFn__(name) { + return this.client[name].bind(this.client); + } + }, { + key: "disconnect", + value: function disconnect() { + var flush = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var i, k, len, ref; + ref = Object.keys(this.limiters); + + for (i = 0, len = ref.length; i < len; i++) { + k = ref[i]; + clearInterval(this.limiters[k]._store.heartbeat); + } + + this.limiters = {}; + this.terminated = true; + + if (flush) { + return this.Promise.all([this.client.quit(), this.subscriber.quit()]); + } else { + this.client.disconnect(); + this.subscriber.disconnect(); + return this.Promise.resolve(); + } + } + }]); + + return IORedisConnection; + }(); + IORedisConnection.prototype.datastore = "ioredis"; + IORedisConnection.prototype.defaults = { + Redis: null, + clientOptions: {}, + clusterNodes: null, + client: null, + Promise: Promise, + Events: null + }; + return IORedisConnection; + }.call(commonjsGlobal); + + var IORedisConnection_1 = IORedisConnection; + + var BottleneckError$3, IORedisConnection$1, RedisConnection$1, RedisDatastore, parser$5; + parser$5 = parser; + BottleneckError$3 = BottleneckError_1; + RedisConnection$1 = RedisConnection_1; + IORedisConnection$1 = IORedisConnection_1; + + RedisDatastore = + /*#__PURE__*/ + function () { + function RedisDatastore(instance, storeOptions, storeInstanceOptions) { + var _this = this; + + _classCallCheck(this, RedisDatastore); + + this.instance = instance; + this.storeOptions = storeOptions; + this.originalId = this.instance.id; + this.clientId = this.instance._randomIndex(); + parser$5.load(storeInstanceOptions, storeInstanceOptions, this); + this.clients = {}; + this.capacityPriorityCounters = {}; + this.sharedConnection = this.connection != null; + + if (this.connection == null) { + this.connection = this.instance.datastore === "redis" ? new RedisConnection$1({ + Redis: this.Redis, + clientOptions: this.clientOptions, + Promise: this.Promise, + Events: this.instance.Events + }) : this.instance.datastore === "ioredis" ? new IORedisConnection$1({ + Redis: this.Redis, + clientOptions: this.clientOptions, + clusterNodes: this.clusterNodes, + Promise: this.Promise, + Events: this.instance.Events + }) : void 0; + } + + this.instance.connection = this.connection; + this.instance.datastore = this.connection.datastore; + this.ready = this.connection.ready.then(function (clients) { + _this.clients = clients; + return _this.runScript("init", _this.prepareInitSettings(_this.clearDatastore)); + }).then(function () { + return _this.connection.__addLimiter__(_this.instance); + }).then(function () { + return _this.runScript("register_client", [_this.instance.queued()]); + }).then(function () { + var base; + + if (typeof (base = _this.heartbeat = setInterval(function () { + return _this.runScript("heartbeat", [])["catch"](function (e) { + return _this.instance.Events.trigger("error", e); + }); + }, _this.heartbeatInterval)).unref === "function") { + base.unref(); + } + + return _this.clients; + }); + } + + _createClass(RedisDatastore, [{ + key: "__publish__", + value: function () { + var _publish__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee(message) { + var client, _ref; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.ready; + + case 2: + _ref = _context.sent; + client = _ref.client; + return _context.abrupt("return", client.publish(this.instance.channel(), "message:".concat(message.toString()))); + + case 5: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function __publish__(_x) { + return _publish__.apply(this, arguments); + } + + return __publish__; + }() + }, { + key: "onMessage", + value: function () { + var _onMessage = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee3(channel, message) { + var _this2 = this; + + var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type, _ref2, _data$split, _data$split2; + + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.prev = 0; + pos = message.indexOf(":"); + _ref2 = [message.slice(0, pos), message.slice(pos + 1)]; + type = _ref2[0]; + data = _ref2[1]; + + if (!(type === "capacity")) { + _context3.next = 11; + break; + } + + _context3.next = 8; + return this.instance._drainAll(data.length > 0 ? ~~data : void 0); + + case 8: + return _context3.abrupt("return", _context3.sent); + + case 11: + if (!(type === "capacity-priority")) { + _context3.next = 37; + break; + } + + _data$split = data.split(":"); + _data$split2 = _slicedToArray(_data$split, 3); + rawCapacity = _data$split2[0]; + priorityClient = _data$split2[1]; + counter = _data$split2[2]; + capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0; + + if (!(priorityClient === this.clientId)) { + _context3.next = 28; + break; + } + + _context3.next = 21; + return this.instance._drainAll(capacity); + + case 21: + drained = _context3.sent; + newCapacity = capacity != null ? capacity - (drained || 0) : ""; + _context3.next = 25; + return this.clients.client.publish(this.instance.channel(), "capacity-priority:".concat(newCapacity, "::").concat(counter)); + + case 25: + return _context3.abrupt("return", _context3.sent); + + case 28: + if (!(priorityClient === "")) { + _context3.next = 34; + break; + } + + clearTimeout(this.capacityPriorityCounters[counter]); + delete this.capacityPriorityCounters[counter]; + return _context3.abrupt("return", this.instance._drainAll(capacity)); + + case 34: + return _context3.abrupt("return", this.capacityPriorityCounters[counter] = setTimeout( + /*#__PURE__*/ + _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2() { + var e; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.prev = 0; + delete _this2.capacityPriorityCounters[counter]; + _context2.next = 4; + return _this2.runScript("blacklist_client", [priorityClient]); + + case 4: + _context2.next = 6; + return _this2.instance._drainAll(capacity); + + case 6: + return _context2.abrupt("return", _context2.sent); + + case 9: + _context2.prev = 9; + _context2.t0 = _context2["catch"](0); + e = _context2.t0; + return _context2.abrupt("return", _this2.instance.Events.trigger("error", e)); + + case 13: + case "end": + return _context2.stop(); + } + } + }, _callee2, null, [[0, 9]]); + })), 1000)); + + case 35: + _context3.next = 45; + break; + + case 37: + if (!(type === "message")) { + _context3.next = 41; + break; + } + + return _context3.abrupt("return", this.instance.Events.trigger("message", data)); + + case 41: + if (!(type === "blocked")) { + _context3.next = 45; + break; + } + + _context3.next = 44; + return this.instance._dropAllQueued(); + + case 44: + return _context3.abrupt("return", _context3.sent); + + case 45: + _context3.next = 51; + break; + + case 47: + _context3.prev = 47; + _context3.t0 = _context3["catch"](0); + e = _context3.t0; + return _context3.abrupt("return", this.instance.Events.trigger("error", e)); + + case 51: + case "end": + return _context3.stop(); + } + } + }, _callee3, this, [[0, 47]]); + })); + + function onMessage(_x2, _x3) { + return _onMessage.apply(this, arguments); + } + + return onMessage; + }() + }, { + key: "__disconnect__", + value: function __disconnect__(flush) { + clearInterval(this.heartbeat); + + if (this.sharedConnection) { + return this.connection.__removeLimiter__(this.instance); + } else { + return this.connection.disconnect(flush); + } + } + }, { + key: "runScript", + value: function () { + var _runScript = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee4(name, args) { + var _this3 = this; + + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + if (name === "init" || name === "register_client") { + _context4.next = 3; + break; + } + + _context4.next = 3; + return this.ready; + + case 3: + return _context4.abrupt("return", new this.Promise(function (resolve, reject) { + var all_args, arr; + all_args = [Date.now(), _this3.clientId].concat(args); + + _this3.instance.Events.trigger("debug", "Calling Redis script: ".concat(name, ".lua"), all_args); + + arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) { + if (err != null) { + return reject(err); + } + + return resolve(replies); + }); + return _this3.connection.__scriptFn__(name).apply(void 0, _toConsumableArray(arr)); + })["catch"](function (e) { + if (e.message === "SETTINGS_KEY_NOT_FOUND") { + if (name === "heartbeat") { + return _this3.Promise.resolve(); + } else { + return _this3.runScript("init", _this3.prepareInitSettings(false)).then(function () { + return _this3.runScript(name, args); + }); + } + } else if (e.message === "UNKNOWN_CLIENT") { + return _this3.runScript("register_client", [_this3.instance.queued()]).then(function () { + return _this3.runScript(name, args); + }); + } else { + return _this3.Promise.reject(e); + } + })); + + case 4: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function runScript(_x4, _x5) { + return _runScript.apply(this, arguments); + } + + return runScript; + }() + }, { + key: "prepareArray", + value: function prepareArray(arr) { + var i, len, results, x; + results = []; + + for (i = 0, len = arr.length; i < len; i++) { + x = arr[i]; + results.push(x != null ? x.toString() : ""); + } + + return results; + } + }, { + key: "prepareObject", + value: function prepareObject(obj) { + var arr, k, v; + arr = []; + + for (k in obj) { + v = obj[k]; + arr.push(k, v != null ? v.toString() : ""); + } + + return arr; + } + }, { + key: "prepareInitSettings", + value: function prepareInitSettings(clear) { + var args; + args = this.prepareObject(Object.assign({}, this.storeOptions, { + id: this.originalId, + version: this.instance.version, + groupTimeout: this.timeout, + clientTimeout: this.clientTimeout + })); + args.unshift(clear ? 1 : 0, this.instance.version); + return args; + } + }, { + key: "convertBool", + value: function convertBool(b) { + return !!b; + } + }, { + key: "__updateSettings__", + value: function () { + var _updateSettings__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee5(options) { + return regeneratorRuntime.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return this.runScript("update_settings", this.prepareObject(options)); + + case 2: + return _context5.abrupt("return", parser$5.overwrite(options, options, this.storeOptions)); + + case 3: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + + function __updateSettings__(_x6) { + return _updateSettings__.apply(this, arguments); + } + + return __updateSettings__; + }() + }, { + key: "__running__", + value: function __running__() { + return this.runScript("running", []); + } + }, { + key: "__queued__", + value: function __queued__() { + return this.runScript("queued", []); + } + }, { + key: "__done__", + value: function __done__() { + return this.runScript("done", []); + } + }, { + key: "__groupCheck__", + value: function () { + var _groupCheck__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee6() { + return regeneratorRuntime.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + _context6.t0 = this; + _context6.next = 3; + return this.runScript("group_check", []); + + case 3: + _context6.t1 = _context6.sent; + return _context6.abrupt("return", _context6.t0.convertBool.call(_context6.t0, _context6.t1)); + + case 5: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + + function __groupCheck__() { + return _groupCheck__.apply(this, arguments); + } + + return __groupCheck__; + }() + }, { + key: "__incrementReservoir__", + value: function __incrementReservoir__(incr) { + return this.runScript("increment_reservoir", [incr]); + } + }, { + key: "__currentReservoir__", + value: function __currentReservoir__() { + return this.runScript("current_reservoir", []); + } + }, { + key: "__check__", + value: function () { + var _check__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee7(weight) { + return regeneratorRuntime.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + _context7.t0 = this; + _context7.next = 3; + return this.runScript("check", this.prepareArray([weight])); + + case 3: + _context7.t1 = _context7.sent; + return _context7.abrupt("return", _context7.t0.convertBool.call(_context7.t0, _context7.t1)); + + case 5: + case "end": + return _context7.stop(); + } + } + }, _callee7, this); + })); + + function __check__(_x7) { + return _check__.apply(this, arguments); + } + + return __check__; + }() + }, { + key: "__register__", + value: function () { + var _register__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee8(index, weight, expiration) { + var reservoir, success, wait, _ref4, _ref5; + + return regeneratorRuntime.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + _context8.next = 2; + return this.runScript("register", this.prepareArray([index, weight, expiration])); + + case 2: + _ref4 = _context8.sent; + _ref5 = _slicedToArray(_ref4, 3); + success = _ref5[0]; + wait = _ref5[1]; + reservoir = _ref5[2]; + return _context8.abrupt("return", { + success: this.convertBool(success), + wait: wait, + reservoir: reservoir + }); + + case 8: + case "end": + return _context8.stop(); + } + } + }, _callee8, this); + })); + + function __register__(_x8, _x9, _x10) { + return _register__.apply(this, arguments); + } + + return __register__; + }() + }, { + key: "__submit__", + value: function () { + var _submit__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee9(queueLength, weight) { + var blocked, e, maxConcurrent, overweight, reachedHWM, strategy, _ref6, _ref7, _e$message$split, _e$message$split2; + + return regeneratorRuntime.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + _context9.prev = 0; + _context9.next = 3; + return this.runScript("submit", this.prepareArray([queueLength, weight])); + + case 3: + _ref6 = _context9.sent; + _ref7 = _slicedToArray(_ref6, 3); + reachedHWM = _ref7[0]; + blocked = _ref7[1]; + strategy = _ref7[2]; + return _context9.abrupt("return", { + reachedHWM: this.convertBool(reachedHWM), + blocked: this.convertBool(blocked), + strategy: strategy + }); + + case 11: + _context9.prev = 11; + _context9.t0 = _context9["catch"](0); + e = _context9.t0; + + if (!(e.message.indexOf("OVERWEIGHT") === 0)) { + _context9.next = 23; + break; + } + + _e$message$split = e.message.split(":"); + _e$message$split2 = _slicedToArray(_e$message$split, 3); + overweight = _e$message$split2[0]; + weight = _e$message$split2[1]; + maxConcurrent = _e$message$split2[2]; + throw new BottleneckError$3("Impossible to add a job having a weight of ".concat(weight, " to a limiter having a maxConcurrent setting of ").concat(maxConcurrent)); + + case 23: + throw e; + + case 24: + case "end": + return _context9.stop(); + } + } + }, _callee9, this, [[0, 11]]); + })); + + function __submit__(_x11, _x12) { + return _submit__.apply(this, arguments); + } + + return __submit__; + }() + }, { + key: "__free__", + value: function () { + var _free__ = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee10(index, weight) { + var running; + return regeneratorRuntime.wrap(function _callee10$(_context10) { + while (1) { + switch (_context10.prev = _context10.next) { + case 0: + _context10.next = 2; + return this.runScript("free", this.prepareArray([index])); + + case 2: + running = _context10.sent; + return _context10.abrupt("return", { + running: running + }); + + case 4: + case "end": + return _context10.stop(); + } + } + }, _callee10, this); + })); + + function __free__(_x13, _x14) { + return _free__.apply(this, arguments); + } + + return __free__; + }() + }]); + + return RedisDatastore; + }(); + + var RedisDatastore_1 = RedisDatastore; + + var BottleneckError$4, States; + BottleneckError$4 = BottleneckError_1; + + States = + /*#__PURE__*/ + function () { + function States(status1) { + _classCallCheck(this, States); + + this.status = status1; + this._jobs = {}; + this.counts = this.status.map(function () { + return 0; + }); + } + + _createClass(States, [{ + key: "next", + value: function next(id) { + var current, next; + current = this._jobs[id]; + next = current + 1; + + if (current != null && next < this.status.length) { + this.counts[current]--; + this.counts[next]++; + return this._jobs[id]++; + } else if (current != null) { + this.counts[current]--; + return delete this._jobs[id]; + } + } + }, { + key: "start", + value: function start(id) { + var initial; + initial = 0; + this._jobs[id] = initial; + return this.counts[initial]++; + } + }, { + key: "remove", + value: function remove(id) { + var current; + current = this._jobs[id]; + + if (current != null) { + this.counts[current]--; + delete this._jobs[id]; + } + + return current != null; + } + }, { + key: "jobStatus", + value: function jobStatus(id) { + var ref; + return (ref = this.status[this._jobs[id]]) != null ? ref : null; + } + }, { + key: "statusJobs", + value: function statusJobs(status) { + var k, pos, ref, results, v; + + if (status != null) { + pos = this.status.indexOf(status); + + if (pos < 0) { + throw new BottleneckError$4("status must be one of ".concat(this.status.join(', '))); + } + + ref = this._jobs; + results = []; + + for (k in ref) { + v = ref[k]; + + if (v === pos) { + results.push(k); + } + } + + return results; + } else { + return Object.keys(this._jobs); + } + } + }, { + key: "statusCounts", + value: function statusCounts() { + var _this = this; + + return this.counts.reduce(function (acc, v, i) { + acc[_this.status[i]] = v; + return acc; + }, {}); + } + }]); + + return States; + }(); + + var States_1 = States; + + var DLList$2, Sync; + DLList$2 = DLList_1; + + Sync = + /*#__PURE__*/ + function () { + function Sync(name, Promise) { + _classCallCheck(this, Sync); + + this.schedule = this.schedule.bind(this); + this.name = name; + this.Promise = Promise; + this._running = 0; + this._queue = new DLList$2(); + } + + _createClass(Sync, [{ + key: "isEmpty", + value: function isEmpty() { + return this._queue.length === 0; + } + }, { + key: "_tryToRun", + value: function () { + var _tryToRun2 = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2() { + var args, cb, error, reject, resolve, returned, task, _this$_queue$shift; + + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!(this._running < 1 && this._queue.length > 0)) { + _context2.next = 13; + break; + } + + this._running++; + _this$_queue$shift = this._queue.shift(); + task = _this$_queue$shift.task; + args = _this$_queue$shift.args; + resolve = _this$_queue$shift.resolve; + reject = _this$_queue$shift.reject; + _context2.next = 9; + return _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.prev = 0; + _context.next = 3; + return task.apply(void 0, _toConsumableArray(args)); + + case 3: + returned = _context.sent; + return _context.abrupt("return", function () { + return resolve(returned); + }); + + case 7: + _context.prev = 7; + _context.t0 = _context["catch"](0); + error = _context.t0; + return _context.abrupt("return", function () { + return reject(error); + }); + + case 11: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[0, 7]]); + }))(); + + case 9: + cb = _context2.sent; + this._running--; + + this._tryToRun(); + + return _context2.abrupt("return", cb()); + + case 13: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function _tryToRun() { + return _tryToRun2.apply(this, arguments); + } + + return _tryToRun; + }() + }, { + key: "schedule", + value: function schedule(task) { + var promise, reject, resolve; + resolve = reject = null; + promise = new this.Promise(function (_resolve, _reject) { + resolve = _resolve; + return reject = _reject; + }); + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + this._queue.push({ + task: task, + args: args, + resolve: resolve, + reject: reject + }); + + this._tryToRun(); + + return promise; + } + }]); + + return Sync; + }(); + + var Sync_1 = Sync; + + var version = "2.19.5"; + var version$1 = { + version: version + }; + + var version$2 = /*#__PURE__*/Object.freeze({ + version: version, + default: version$1 + }); + + var Events$4, Group, IORedisConnection$2, RedisConnection$2, Scripts$3, parser$6; + parser$6 = parser; + Events$4 = Events_1; + RedisConnection$2 = RedisConnection_1; + IORedisConnection$2 = IORedisConnection_1; + Scripts$3 = Scripts; + + Group = function () { + var Group = + /*#__PURE__*/ + function () { + function Group() { + var limiterOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, Group); + + this.deleteKey = this.deleteKey.bind(this); + this.limiterOptions = limiterOptions; + parser$6.load(this.limiterOptions, this.defaults, this); + this.Events = new Events$4(this); + this.instances = {}; + this.Bottleneck = Bottleneck_1; + + this._startAutoCleanup(); + + this.sharedConnection = this.connection != null; + + if (this.connection == null) { + if (this.limiterOptions.datastore === "redis") { + this.connection = new RedisConnection$2(Object.assign({}, this.limiterOptions, { + Events: this.Events + })); + } else if (this.limiterOptions.datastore === "ioredis") { + this.connection = new IORedisConnection$2(Object.assign({}, this.limiterOptions, { + Events: this.Events + })); + } + } + } + + _createClass(Group, [{ + key: "key", + value: function key() { + var _this = this; + + var _key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; + + var ref; + return (ref = this.instances[_key]) != null ? ref : function () { + var limiter; + limiter = _this.instances[_key] = new _this.Bottleneck(Object.assign(_this.limiterOptions, { + id: "".concat(_this.id, "-").concat(_key), + timeout: _this.timeout, + connection: _this.connection + })); + + _this.Events.trigger("created", limiter, _key); + + return limiter; + }(); + } + }, { + key: "deleteKey", + value: function () { + var _deleteKey = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee() { + var key, + deleted, + instance, + _args = arguments; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + key = _args.length > 0 && _args[0] !== undefined ? _args[0] : ""; + instance = this.instances[key]; + + if (!this.connection) { + _context.next = 6; + break; + } + + _context.next = 5; + return this.connection.__runCommand__(['del'].concat(_toConsumableArray(Scripts$3.allKeys("".concat(this.id, "-").concat(key))))); + + case 5: + deleted = _context.sent; + + case 6: + if (!(instance != null)) { + _context.next = 10; + break; + } + + delete this.instances[key]; + _context.next = 10; + return instance.disconnect(); + + case 10: + return _context.abrupt("return", instance != null || deleted > 0); + + case 11: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function deleteKey() { + return _deleteKey.apply(this, arguments); + } + + return deleteKey; + }() + }, { + key: "limiters", + value: function limiters() { + var k, ref, results, v; + ref = this.instances; + results = []; + + for (k in ref) { + v = ref[k]; + results.push({ + key: k, + limiter: v + }); + } + + return results; + } + }, { + key: "keys", + value: function keys() { + return Object.keys(this.instances); + } + }, { + key: "clusterKeys", + value: function () { + var _clusterKeys = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2() { + var cursor, end, found, i, k, keys, len, next, start, _ref, _ref2; + + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + if (!(this.connection == null)) { + _context2.next = 2; + break; + } + + return _context2.abrupt("return", this.Promise.resolve(this.keys())); + + case 2: + keys = []; + cursor = null; + start = "b_".concat(this.id, "-").length; + end = "_settings".length; + + case 6: + if (!(cursor !== 0)) { + _context2.next = 17; + break; + } + + _context2.next = 9; + return this.connection.__runCommand__(["scan", cursor != null ? cursor : 0, "match", "b_".concat(this.id, "-*_settings"), "count", 10000]); + + case 9: + _ref = _context2.sent; + _ref2 = _slicedToArray(_ref, 2); + next = _ref2[0]; + found = _ref2[1]; + cursor = ~~next; + + for (i = 0, len = found.length; i < len; i++) { + k = found[i]; + keys.push(k.slice(start, -end)); + } + + _context2.next = 6; + break; + + case 17: + return _context2.abrupt("return", keys); + + case 18: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function clusterKeys() { + return _clusterKeys.apply(this, arguments); + } + + return clusterKeys; + }() + }, { + key: "_startAutoCleanup", + value: function _startAutoCleanup() { + var _this2 = this; + + var base; + clearInterval(this.interval); + return typeof (base = this.interval = setInterval( + /*#__PURE__*/ + _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee3() { + var e, k, ref, results, time, v; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + time = Date.now(); + ref = _this2.instances; + results = []; + _context3.t0 = regeneratorRuntime.keys(ref); + + case 4: + if ((_context3.t1 = _context3.t0()).done) { + _context3.next = 23; + break; + } + + k = _context3.t1.value; + v = ref[k]; + _context3.prev = 7; + _context3.next = 10; + return v._store.__groupCheck__(time); + + case 10: + if (!_context3.sent) { + _context3.next = 14; + break; + } + + results.push(_this2.deleteKey(k)); + _context3.next = 15; + break; + + case 14: + results.push(void 0); + + case 15: + _context3.next = 21; + break; + + case 17: + _context3.prev = 17; + _context3.t2 = _context3["catch"](7); + e = _context3.t2; + results.push(v.Events.trigger("error", e)); + + case 21: + _context3.next = 4; + break; + + case 23: + return _context3.abrupt("return", results); + + case 24: + case "end": + return _context3.stop(); + } + } + }, _callee3, null, [[7, 17]]); + })), this.timeout / 2)).unref === "function" ? base.unref() : void 0; + } + }, { + key: "updateSettings", + value: function updateSettings() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + parser$6.overwrite(options, this.defaults, this); + parser$6.overwrite(options, options, this.limiterOptions); + + if (options.timeout != null) { + return this._startAutoCleanup(); + } + } + }, { + key: "disconnect", + value: function disconnect() { + var flush = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var ref; + + if (!this.sharedConnection) { + return (ref = this.connection) != null ? ref.disconnect(flush) : void 0; + } + } + }]); + + return Group; + }(); + Group.prototype.defaults = { + timeout: 1000 * 60 * 5, + connection: null, + Promise: Promise, + id: "group-key" + }; + return Group; + }.call(commonjsGlobal); + + var Group_1 = Group; + + var Batcher, Events$5, parser$7; + parser$7 = parser; + Events$5 = Events_1; + + Batcher = function () { + var Batcher = + /*#__PURE__*/ + function () { + function Batcher() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, Batcher); + + this.options = options; + parser$7.load(this.options, this.defaults, this); + this.Events = new Events$5(this); + this._arr = []; + + this._resetPromise(); + + this._lastFlush = Date.now(); + } + + _createClass(Batcher, [{ + key: "_resetPromise", + value: function _resetPromise() { + var _this = this; + + return this._promise = new this.Promise(function (res, rej) { + return _this._resolve = res; + }); + } + }, { + key: "_flush", + value: function _flush() { + clearTimeout(this._timeout); + this._lastFlush = Date.now(); + + this._resolve(); + + this.Events.trigger("batch", this._arr); + this._arr = []; + return this._resetPromise(); + } + }, { + key: "add", + value: function add(data) { + var _this2 = this; + + var ret; + + this._arr.push(data); + + ret = this._promise; + + if (this._arr.length === this.maxSize) { + this._flush(); + } else if (this.maxTime != null && this._arr.length === 1) { + this._timeout = setTimeout(function () { + return _this2._flush(); + }, this.maxTime); + } + + return ret; + } + }]); + + return Batcher; + }(); + Batcher.prototype.defaults = { + maxTime: null, + maxSize: null, + Promise: Promise + }; + return Batcher; + }.call(commonjsGlobal); + + var Batcher_1 = Batcher; + + var require$$8 = getCjsExportFromNamespace(version$2); + + var Bottleneck, + DEFAULT_PRIORITY$1, + Events$6, + Job$1, + LocalDatastore$1, + NUM_PRIORITIES$1, + Queues$1, + RedisDatastore$1, + States$1, + Sync$1, + parser$8, + splice = [].splice; + NUM_PRIORITIES$1 = 10; + DEFAULT_PRIORITY$1 = 5; + parser$8 = parser; + Queues$1 = Queues_1; + Job$1 = Job_1; + LocalDatastore$1 = LocalDatastore_1; + RedisDatastore$1 = RedisDatastore_1; + Events$6 = Events_1; + States$1 = States_1; + Sync$1 = Sync_1; + + Bottleneck = function () { + var Bottleneck = + /*#__PURE__*/ + function () { + function Bottleneck() { + var _this = this; + + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, Bottleneck); + + var storeInstanceOptions, storeOptions; + this._addToQueue = this._addToQueue.bind(this); + + for (var _len = arguments.length, invalid = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + invalid[_key - 1] = arguments[_key]; + } + + this._validateOptions(options, invalid); + + parser$8.load(options, this.instanceDefaults, this); + this._queues = new Queues$1(NUM_PRIORITIES$1); + this._scheduled = {}; + this._states = new States$1(["RECEIVED", "QUEUED", "RUNNING", "EXECUTING"].concat(this.trackDoneStatus ? ["DONE"] : [])); + this._limiter = null; + this.Events = new Events$6(this); + this._submitLock = new Sync$1("submit", this.Promise); + this._registerLock = new Sync$1("register", this.Promise); + storeOptions = parser$8.load(options, this.storeDefaults, {}); + + this._store = function () { + if (this.datastore === "redis" || this.datastore === "ioredis" || this.connection != null) { + storeInstanceOptions = parser$8.load(options, this.redisStoreDefaults, {}); + return new RedisDatastore$1(this, storeOptions, storeInstanceOptions); + } else if (this.datastore === "local") { + storeInstanceOptions = parser$8.load(options, this.localStoreDefaults, {}); + return new LocalDatastore$1(this, storeOptions, storeInstanceOptions); + } else { + throw new Bottleneck.prototype.BottleneckError("Invalid datastore type: ".concat(this.datastore)); + } + }.call(this); + + this._queues.on("leftzero", function () { + var ref; + return (ref = _this._store.heartbeat) != null ? typeof ref.ref === "function" ? ref.ref() : void 0 : void 0; + }); + + this._queues.on("zero", function () { + var ref; + return (ref = _this._store.heartbeat) != null ? typeof ref.unref === "function" ? ref.unref() : void 0 : void 0; + }); + } + + _createClass(Bottleneck, [{ + key: "_validateOptions", + value: function _validateOptions(options, invalid) { + if (!(options != null && _typeof(options) === "object" && invalid.length === 0)) { + throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1."); + } + } + }, { + key: "ready", + value: function ready() { + return this._store.ready; + } + }, { + key: "clients", + value: function clients() { + return this._store.clients; + } + }, { + key: "channel", + value: function channel() { + return "b_".concat(this.id); + } + }, { + key: "channel_client", + value: function channel_client() { + return "b_".concat(this.id, "_").concat(this._store.clientId); + } + }, { + key: "publish", + value: function publish(message) { + return this._store.__publish__(message); + } + }, { + key: "disconnect", + value: function disconnect() { + var flush = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + return this._store.__disconnect__(flush); + } + }, { + key: "chain", + value: function chain(_limiter) { + this._limiter = _limiter; + return this; + } + }, { + key: "queued", + value: function queued(priority) { + return this._queues.queued(priority); + } + }, { + key: "clusterQueued", + value: function clusterQueued() { + return this._store.__queued__(); + } + }, { + key: "empty", + value: function empty() { + return this.queued() === 0 && this._submitLock.isEmpty(); + } + }, { + key: "running", + value: function running() { + return this._store.__running__(); + } + }, { + key: "done", + value: function done() { + return this._store.__done__(); + } + }, { + key: "jobStatus", + value: function jobStatus(id) { + return this._states.jobStatus(id); + } + }, { + key: "jobs", + value: function jobs(status) { + return this._states.statusJobs(status); + } + }, { + key: "counts", + value: function counts() { + return this._states.statusCounts(); + } + }, { + key: "_randomIndex", + value: function _randomIndex() { + return Math.random().toString(36).slice(2); + } + }, { + key: "check", + value: function check() { + var weight = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + return this._store.__check__(weight); + } + }, { + key: "_clearGlobalState", + value: function _clearGlobalState(index) { + if (this._scheduled[index] != null) { + clearTimeout(this._scheduled[index].expiration); + delete this._scheduled[index]; + return true; + } else { + return false; + } + } + }, { + key: "_free", + value: function () { + var _free2 = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee(index, job, options, eventInfo) { + var e, running, _ref; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.prev = 0; + _context.next = 3; + return this._store.__free__(index, options.weight); + + case 3: + _ref = _context.sent; + running = _ref.running; + this.Events.trigger("debug", "Freed ".concat(options.id), eventInfo); + + if (!(running === 0 && this.empty())) { + _context.next = 8; + break; + } + + return _context.abrupt("return", this.Events.trigger("idle")); + + case 8: + _context.next = 14; + break; + + case 10: + _context.prev = 10; + _context.t0 = _context["catch"](0); + e = _context.t0; + return _context.abrupt("return", this.Events.trigger("error", e)); + + case 14: + case "end": + return _context.stop(); + } + } + }, _callee, this, [[0, 10]]); + })); + + function _free(_x, _x2, _x3, _x4) { + return _free2.apply(this, arguments); + } + + return _free; + }() + }, { + key: "_run", + value: function _run(index, job, wait) { + var _this2 = this; + + var clearGlobalState, free, run; + job.doRun(); + clearGlobalState = this._clearGlobalState.bind(this, index); + run = this._run.bind(this, index, job); + free = this._free.bind(this, index, job); + return this._scheduled[index] = { + timeout: setTimeout(function () { + return job.doExecute(_this2._limiter, clearGlobalState, run, free); + }, wait), + expiration: job.options.expiration != null ? setTimeout(function () { + return job.doExpire(clearGlobalState, run, free); + }, wait + job.options.expiration) : void 0, + job: job + }; + } + }, { + key: "_drainOne", + value: function _drainOne(capacity) { + var _this3 = this; + + return this._registerLock.schedule(function () { + var args, index, next, options, queue; + + if (_this3.queued() === 0) { + return _this3.Promise.resolve(null); + } + + queue = _this3._queues.getFirst(); + + var _next = next = queue.first(); + + options = _next.options; + args = _next.args; + + if (capacity != null && options.weight > capacity) { + return _this3.Promise.resolve(null); + } + + _this3.Events.trigger("debug", "Draining ".concat(options.id), { + args: args, + options: options + }); + + index = _this3._randomIndex(); + return _this3._store.__register__(index, options.weight, options.expiration).then(function (_ref2) { + var success = _ref2.success, + wait = _ref2.wait, + reservoir = _ref2.reservoir; + var empty; + + _this3.Events.trigger("debug", "Drained ".concat(options.id), { + success: success, + args: args, + options: options + }); + + if (success) { + queue.shift(); + empty = _this3.empty(); + + if (empty) { + _this3.Events.trigger("empty"); + } + + if (reservoir === 0) { + _this3.Events.trigger("depleted", empty); + } + + _this3._run(index, next, wait); + + return _this3.Promise.resolve(options.weight); + } else { + return _this3.Promise.resolve(null); + } + }); + }); + } + }, { + key: "_drainAll", + value: function _drainAll(capacity) { + var _this4 = this; + + var total = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return this._drainOne(capacity).then(function (drained) { + var newCapacity; + + if (drained != null) { + newCapacity = capacity != null ? capacity - drained : capacity; + return _this4._drainAll(newCapacity, total + drained); + } else { + return _this4.Promise.resolve(total); + } + })["catch"](function (e) { + return _this4.Events.trigger("error", e); + }); + } + }, { + key: "_dropAllQueued", + value: function _dropAllQueued(message) { + return this._queues.shiftAll(function (job) { + return job.doDrop({ + message: message + }); + }); + } + }, { + key: "stop", + value: function stop() { + var _this5 = this; + + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var done, waitForExecuting; + options = parser$8.load(options, this.stopDefaults); + + waitForExecuting = function waitForExecuting(at) { + var finished; + + finished = function finished() { + var counts; + counts = _this5._states.counts; + return counts[0] + counts[1] + counts[2] + counts[3] === at; + }; + + return new _this5.Promise(function (resolve, reject) { + if (finished()) { + return resolve(); + } else { + return _this5.on("done", function () { + if (finished()) { + _this5.removeAllListeners("done"); + + return resolve(); + } + }); + } + }); + }; + + done = options.dropWaitingJobs ? (this._run = function (index, next) { + return next.doDrop({ + message: options.dropErrorMessage + }); + }, this._drainOne = function () { + return _this5.Promise.resolve(null); + }, this._registerLock.schedule(function () { + return _this5._submitLock.schedule(function () { + var k, ref, v; + ref = _this5._scheduled; + + for (k in ref) { + v = ref[k]; + + if (_this5.jobStatus(v.job.options.id) === "RUNNING") { + clearTimeout(v.timeout); + clearTimeout(v.expiration); + v.job.doDrop({ + message: options.dropErrorMessage + }); + } + } + + _this5._dropAllQueued(options.dropErrorMessage); + + return waitForExecuting(0); + }); + })) : this.schedule({ + priority: NUM_PRIORITIES$1 - 1, + weight: 0 + }, function () { + return waitForExecuting(1); + }); + + this._receive = function (job) { + return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage)); + }; + + this.stop = function () { + return _this5.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called")); + }; + + return done; + } + }, { + key: "_addToQueue", + value: function () { + var _addToQueue2 = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee2(job) { + var args, blocked, error, options, reachedHWM, shifted, strategy, _ref3; + + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + args = job.args; + options = job.options; + _context2.prev = 2; + _context2.next = 5; + return this._store.__submit__(this.queued(), options.weight); + + case 5: + _ref3 = _context2.sent; + reachedHWM = _ref3.reachedHWM; + blocked = _ref3.blocked; + strategy = _ref3.strategy; + _context2.next = 17; + break; + + case 11: + _context2.prev = 11; + _context2.t0 = _context2["catch"](2); + error = _context2.t0; + this.Events.trigger("debug", "Could not queue ".concat(options.id), { + args: args, + options: options, + error: error + }); + job.doDrop({ + error: error + }); + return _context2.abrupt("return", false); + + case 17: + if (!blocked) { + _context2.next = 22; + break; + } + + job.doDrop(); + return _context2.abrupt("return", true); + + case 22: + if (!reachedHWM) { + _context2.next = 28; + break; + } + + shifted = strategy === Bottleneck.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0; + + if (shifted != null) { + shifted.doDrop(); + } + + if (!(shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW)) { + _context2.next = 28; + break; + } + + if (shifted == null) { + job.doDrop(); + } + + return _context2.abrupt("return", reachedHWM); + + case 28: + job.doQueue(reachedHWM, blocked); + + this._queues.push(job); + + _context2.next = 32; + return this._drainAll(); + + case 32: + return _context2.abrupt("return", reachedHWM); + + case 33: + case "end": + return _context2.stop(); + } + } + }, _callee2, this, [[2, 11]]); + })); + + function _addToQueue(_x5) { + return _addToQueue2.apply(this, arguments); + } + + return _addToQueue; + }() + }, { + key: "_receive", + value: function _receive(job) { + if (this._states.jobStatus(job.options.id) != null) { + job._reject(new Bottleneck.prototype.BottleneckError("A job with the same id already exists (id=".concat(job.options.id, ")"))); + + return false; + } else { + job.doReceive(); + return this._submitLock.schedule(this._addToQueue, job); + } + } + }, { + key: "submit", + value: function submit() { + var _this6 = this; + + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + var cb, fn, job, options, ref, ref1, task; + + if (typeof args[0] === "function") { + var _ref4, _ref5, _splice$call, _splice$call2; + + ref = args, (_ref4 = ref, _ref5 = _toArray(_ref4), fn = _ref5[0], args = _ref5.slice(1), _ref4), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call); + options = parser$8.load({}, this.jobDefaults); + } else { + var _ref6, _ref7, _splice$call3, _splice$call4; + + ref1 = args, (_ref6 = ref1, _ref7 = _toArray(_ref6), options = _ref7[0], fn = _ref7[1], args = _ref7.slice(2), _ref6), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3); + options = parser$8.load(options, this.jobDefaults); + } + + task = function task() { + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; + } + + return new _this6.Promise(function (resolve, reject) { + return fn.apply(void 0, args.concat([function () { + for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { + args[_key4] = arguments[_key4]; + } + + return (args[0] != null ? reject : resolve)(args); + }])); + }); + }; + + job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + job.promise.then(function (args) { + return typeof cb === "function" ? cb.apply(void 0, _toConsumableArray(args)) : void 0; + })["catch"](function (args) { + if (Array.isArray(args)) { + return typeof cb === "function" ? cb.apply(void 0, _toConsumableArray(args)) : void 0; + } else { + return typeof cb === "function" ? cb(args) : void 0; + } + }); + return this._receive(job); + } + }, { + key: "schedule", + value: function schedule() { + for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { + args[_key5] = arguments[_key5]; + } + + var job, options, task; + + if (typeof args[0] === "function") { + var _args3 = args; + + var _args4 = _toArray(_args3); + + task = _args4[0]; + args = _args4.slice(1); + options = {}; + } else { + var _args5 = args; + + var _args6 = _toArray(_args5); + + options = _args6[0]; + task = _args6[1]; + args = _args6.slice(2); + } + + job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + + this._receive(job); + + return job.promise; + } + }, { + key: "wrap", + value: function wrap(fn) { + var schedule, wrapped; + schedule = this.schedule.bind(this); + + wrapped = function wrapped() { + for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { + args[_key6] = arguments[_key6]; + } + + return schedule.apply(void 0, [fn.bind(this)].concat(args)); + }; + + wrapped.withOptions = function (options) { + for (var _len7 = arguments.length, args = new Array(_len7 > 1 ? _len7 - 1 : 0), _key7 = 1; _key7 < _len7; _key7++) { + args[_key7 - 1] = arguments[_key7]; + } + + return schedule.apply(void 0, [options, fn].concat(args)); + }; + + return wrapped; + } + }, { + key: "updateSettings", + value: function () { + var _updateSettings = _asyncToGenerator( + /*#__PURE__*/ + regeneratorRuntime.mark(function _callee3() { + var options, + _args7 = arguments; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + options = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {}; + _context3.next = 3; + return this._store.__updateSettings__(parser$8.overwrite(options, this.storeDefaults)); + + case 3: + parser$8.overwrite(options, this.instanceDefaults, this); + return _context3.abrupt("return", this); + + case 5: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function updateSettings() { + return _updateSettings.apply(this, arguments); + } + + return updateSettings; + }() + }, { + key: "currentReservoir", + value: function currentReservoir() { + return this._store.__currentReservoir__(); + } + }, { + key: "incrementReservoir", + value: function incrementReservoir() { + var incr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + return this._store.__incrementReservoir__(incr); + } + }]); + + return Bottleneck; + }(); + Bottleneck["default"] = Bottleneck; + Bottleneck.Events = Events$6; + Bottleneck.version = Bottleneck.prototype.version = require$$8.version; + Bottleneck.strategy = Bottleneck.prototype.strategy = { + LEAK: 1, + OVERFLOW: 2, + OVERFLOW_PRIORITY: 4, + BLOCK: 3 + }; + Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = BottleneckError_1; + Bottleneck.Group = Bottleneck.prototype.Group = Group_1; + Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = RedisConnection_1; + Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = IORedisConnection_1; + Bottleneck.Batcher = Bottleneck.prototype.Batcher = Batcher_1; + Bottleneck.prototype.jobDefaults = { + priority: DEFAULT_PRIORITY$1, + weight: 1, + expiration: null, + id: "" + }; + Bottleneck.prototype.storeDefaults = { + maxConcurrent: null, + minTime: 0, + highWater: null, + strategy: Bottleneck.prototype.strategy.LEAK, + penalty: null, + reservoir: null, + reservoirRefreshInterval: null, + reservoirRefreshAmount: null, + reservoirIncreaseInterval: null, + reservoirIncreaseAmount: null, + reservoirIncreaseMaximum: null + }; + Bottleneck.prototype.localStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 250 + }; + Bottleneck.prototype.redisStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 5000, + clientTimeout: 10000, + Redis: null, + clientOptions: {}, + clusterNodes: null, + clearDatastore: false, + connection: null + }; + Bottleneck.prototype.instanceDefaults = { + datastore: "local", + connection: null, + id: "", + rejectOnDrop: true, + trackDoneStatus: false, + Promise: Promise + }; + Bottleneck.prototype.stopDefaults = { + enqueueErrorMessage: "This limiter has been stopped and cannot accept new jobs.", + dropWaitingJobs: true, + dropErrorMessage: "This limiter has been stopped." + }; + return Bottleneck; + }.call(commonjsGlobal); + + var Bottleneck_1 = Bottleneck; + + var es5 = Bottleneck_1; + + return es5; + +}))); diff --git a/node_modules/bottleneck/lib/Batcher.js b/node_modules/bottleneck/lib/Batcher.js new file mode 100644 index 0000000..f52892a --- /dev/null +++ b/node_modules/bottleneck/lib/Batcher.js @@ -0,0 +1,66 @@ +"use strict"; + +var Batcher, Events, parser; +parser = require("./parser"); +Events = require("./Events"); + +Batcher = function () { + class Batcher { + constructor(options = {}) { + this.options = options; + parser.load(this.options, this.defaults, this); + this.Events = new Events(this); + this._arr = []; + + this._resetPromise(); + + this._lastFlush = Date.now(); + } + + _resetPromise() { + return this._promise = new this.Promise((res, rej) => { + return this._resolve = res; + }); + } + + _flush() { + clearTimeout(this._timeout); + this._lastFlush = Date.now(); + + this._resolve(); + + this.Events.trigger("batch", this._arr); + this._arr = []; + return this._resetPromise(); + } + + add(data) { + var ret; + + this._arr.push(data); + + ret = this._promise; + + if (this._arr.length === this.maxSize) { + this._flush(); + } else if (this.maxTime != null && this._arr.length === 1) { + this._timeout = setTimeout(() => { + return this._flush(); + }, this.maxTime); + } + + return ret; + } + + } + + ; + Batcher.prototype.defaults = { + maxTime: null, + maxSize: null, + Promise: Promise + }; + return Batcher; +}.call(void 0); + +module.exports = Batcher; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/Bottleneck.js b/node_modules/bottleneck/lib/Bottleneck.js new file mode 100644 index 0000000..ff640a1 --- /dev/null +++ b/node_modules/bottleneck/lib/Bottleneck.js @@ -0,0 +1,594 @@ +"use strict"; + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var Bottleneck, + DEFAULT_PRIORITY, + Events, + Job, + LocalDatastore, + NUM_PRIORITIES, + Queues, + RedisDatastore, + States, + Sync, + parser, + splice = [].splice; +NUM_PRIORITIES = 10; +DEFAULT_PRIORITY = 5; +parser = require("./parser"); +Queues = require("./Queues"); +Job = require("./Job"); +LocalDatastore = require("./LocalDatastore"); +RedisDatastore = require("./RedisDatastore"); +Events = require("./Events"); +States = require("./States"); +Sync = require("./Sync"); + +Bottleneck = function () { + class Bottleneck { + constructor(options = {}, ...invalid) { + var storeInstanceOptions, storeOptions; + this._addToQueue = this._addToQueue.bind(this); + + this._validateOptions(options, invalid); + + parser.load(options, this.instanceDefaults, this); + this._queues = new Queues(NUM_PRIORITIES); + this._scheduled = {}; + this._states = new States(["RECEIVED", "QUEUED", "RUNNING", "EXECUTING"].concat(this.trackDoneStatus ? ["DONE"] : [])); + this._limiter = null; + this.Events = new Events(this); + this._submitLock = new Sync("submit", this.Promise); + this._registerLock = new Sync("register", this.Promise); + storeOptions = parser.load(options, this.storeDefaults, {}); + + this._store = function () { + if (this.datastore === "redis" || this.datastore === "ioredis" || this.connection != null) { + storeInstanceOptions = parser.load(options, this.redisStoreDefaults, {}); + return new RedisDatastore(this, storeOptions, storeInstanceOptions); + } else if (this.datastore === "local") { + storeInstanceOptions = parser.load(options, this.localStoreDefaults, {}); + return new LocalDatastore(this, storeOptions, storeInstanceOptions); + } else { + throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`); + } + }.call(this); + + this._queues.on("leftzero", () => { + var ref; + return (ref = this._store.heartbeat) != null ? typeof ref.ref === "function" ? ref.ref() : void 0 : void 0; + }); + + this._queues.on("zero", () => { + var ref; + return (ref = this._store.heartbeat) != null ? typeof ref.unref === "function" ? ref.unref() : void 0 : void 0; + }); + } + + _validateOptions(options, invalid) { + if (!(options != null && typeof options === "object" && invalid.length === 0)) { + throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1."); + } + } + + ready() { + return this._store.ready; + } + + clients() { + return this._store.clients; + } + + channel() { + return `b_${this.id}`; + } + + channel_client() { + return `b_${this.id}_${this._store.clientId}`; + } + + publish(message) { + return this._store.__publish__(message); + } + + disconnect(flush = true) { + return this._store.__disconnect__(flush); + } + + chain(_limiter) { + this._limiter = _limiter; + return this; + } + + queued(priority) { + return this._queues.queued(priority); + } + + clusterQueued() { + return this._store.__queued__(); + } + + empty() { + return this.queued() === 0 && this._submitLock.isEmpty(); + } + + running() { + return this._store.__running__(); + } + + done() { + return this._store.__done__(); + } + + jobStatus(id) { + return this._states.jobStatus(id); + } + + jobs(status) { + return this._states.statusJobs(status); + } + + counts() { + return this._states.statusCounts(); + } + + _randomIndex() { + return Math.random().toString(36).slice(2); + } + + check(weight = 1) { + return this._store.__check__(weight); + } + + _clearGlobalState(index) { + if (this._scheduled[index] != null) { + clearTimeout(this._scheduled[index].expiration); + delete this._scheduled[index]; + return true; + } else { + return false; + } + } + + _free(index, job, options, eventInfo) { + var _this = this; + + return _asyncToGenerator(function* () { + var e, running; + + try { + var _ref = yield _this._store.__free__(index, options.weight); + + running = _ref.running; + + _this.Events.trigger("debug", `Freed ${options.id}`, eventInfo); + + if (running === 0 && _this.empty()) { + return _this.Events.trigger("idle"); + } + } catch (error1) { + e = error1; + return _this.Events.trigger("error", e); + } + })(); + } + + _run(index, job, wait) { + var clearGlobalState, free, run; + job.doRun(); + clearGlobalState = this._clearGlobalState.bind(this, index); + run = this._run.bind(this, index, job); + free = this._free.bind(this, index, job); + return this._scheduled[index] = { + timeout: setTimeout(() => { + return job.doExecute(this._limiter, clearGlobalState, run, free); + }, wait), + expiration: job.options.expiration != null ? setTimeout(function () { + return job.doExpire(clearGlobalState, run, free); + }, wait + job.options.expiration) : void 0, + job: job + }; + } + + _drainOne(capacity) { + return this._registerLock.schedule(() => { + var args, index, next, options, queue; + + if (this.queued() === 0) { + return this.Promise.resolve(null); + } + + queue = this._queues.getFirst(); + + var _next2 = next = queue.first(); + + options = _next2.options; + args = _next2.args; + + if (capacity != null && options.weight > capacity) { + return this.Promise.resolve(null); + } + + this.Events.trigger("debug", `Draining ${options.id}`, { + args, + options + }); + index = this._randomIndex(); + return this._store.__register__(index, options.weight, options.expiration).then(({ + success, + wait, + reservoir + }) => { + var empty; + this.Events.trigger("debug", `Drained ${options.id}`, { + success, + args, + options + }); + + if (success) { + queue.shift(); + empty = this.empty(); + + if (empty) { + this.Events.trigger("empty"); + } + + if (reservoir === 0) { + this.Events.trigger("depleted", empty); + } + + this._run(index, next, wait); + + return this.Promise.resolve(options.weight); + } else { + return this.Promise.resolve(null); + } + }); + }); + } + + _drainAll(capacity, total = 0) { + return this._drainOne(capacity).then(drained => { + var newCapacity; + + if (drained != null) { + newCapacity = capacity != null ? capacity - drained : capacity; + return this._drainAll(newCapacity, total + drained); + } else { + return this.Promise.resolve(total); + } + }).catch(e => { + return this.Events.trigger("error", e); + }); + } + + _dropAllQueued(message) { + return this._queues.shiftAll(function (job) { + return job.doDrop({ + message + }); + }); + } + + stop(options = {}) { + var done, waitForExecuting; + options = parser.load(options, this.stopDefaults); + + waitForExecuting = at => { + var finished; + + finished = () => { + var counts; + counts = this._states.counts; + return counts[0] + counts[1] + counts[2] + counts[3] === at; + }; + + return new this.Promise((resolve, reject) => { + if (finished()) { + return resolve(); + } else { + return this.on("done", () => { + if (finished()) { + this.removeAllListeners("done"); + return resolve(); + } + }); + } + }); + }; + + done = options.dropWaitingJobs ? (this._run = function (index, next) { + return next.doDrop({ + message: options.dropErrorMessage + }); + }, this._drainOne = () => { + return this.Promise.resolve(null); + }, this._registerLock.schedule(() => { + return this._submitLock.schedule(() => { + var k, ref, v; + ref = this._scheduled; + + for (k in ref) { + v = ref[k]; + + if (this.jobStatus(v.job.options.id) === "RUNNING") { + clearTimeout(v.timeout); + clearTimeout(v.expiration); + v.job.doDrop({ + message: options.dropErrorMessage + }); + } + } + + this._dropAllQueued(options.dropErrorMessage); + + return waitForExecuting(0); + }); + })) : this.schedule({ + priority: NUM_PRIORITIES - 1, + weight: 0 + }, () => { + return waitForExecuting(1); + }); + + this._receive = function (job) { + return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage)); + }; + + this.stop = () => { + return this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called")); + }; + + return done; + } + + _addToQueue(job) { + var _this2 = this; + + return _asyncToGenerator(function* () { + var args, blocked, error, options, reachedHWM, shifted, strategy; + args = job.args; + options = job.options; + + try { + var _ref2 = yield _this2._store.__submit__(_this2.queued(), options.weight); + + reachedHWM = _ref2.reachedHWM; + blocked = _ref2.blocked; + strategy = _ref2.strategy; + } catch (error1) { + error = error1; + + _this2.Events.trigger("debug", `Could not queue ${options.id}`, { + args, + options, + error + }); + + job.doDrop({ + error + }); + return false; + } + + if (blocked) { + job.doDrop(); + return true; + } else if (reachedHWM) { + shifted = strategy === Bottleneck.prototype.strategy.LEAK ? _this2._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? _this2._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0; + + if (shifted != null) { + shifted.doDrop(); + } + + if (shifted == null || strategy === Bottleneck.prototype.strategy.OVERFLOW) { + if (shifted == null) { + job.doDrop(); + } + + return reachedHWM; + } + } + + job.doQueue(reachedHWM, blocked); + + _this2._queues.push(job); + + yield _this2._drainAll(); + return reachedHWM; + })(); + } + + _receive(job) { + if (this._states.jobStatus(job.options.id) != null) { + job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`)); + + return false; + } else { + job.doReceive(); + return this._submitLock.schedule(this._addToQueue, job); + } + } + + submit(...args) { + var cb, fn, job, options, ref, ref1, task; + + if (typeof args[0] === "function") { + var _ref3, _ref4, _splice$call, _splice$call2; + + ref = args, (_ref3 = ref, _ref4 = _toArray(_ref3), fn = _ref4[0], args = _ref4.slice(1), _ref3), (_splice$call = splice.call(args, -1), _splice$call2 = _slicedToArray(_splice$call, 1), cb = _splice$call2[0], _splice$call); + options = parser.load({}, this.jobDefaults); + } else { + var _ref5, _ref6, _splice$call3, _splice$call4; + + ref1 = args, (_ref5 = ref1, _ref6 = _toArray(_ref5), options = _ref6[0], fn = _ref6[1], args = _ref6.slice(2), _ref5), (_splice$call3 = splice.call(args, -1), _splice$call4 = _slicedToArray(_splice$call3, 1), cb = _splice$call4[0], _splice$call3); + options = parser.load(options, this.jobDefaults); + } + + task = (...args) => { + return new this.Promise(function (resolve, reject) { + return fn(...args, function (...args) { + return (args[0] != null ? reject : resolve)(args); + }); + }); + }; + + job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + job.promise.then(function (args) { + return typeof cb === "function" ? cb(...args) : void 0; + }).catch(function (args) { + if (Array.isArray(args)) { + return typeof cb === "function" ? cb(...args) : void 0; + } else { + return typeof cb === "function" ? cb(args) : void 0; + } + }); + return this._receive(job); + } + + schedule(...args) { + var job, options, task; + + if (typeof args[0] === "function") { + var _args = args; + + var _args2 = _toArray(_args); + + task = _args2[0]; + args = _args2.slice(1); + options = {}; + } else { + var _args3 = args; + + var _args4 = _toArray(_args3); + + options = _args4[0]; + task = _args4[1]; + args = _args4.slice(2); + } + + job = new Job(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + + this._receive(job); + + return job.promise; + } + + wrap(fn) { + var schedule, wrapped; + schedule = this.schedule.bind(this); + + wrapped = function wrapped(...args) { + return schedule(fn.bind(this), ...args); + }; + + wrapped.withOptions = function (options, ...args) { + return schedule(options, fn, ...args); + }; + + return wrapped; + } + + updateSettings(options = {}) { + var _this3 = this; + + return _asyncToGenerator(function* () { + yield _this3._store.__updateSettings__(parser.overwrite(options, _this3.storeDefaults)); + parser.overwrite(options, _this3.instanceDefaults, _this3); + return _this3; + })(); + } + + currentReservoir() { + return this._store.__currentReservoir__(); + } + + incrementReservoir(incr = 0) { + return this._store.__incrementReservoir__(incr); + } + + } + + ; + Bottleneck.default = Bottleneck; + Bottleneck.Events = Events; + Bottleneck.version = Bottleneck.prototype.version = require("./version.json").version; + Bottleneck.strategy = Bottleneck.prototype.strategy = { + LEAK: 1, + OVERFLOW: 2, + OVERFLOW_PRIORITY: 4, + BLOCK: 3 + }; + Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = require("./BottleneckError"); + Bottleneck.Group = Bottleneck.prototype.Group = require("./Group"); + Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require("./RedisConnection"); + Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require("./IORedisConnection"); + Bottleneck.Batcher = Bottleneck.prototype.Batcher = require("./Batcher"); + Bottleneck.prototype.jobDefaults = { + priority: DEFAULT_PRIORITY, + weight: 1, + expiration: null, + id: "" + }; + Bottleneck.prototype.storeDefaults = { + maxConcurrent: null, + minTime: 0, + highWater: null, + strategy: Bottleneck.prototype.strategy.LEAK, + penalty: null, + reservoir: null, + reservoirRefreshInterval: null, + reservoirRefreshAmount: null, + reservoirIncreaseInterval: null, + reservoirIncreaseAmount: null, + reservoirIncreaseMaximum: null + }; + Bottleneck.prototype.localStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 250 + }; + Bottleneck.prototype.redisStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 5000, + clientTimeout: 10000, + Redis: null, + clientOptions: {}, + clusterNodes: null, + clearDatastore: false, + connection: null + }; + Bottleneck.prototype.instanceDefaults = { + datastore: "local", + connection: null, + id: "", + rejectOnDrop: true, + trackDoneStatus: false, + Promise: Promise + }; + Bottleneck.prototype.stopDefaults = { + enqueueErrorMessage: "This limiter has been stopped and cannot accept new jobs.", + dropWaitingJobs: true, + dropErrorMessage: "This limiter has been stopped." + }; + return Bottleneck; +}.call(void 0); + +module.exports = Bottleneck; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/BottleneckError.js b/node_modules/bottleneck/lib/BottleneckError.js new file mode 100644 index 0000000..f8eeaff --- /dev/null +++ b/node_modules/bottleneck/lib/BottleneckError.js @@ -0,0 +1,5 @@ +"use strict"; + +var BottleneckError; +BottleneckError = class BottleneckError extends Error {}; +module.exports = BottleneckError; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/DLList.js b/node_modules/bottleneck/lib/DLList.js new file mode 100644 index 0000000..b469a65 --- /dev/null +++ b/node_modules/bottleneck/lib/DLList.js @@ -0,0 +1,107 @@ +"use strict"; + +var DLList; +DLList = class DLList { + constructor(incr, decr) { + this.incr = incr; + this.decr = decr; + this._first = null; + this._last = null; + this.length = 0; + } + + push(value) { + var node; + this.length++; + + if (typeof this.incr === "function") { + this.incr(); + } + + node = { + value, + prev: this._last, + next: null + }; + + if (this._last != null) { + this._last.next = node; + this._last = node; + } else { + this._first = this._last = node; + } + + return void 0; + } + + shift() { + var value; + + if (this._first == null) { + return; + } else { + this.length--; + + if (typeof this.decr === "function") { + this.decr(); + } + } + + value = this._first.value; + + if ((this._first = this._first.next) != null) { + this._first.prev = null; + } else { + this._last = null; + } + + return value; + } + + first() { + if (this._first != null) { + return this._first.value; + } + } + + getArray() { + var node, ref, results; + node = this._first; + results = []; + + while (node != null) { + results.push((ref = node, node = node.next, ref.value)); + } + + return results; + } + + forEachShift(cb) { + var node; + node = this.shift(); + + while (node != null) { + cb(node), node = this.shift(); + } + + return void 0; + } + + debug() { + var node, ref, ref1, ref2, results; + node = this._first; + results = []; + + while (node != null) { + results.push((ref = node, node = node.next, { + value: ref.value, + prev: (ref1 = ref.prev) != null ? ref1.value : void 0, + next: (ref2 = ref.next) != null ? ref2.value : void 0 + })); + } + + return results; + } + +}; +module.exports = DLList; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/Events.js b/node_modules/bottleneck/lib/Events.js new file mode 100644 index 0000000..e843257 --- /dev/null +++ b/node_modules/bottleneck/lib/Events.js @@ -0,0 +1,128 @@ +"use strict"; + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var Events; +Events = class Events { + constructor(instance) { + this.instance = instance; + this._events = {}; + + if (this.instance.on != null || this.instance.once != null || this.instance.removeAllListeners != null) { + throw new Error("An Emitter already exists for this object"); + } + + this.instance.on = (name, cb) => { + return this._addListener(name, "many", cb); + }; + + this.instance.once = (name, cb) => { + return this._addListener(name, "once", cb); + }; + + this.instance.removeAllListeners = (name = null) => { + if (name != null) { + return delete this._events[name]; + } else { + return this._events = {}; + } + }; + } + + _addListener(name, status, cb) { + var base; + + if ((base = this._events)[name] == null) { + base[name] = []; + } + + this._events[name].push({ + cb, + status + }); + + return this.instance; + } + + listenerCount(name) { + if (this._events[name] != null) { + return this._events[name].length; + } else { + return 0; + } + } + + trigger(name, ...args) { + var _this = this; + + return _asyncToGenerator(function* () { + var e, promises; + + try { + if (name !== "debug") { + _this.trigger("debug", `Event triggered: ${name}`, args); + } + + if (_this._events[name] == null) { + return; + } + + _this._events[name] = _this._events[name].filter(function (listener) { + return listener.status !== "none"; + }); + promises = _this._events[name].map( + /*#__PURE__*/ + function () { + var _ref = _asyncToGenerator(function* (listener) { + var e, returned; + + if (listener.status === "none") { + return; + } + + if (listener.status === "once") { + listener.status = "none"; + } + + try { + returned = typeof listener.cb === "function" ? listener.cb(...args) : void 0; + + if (typeof (returned != null ? returned.then : void 0) === "function") { + return yield returned; + } else { + return returned; + } + } catch (error) { + e = error; + + if ("name" !== "error") { + _this.trigger("error", e); + } + + return null; + } + }); + + return function (_x) { + return _ref.apply(this, arguments); + }; + }()); + return (yield Promise.all(promises)).find(function (x) { + return x != null; + }); + } catch (error) { + e = error; + + if ("name" !== "error") { + _this.trigger("error", e); + } + + return null; + } + })(); + } + +}; +module.exports = Events; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/Group.js b/node_modules/bottleneck/lib/Group.js new file mode 100644 index 0000000..39676a5 --- /dev/null +++ b/node_modules/bottleneck/lib/Group.js @@ -0,0 +1,198 @@ +"use strict"; + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var Events, Group, IORedisConnection, RedisConnection, Scripts, parser; +parser = require("./parser"); +Events = require("./Events"); +RedisConnection = require("./RedisConnection"); +IORedisConnection = require("./IORedisConnection"); +Scripts = require("./Scripts"); + +Group = function () { + class Group { + constructor(limiterOptions = {}) { + this.deleteKey = this.deleteKey.bind(this); + this.limiterOptions = limiterOptions; + parser.load(this.limiterOptions, this.defaults, this); + this.Events = new Events(this); + this.instances = {}; + this.Bottleneck = require("./Bottleneck"); + + this._startAutoCleanup(); + + this.sharedConnection = this.connection != null; + + if (this.connection == null) { + if (this.limiterOptions.datastore === "redis") { + this.connection = new RedisConnection(Object.assign({}, this.limiterOptions, { + Events: this.Events + })); + } else if (this.limiterOptions.datastore === "ioredis") { + this.connection = new IORedisConnection(Object.assign({}, this.limiterOptions, { + Events: this.Events + })); + } + } + } + + key(key = "") { + var ref; + return (ref = this.instances[key]) != null ? ref : (() => { + var limiter; + limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, { + id: `${this.id}-${key}`, + timeout: this.timeout, + connection: this.connection + })); + this.Events.trigger("created", limiter, key); + return limiter; + })(); + } + + deleteKey(key = "") { + var _this = this; + + return _asyncToGenerator(function* () { + var deleted, instance; + instance = _this.instances[key]; + + if (_this.connection) { + deleted = yield _this.connection.__runCommand__(['del', ...Scripts.allKeys(`${_this.id}-${key}`)]); + } + + if (instance != null) { + delete _this.instances[key]; + yield instance.disconnect(); + } + + return instance != null || deleted > 0; + })(); + } + + limiters() { + var k, ref, results, v; + ref = this.instances; + results = []; + + for (k in ref) { + v = ref[k]; + results.push({ + key: k, + limiter: v + }); + } + + return results; + } + + keys() { + return Object.keys(this.instances); + } + + clusterKeys() { + var _this2 = this; + + return _asyncToGenerator(function* () { + var cursor, end, found, i, k, keys, len, next, start; + + if (_this2.connection == null) { + return _this2.Promise.resolve(_this2.keys()); + } + + keys = []; + cursor = null; + start = `b_${_this2.id}-`.length; + end = "_settings".length; + + while (cursor !== 0) { + var _ref = yield _this2.connection.__runCommand__(["scan", cursor != null ? cursor : 0, "match", `b_${_this2.id}-*_settings`, "count", 10000]); + + var _ref2 = _slicedToArray(_ref, 2); + + next = _ref2[0]; + found = _ref2[1]; + cursor = ~~next; + + for (i = 0, len = found.length; i < len; i++) { + k = found[i]; + keys.push(k.slice(start, -end)); + } + } + + return keys; + })(); + } + + _startAutoCleanup() { + var _this3 = this; + + var base; + clearInterval(this.interval); + return typeof (base = this.interval = setInterval( + /*#__PURE__*/ + _asyncToGenerator(function* () { + var e, k, ref, results, time, v; + time = Date.now(); + ref = _this3.instances; + results = []; + + for (k in ref) { + v = ref[k]; + + try { + if (yield v._store.__groupCheck__(time)) { + results.push(_this3.deleteKey(k)); + } else { + results.push(void 0); + } + } catch (error) { + e = error; + results.push(v.Events.trigger("error", e)); + } + } + + return results; + }), this.timeout / 2)).unref === "function" ? base.unref() : void 0; + } + + updateSettings(options = {}) { + parser.overwrite(options, this.defaults, this); + parser.overwrite(options, options, this.limiterOptions); + + if (options.timeout != null) { + return this._startAutoCleanup(); + } + } + + disconnect(flush = true) { + var ref; + + if (!this.sharedConnection) { + return (ref = this.connection) != null ? ref.disconnect(flush) : void 0; + } + } + + } + + ; + Group.prototype.defaults = { + timeout: 1000 * 60 * 5, + connection: null, + Promise: Promise, + id: "group-key" + }; + return Group; +}.call(void 0); + +module.exports = Group; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/IORedisConnection.js b/node_modules/bottleneck/lib/IORedisConnection.js new file mode 100644 index 0000000..52b28da --- /dev/null +++ b/node_modules/bottleneck/lib/IORedisConnection.js @@ -0,0 +1,186 @@ +"use strict"; + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var Events, IORedisConnection, Scripts, parser; +parser = require("./parser"); +Events = require("./Events"); +Scripts = require("./Scripts"); + +IORedisConnection = function () { + class IORedisConnection { + constructor(options = {}) { + parser.load(options, this.defaults, this); + + if (this.Redis == null) { + this.Redis = eval("require")("ioredis"); // Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option. + } + + if (this.Events == null) { + this.Events = new Events(this); + } + + this.terminated = false; + + if (this.clusterNodes != null) { + this.client = new this.Redis.Cluster(this.clusterNodes, this.clientOptions); + this.subscriber = new this.Redis.Cluster(this.clusterNodes, this.clientOptions); + } else if (this.client != null && this.client.duplicate == null) { + this.subscriber = new this.Redis.Cluster(this.client.startupNodes, this.client.options); + } else { + if (this.client == null) { + this.client = new this.Redis(this.clientOptions); + } + + this.subscriber = this.client.duplicate(); + } + + this.limiters = {}; + this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => { + this._loadScripts(); + + return { + client: this.client, + subscriber: this.subscriber + }; + }); + } + + _setup(client, sub) { + client.setMaxListeners(0); + return new this.Promise((resolve, reject) => { + client.on("error", e => { + return this.Events.trigger("error", e); + }); + + if (sub) { + client.on("message", (channel, message) => { + var ref; + return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0; + }); + } + + if (client.status === "ready") { + return resolve(); + } else { + return client.once("ready", resolve); + } + }); + } + + _loadScripts() { + return Scripts.names.forEach(name => { + return this.client.defineCommand(name, { + lua: Scripts.payload(name) + }); + }); + } + + __runCommand__(cmd) { + var _this = this; + + return _asyncToGenerator(function* () { + var _, deleted; + + yield _this.ready; + + var _ref = yield _this.client.pipeline([cmd]).exec(); + + var _ref2 = _slicedToArray(_ref, 1); + + var _ref2$ = _slicedToArray(_ref2[0], 2); + + _ = _ref2$[0]; + deleted = _ref2$[1]; + return deleted; + })(); + } + + __addLimiter__(instance) { + return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => { + return new this.Promise((resolve, reject) => { + return this.subscriber.subscribe(channel, () => { + this.limiters[channel] = instance; + return resolve(); + }); + }); + })); + } + + __removeLimiter__(instance) { + var _this2 = this; + + return [instance.channel(), instance.channel_client()].forEach( + /*#__PURE__*/ + function () { + var _ref3 = _asyncToGenerator(function* (channel) { + if (!_this2.terminated) { + yield _this2.subscriber.unsubscribe(channel); + } + + return delete _this2.limiters[channel]; + }); + + return function (_x) { + return _ref3.apply(this, arguments); + }; + }()); + } + + __scriptArgs__(name, id, args, cb) { + var keys; + keys = Scripts.keys(name, id); + return [keys.length].concat(keys, args, cb); + } + + __scriptFn__(name) { + return this.client[name].bind(this.client); + } + + disconnect(flush = true) { + var i, k, len, ref; + ref = Object.keys(this.limiters); + + for (i = 0, len = ref.length; i < len; i++) { + k = ref[i]; + clearInterval(this.limiters[k]._store.heartbeat); + } + + this.limiters = {}; + this.terminated = true; + + if (flush) { + return this.Promise.all([this.client.quit(), this.subscriber.quit()]); + } else { + this.client.disconnect(); + this.subscriber.disconnect(); + return this.Promise.resolve(); + } + } + + } + + ; + IORedisConnection.prototype.datastore = "ioredis"; + IORedisConnection.prototype.defaults = { + Redis: null, + clientOptions: {}, + clusterNodes: null, + client: null, + Promise: Promise, + Events: null + }; + return IORedisConnection; +}.call(void 0); + +module.exports = IORedisConnection; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/Job.js b/node_modules/bottleneck/lib/Job.js new file mode 100644 index 0000000..09ff6ca --- /dev/null +++ b/node_modules/bottleneck/lib/Job.js @@ -0,0 +1,215 @@ +"use strict"; + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var BottleneckError, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser; +NUM_PRIORITIES = 10; +DEFAULT_PRIORITY = 5; +parser = require("./parser"); +BottleneckError = require("./BottleneckError"); +Job = class Job { + constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) { + this.task = task; + this.args = args; + this.rejectOnDrop = rejectOnDrop; + this.Events = Events; + this._states = _states; + this.Promise = Promise; + this.options = parser.load(options, jobDefaults); + this.options.priority = this._sanitizePriority(this.options.priority); + + if (this.options.id === jobDefaults.id) { + this.options.id = `${this.options.id}-${this._randomIndex()}`; + } + + this.promise = new this.Promise((_resolve, _reject) => { + this._resolve = _resolve; + this._reject = _reject; + }); + this.retryCount = 0; + } + + _sanitizePriority(priority) { + var sProperty; + sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority; + + if (sProperty < 0) { + return 0; + } else if (sProperty > NUM_PRIORITIES - 1) { + return NUM_PRIORITIES - 1; + } else { + return sProperty; + } + } + + _randomIndex() { + return Math.random().toString(36).slice(2); + } + + doDrop({ + error, + message = "This job has been dropped by Bottleneck" + } = {}) { + if (this._states.remove(this.options.id)) { + if (this.rejectOnDrop) { + this._reject(error != null ? error : new BottleneckError(message)); + } + + this.Events.trigger("dropped", { + args: this.args, + options: this.options, + task: this.task, + promise: this.promise + }); + return true; + } else { + return false; + } + } + + _assertStatus(expected) { + var status; + status = this._states.jobStatus(this.options.id); + + if (!(status === expected || expected === "DONE" && status === null)) { + throw new BottleneckError(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`); + } + } + + doReceive() { + this._states.start(this.options.id); + + return this.Events.trigger("received", { + args: this.args, + options: this.options + }); + } + + doQueue(reachedHWM, blocked) { + this._assertStatus("RECEIVED"); + + this._states.next(this.options.id); + + return this.Events.trigger("queued", { + args: this.args, + options: this.options, + reachedHWM, + blocked + }); + } + + doRun() { + if (this.retryCount === 0) { + this._assertStatus("QUEUED"); + + this._states.next(this.options.id); + } else { + this._assertStatus("EXECUTING"); + } + + return this.Events.trigger("scheduled", { + args: this.args, + options: this.options + }); + } + + doExecute(chained, clearGlobalState, run, free) { + var _this = this; + + return _asyncToGenerator(function* () { + var error, eventInfo, passed; + + if (_this.retryCount === 0) { + _this._assertStatus("RUNNING"); + + _this._states.next(_this.options.id); + } else { + _this._assertStatus("EXECUTING"); + } + + eventInfo = { + args: _this.args, + options: _this.options, + retryCount: _this.retryCount + }; + + _this.Events.trigger("executing", eventInfo); + + try { + passed = yield chained != null ? chained.schedule(_this.options, _this.task, ..._this.args) : _this.task(..._this.args); + + if (clearGlobalState()) { + _this.doDone(eventInfo); + + yield free(_this.options, eventInfo); + + _this._assertStatus("DONE"); + + return _this._resolve(passed); + } + } catch (error1) { + error = error1; + return _this._onFailure(error, eventInfo, clearGlobalState, run, free); + } + })(); + } + + doExpire(clearGlobalState, run, free) { + var error, eventInfo; + + if (this._states.jobStatus(this.options.id === "RUNNING")) { + this._states.next(this.options.id); + } + + this._assertStatus("EXECUTING"); + + eventInfo = { + args: this.args, + options: this.options, + retryCount: this.retryCount + }; + error = new BottleneckError(`This job timed out after ${this.options.expiration} ms.`); + return this._onFailure(error, eventInfo, clearGlobalState, run, free); + } + + _onFailure(error, eventInfo, clearGlobalState, run, free) { + var _this2 = this; + + return _asyncToGenerator(function* () { + var retry, retryAfter; + + if (clearGlobalState()) { + retry = yield _this2.Events.trigger("failed", error, eventInfo); + + if (retry != null) { + retryAfter = ~~retry; + + _this2.Events.trigger("retry", `Retrying ${_this2.options.id} after ${retryAfter} ms`, eventInfo); + + _this2.retryCount++; + return run(retryAfter); + } else { + _this2.doDone(eventInfo); + + yield free(_this2.options, eventInfo); + + _this2._assertStatus("DONE"); + + return _this2._reject(error); + } + } + })(); + } + + doDone(eventInfo) { + this._assertStatus("EXECUTING"); + + this._states.next(this.options.id); + + return this.Events.trigger("done", eventInfo); + } + +}; +module.exports = Job; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/LocalDatastore.js b/node_modules/bottleneck/lib/LocalDatastore.js new file mode 100644 index 0000000..119849e --- /dev/null +++ b/node_modules/bottleneck/lib/LocalDatastore.js @@ -0,0 +1,287 @@ +"use strict"; + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var BottleneckError, LocalDatastore, parser; +parser = require("./parser"); +BottleneckError = require("./BottleneckError"); +LocalDatastore = class LocalDatastore { + constructor(instance, storeOptions, storeInstanceOptions) { + this.instance = instance; + this.storeOptions = storeOptions; + this.clientId = this.instance._randomIndex(); + parser.load(storeInstanceOptions, storeInstanceOptions, this); + this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now(); + this._running = 0; + this._done = 0; + this._unblockTime = 0; + this.ready = this.Promise.resolve(); + this.clients = {}; + + this._startHeartbeat(); + } + + _startHeartbeat() { + var base; + + if (this.heartbeat == null && (this.storeOptions.reservoirRefreshInterval != null && this.storeOptions.reservoirRefreshAmount != null || this.storeOptions.reservoirIncreaseInterval != null && this.storeOptions.reservoirIncreaseAmount != null)) { + return typeof (base = this.heartbeat = setInterval(() => { + var amount, incr, maximum, now, reservoir; + now = Date.now(); + + if (this.storeOptions.reservoirRefreshInterval != null && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) { + this._lastReservoirRefresh = now; + this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount; + + this.instance._drainAll(this.computeCapacity()); + } + + if (this.storeOptions.reservoirIncreaseInterval != null && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) { + var _this$storeOptions = this.storeOptions; + amount = _this$storeOptions.reservoirIncreaseAmount; + maximum = _this$storeOptions.reservoirIncreaseMaximum; + reservoir = _this$storeOptions.reservoir; + this._lastReservoirIncrease = now; + incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount; + + if (incr > 0) { + this.storeOptions.reservoir += incr; + return this.instance._drainAll(this.computeCapacity()); + } + } + }, this.heartbeatInterval)).unref === "function" ? base.unref() : void 0; + } else { + return clearInterval(this.heartbeat); + } + } + + __publish__(message) { + var _this = this; + + return _asyncToGenerator(function* () { + yield _this.yieldLoop(); + return _this.instance.Events.trigger("message", message.toString()); + })(); + } + + __disconnect__(flush) { + var _this2 = this; + + return _asyncToGenerator(function* () { + yield _this2.yieldLoop(); + clearInterval(_this2.heartbeat); + return _this2.Promise.resolve(); + })(); + } + + yieldLoop(t = 0) { + return new this.Promise(function (resolve, reject) { + return setTimeout(resolve, t); + }); + } + + computePenalty() { + var ref; + return (ref = this.storeOptions.penalty) != null ? ref : 15 * this.storeOptions.minTime || 5000; + } + + __updateSettings__(options) { + var _this3 = this; + + return _asyncToGenerator(function* () { + yield _this3.yieldLoop(); + parser.overwrite(options, options, _this3.storeOptions); + + _this3._startHeartbeat(); + + _this3.instance._drainAll(_this3.computeCapacity()); + + return true; + })(); + } + + __running__() { + var _this4 = this; + + return _asyncToGenerator(function* () { + yield _this4.yieldLoop(); + return _this4._running; + })(); + } + + __queued__() { + var _this5 = this; + + return _asyncToGenerator(function* () { + yield _this5.yieldLoop(); + return _this5.instance.queued(); + })(); + } + + __done__() { + var _this6 = this; + + return _asyncToGenerator(function* () { + yield _this6.yieldLoop(); + return _this6._done; + })(); + } + + __groupCheck__(time) { + var _this7 = this; + + return _asyncToGenerator(function* () { + yield _this7.yieldLoop(); + return _this7._nextRequest + _this7.timeout < time; + })(); + } + + computeCapacity() { + var maxConcurrent, reservoir; + var _this$storeOptions2 = this.storeOptions; + maxConcurrent = _this$storeOptions2.maxConcurrent; + reservoir = _this$storeOptions2.reservoir; + + if (maxConcurrent != null && reservoir != null) { + return Math.min(maxConcurrent - this._running, reservoir); + } else if (maxConcurrent != null) { + return maxConcurrent - this._running; + } else if (reservoir != null) { + return reservoir; + } else { + return null; + } + } + + conditionsCheck(weight) { + var capacity; + capacity = this.computeCapacity(); + return capacity == null || weight <= capacity; + } + + __incrementReservoir__(incr) { + var _this8 = this; + + return _asyncToGenerator(function* () { + var reservoir; + yield _this8.yieldLoop(); + reservoir = _this8.storeOptions.reservoir += incr; + + _this8.instance._drainAll(_this8.computeCapacity()); + + return reservoir; + })(); + } + + __currentReservoir__() { + var _this9 = this; + + return _asyncToGenerator(function* () { + yield _this9.yieldLoop(); + return _this9.storeOptions.reservoir; + })(); + } + + isBlocked(now) { + return this._unblockTime >= now; + } + + check(weight, now) { + return this.conditionsCheck(weight) && this._nextRequest - now <= 0; + } + + __check__(weight) { + var _this10 = this; + + return _asyncToGenerator(function* () { + var now; + yield _this10.yieldLoop(); + now = Date.now(); + return _this10.check(weight, now); + })(); + } + + __register__(index, weight, expiration) { + var _this11 = this; + + return _asyncToGenerator(function* () { + var now, wait; + yield _this11.yieldLoop(); + now = Date.now(); + + if (_this11.conditionsCheck(weight)) { + _this11._running += weight; + + if (_this11.storeOptions.reservoir != null) { + _this11.storeOptions.reservoir -= weight; + } + + wait = Math.max(_this11._nextRequest - now, 0); + _this11._nextRequest = now + wait + _this11.storeOptions.minTime; + return { + success: true, + wait, + reservoir: _this11.storeOptions.reservoir + }; + } else { + return { + success: false + }; + } + })(); + } + + strategyIsBlock() { + return this.storeOptions.strategy === 3; + } + + __submit__(queueLength, weight) { + var _this12 = this; + + return _asyncToGenerator(function* () { + var blocked, now, reachedHWM; + yield _this12.yieldLoop(); + + if (_this12.storeOptions.maxConcurrent != null && weight > _this12.storeOptions.maxConcurrent) { + throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${_this12.storeOptions.maxConcurrent}`); + } + + now = Date.now(); + reachedHWM = _this12.storeOptions.highWater != null && queueLength === _this12.storeOptions.highWater && !_this12.check(weight, now); + blocked = _this12.strategyIsBlock() && (reachedHWM || _this12.isBlocked(now)); + + if (blocked) { + _this12._unblockTime = now + _this12.computePenalty(); + _this12._nextRequest = _this12._unblockTime + _this12.storeOptions.minTime; + + _this12.instance._dropAllQueued(); + } + + return { + reachedHWM, + blocked, + strategy: _this12.storeOptions.strategy + }; + })(); + } + + __free__(index, weight) { + var _this13 = this; + + return _asyncToGenerator(function* () { + yield _this13.yieldLoop(); + _this13._running -= weight; + _this13._done += weight; + + _this13.instance._drainAll(_this13.computeCapacity()); + + return { + running: _this13._running + }; + })(); + } + +}; +module.exports = LocalDatastore; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/Queues.js b/node_modules/bottleneck/lib/Queues.js new file mode 100644 index 0000000..1e4129a --- /dev/null +++ b/node_modules/bottleneck/lib/Queues.js @@ -0,0 +1,77 @@ +"use strict"; + +var DLList, Events, Queues; +DLList = require("./DLList"); +Events = require("./Events"); +Queues = class Queues { + constructor(num_priorities) { + var i; + this.Events = new Events(this); + this._length = 0; + + this._lists = function () { + var j, ref, results; + results = []; + + for (i = j = 1, ref = num_priorities; 1 <= ref ? j <= ref : j >= ref; i = 1 <= ref ? ++j : --j) { + results.push(new DLList(() => { + return this.incr(); + }, () => { + return this.decr(); + })); + } + + return results; + }.call(this); + } + + incr() { + if (this._length++ === 0) { + return this.Events.trigger("leftzero"); + } + } + + decr() { + if (--this._length === 0) { + return this.Events.trigger("zero"); + } + } + + push(job) { + return this._lists[job.options.priority].push(job); + } + + queued(priority) { + if (priority != null) { + return this._lists[priority].length; + } else { + return this._length; + } + } + + shiftAll(fn) { + return this._lists.forEach(function (list) { + return list.forEachShift(fn); + }); + } + + getFirst(arr = this._lists) { + var j, len, list; + + for (j = 0, len = arr.length; j < len; j++) { + list = arr[j]; + + if (list.length > 0) { + return list; + } + } + + return []; + } + + shiftLastFrom(priority) { + return this.getFirst(this._lists.slice(priority).reverse()).shift(); + } + +}; +module.exports = Queues; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/RedisConnection.js b/node_modules/bottleneck/lib/RedisConnection.js new file mode 100644 index 0000000..b110704 --- /dev/null +++ b/node_modules/bottleneck/lib/RedisConnection.js @@ -0,0 +1,193 @@ +"use strict"; + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var Events, RedisConnection, Scripts, parser; +parser = require("./parser"); +Events = require("./Events"); +Scripts = require("./Scripts"); + +RedisConnection = function () { + class RedisConnection { + constructor(options = {}) { + parser.load(options, this.defaults, this); + + if (this.Redis == null) { + this.Redis = eval("require")("redis"); // Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option. + } + + if (this.Events == null) { + this.Events = new Events(this); + } + + this.terminated = false; + + if (this.client == null) { + this.client = this.Redis.createClient(this.clientOptions); + } + + this.subscriber = this.client.duplicate(); + this.limiters = {}; + this.shas = {}; + this.ready = this.Promise.all([this._setup(this.client, false), this._setup(this.subscriber, true)]).then(() => { + return this._loadScripts(); + }).then(() => { + return { + client: this.client, + subscriber: this.subscriber + }; + }); + } + + _setup(client, sub) { + client.setMaxListeners(0); + return new this.Promise((resolve, reject) => { + client.on("error", e => { + return this.Events.trigger("error", e); + }); + + if (sub) { + client.on("message", (channel, message) => { + var ref; + return (ref = this.limiters[channel]) != null ? ref._store.onMessage(channel, message) : void 0; + }); + } + + if (client.ready) { + return resolve(); + } else { + return client.once("ready", resolve); + } + }); + } + + _loadScript(name) { + return new this.Promise((resolve, reject) => { + var payload; + payload = Scripts.payload(name); + return this.client.multi([["script", "load", payload]]).exec((err, replies) => { + if (err != null) { + return reject(err); + } + + this.shas[name] = replies[0]; + return resolve(replies[0]); + }); + }); + } + + _loadScripts() { + return this.Promise.all(Scripts.names.map(k => { + return this._loadScript(k); + })); + } + + __runCommand__(cmd) { + var _this = this; + + return _asyncToGenerator(function* () { + yield _this.ready; + return new _this.Promise((resolve, reject) => { + return _this.client.multi([cmd]).exec_atomic(function (err, replies) { + if (err != null) { + return reject(err); + } else { + return resolve(replies[0]); + } + }); + }); + })(); + } + + __addLimiter__(instance) { + return this.Promise.all([instance.channel(), instance.channel_client()].map(channel => { + return new this.Promise((resolve, reject) => { + var handler; + + handler = chan => { + if (chan === channel) { + this.subscriber.removeListener("subscribe", handler); + this.limiters[channel] = instance; + return resolve(); + } + }; + + this.subscriber.on("subscribe", handler); + return this.subscriber.subscribe(channel); + }); + })); + } + + __removeLimiter__(instance) { + var _this2 = this; + + return this.Promise.all([instance.channel(), instance.channel_client()].map( + /*#__PURE__*/ + function () { + var _ref = _asyncToGenerator(function* (channel) { + if (!_this2.terminated) { + yield new _this2.Promise((resolve, reject) => { + return _this2.subscriber.unsubscribe(channel, function (err, chan) { + if (err != null) { + return reject(err); + } + + if (chan === channel) { + return resolve(); + } + }); + }); + } + + return delete _this2.limiters[channel]; + }); + + return function (_x) { + return _ref.apply(this, arguments); + }; + }())); + } + + __scriptArgs__(name, id, args, cb) { + var keys; + keys = Scripts.keys(name, id); + return [this.shas[name], keys.length].concat(keys, args, cb); + } + + __scriptFn__(name) { + return this.client.evalsha.bind(this.client); + } + + disconnect(flush = true) { + var i, k, len, ref; + ref = Object.keys(this.limiters); + + for (i = 0, len = ref.length; i < len; i++) { + k = ref[i]; + clearInterval(this.limiters[k]._store.heartbeat); + } + + this.limiters = {}; + this.terminated = true; + this.client.end(flush); + this.subscriber.end(flush); + return this.Promise.resolve(); + } + + } + + ; + RedisConnection.prototype.datastore = "redis"; + RedisConnection.prototype.defaults = { + Redis: null, + clientOptions: {}, + client: null, + Promise: Promise, + Events: null + }; + return RedisConnection; +}.call(void 0); + +module.exports = RedisConnection; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/RedisDatastore.js b/node_modules/bottleneck/lib/RedisDatastore.js new file mode 100644 index 0000000..dc5943e --- /dev/null +++ b/node_modules/bottleneck/lib/RedisDatastore.js @@ -0,0 +1,352 @@ +"use strict"; + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } + +function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var BottleneckError, IORedisConnection, RedisConnection, RedisDatastore, parser; +parser = require("./parser"); +BottleneckError = require("./BottleneckError"); +RedisConnection = require("./RedisConnection"); +IORedisConnection = require("./IORedisConnection"); +RedisDatastore = class RedisDatastore { + constructor(instance, storeOptions, storeInstanceOptions) { + this.instance = instance; + this.storeOptions = storeOptions; + this.originalId = this.instance.id; + this.clientId = this.instance._randomIndex(); + parser.load(storeInstanceOptions, storeInstanceOptions, this); + this.clients = {}; + this.capacityPriorityCounters = {}; + this.sharedConnection = this.connection != null; + + if (this.connection == null) { + this.connection = this.instance.datastore === "redis" ? new RedisConnection({ + Redis: this.Redis, + clientOptions: this.clientOptions, + Promise: this.Promise, + Events: this.instance.Events + }) : this.instance.datastore === "ioredis" ? new IORedisConnection({ + Redis: this.Redis, + clientOptions: this.clientOptions, + clusterNodes: this.clusterNodes, + Promise: this.Promise, + Events: this.instance.Events + }) : void 0; + } + + this.instance.connection = this.connection; + this.instance.datastore = this.connection.datastore; + this.ready = this.connection.ready.then(clients => { + this.clients = clients; + return this.runScript("init", this.prepareInitSettings(this.clearDatastore)); + }).then(() => { + return this.connection.__addLimiter__(this.instance); + }).then(() => { + return this.runScript("register_client", [this.instance.queued()]); + }).then(() => { + var base; + + if (typeof (base = this.heartbeat = setInterval(() => { + return this.runScript("heartbeat", []).catch(e => { + return this.instance.Events.trigger("error", e); + }); + }, this.heartbeatInterval)).unref === "function") { + base.unref(); + } + + return this.clients; + }); + } + + __publish__(message) { + var _this = this; + + return _asyncToGenerator(function* () { + var client; + + var _ref = yield _this.ready; + + client = _ref.client; + return client.publish(_this.instance.channel(), `message:${message.toString()}`); + })(); + } + + onMessage(channel, message) { + var _this2 = this; + + return _asyncToGenerator(function* () { + var capacity, counter, data, drained, e, newCapacity, pos, priorityClient, rawCapacity, type; + + try { + pos = message.indexOf(":"); + var _ref2 = [message.slice(0, pos), message.slice(pos + 1)]; + type = _ref2[0]; + data = _ref2[1]; + + if (type === "capacity") { + return yield _this2.instance._drainAll(data.length > 0 ? ~~data : void 0); + } else if (type === "capacity-priority") { + var _data$split = data.split(":"); + + var _data$split2 = _slicedToArray(_data$split, 3); + + rawCapacity = _data$split2[0]; + priorityClient = _data$split2[1]; + counter = _data$split2[2]; + capacity = rawCapacity.length > 0 ? ~~rawCapacity : void 0; + + if (priorityClient === _this2.clientId) { + drained = yield _this2.instance._drainAll(capacity); + newCapacity = capacity != null ? capacity - (drained || 0) : ""; + return yield _this2.clients.client.publish(_this2.instance.channel(), `capacity-priority:${newCapacity}::${counter}`); + } else if (priorityClient === "") { + clearTimeout(_this2.capacityPriorityCounters[counter]); + delete _this2.capacityPriorityCounters[counter]; + return _this2.instance._drainAll(capacity); + } else { + return _this2.capacityPriorityCounters[counter] = setTimeout( + /*#__PURE__*/ + _asyncToGenerator(function* () { + var e; + + try { + delete _this2.capacityPriorityCounters[counter]; + yield _this2.runScript("blacklist_client", [priorityClient]); + return yield _this2.instance._drainAll(capacity); + } catch (error) { + e = error; + return _this2.instance.Events.trigger("error", e); + } + }), 1000); + } + } else if (type === "message") { + return _this2.instance.Events.trigger("message", data); + } else if (type === "blocked") { + return yield _this2.instance._dropAllQueued(); + } + } catch (error) { + e = error; + return _this2.instance.Events.trigger("error", e); + } + })(); + } + + __disconnect__(flush) { + clearInterval(this.heartbeat); + + if (this.sharedConnection) { + return this.connection.__removeLimiter__(this.instance); + } else { + return this.connection.disconnect(flush); + } + } + + runScript(name, args) { + var _this3 = this; + + return _asyncToGenerator(function* () { + if (!(name === "init" || name === "register_client")) { + yield _this3.ready; + } + + return new _this3.Promise((resolve, reject) => { + var all_args, arr; + all_args = [Date.now(), _this3.clientId].concat(args); + + _this3.instance.Events.trigger("debug", `Calling Redis script: ${name}.lua`, all_args); + + arr = _this3.connection.__scriptArgs__(name, _this3.originalId, all_args, function (err, replies) { + if (err != null) { + return reject(err); + } + + return resolve(replies); + }); + return _this3.connection.__scriptFn__(name)(...arr); + }).catch(e => { + if (e.message === "SETTINGS_KEY_NOT_FOUND") { + if (name === "heartbeat") { + return _this3.Promise.resolve(); + } else { + return _this3.runScript("init", _this3.prepareInitSettings(false)).then(() => { + return _this3.runScript(name, args); + }); + } + } else if (e.message === "UNKNOWN_CLIENT") { + return _this3.runScript("register_client", [_this3.instance.queued()]).then(() => { + return _this3.runScript(name, args); + }); + } else { + return _this3.Promise.reject(e); + } + }); + })(); + } + + prepareArray(arr) { + var i, len, results, x; + results = []; + + for (i = 0, len = arr.length; i < len; i++) { + x = arr[i]; + results.push(x != null ? x.toString() : ""); + } + + return results; + } + + prepareObject(obj) { + var arr, k, v; + arr = []; + + for (k in obj) { + v = obj[k]; + arr.push(k, v != null ? v.toString() : ""); + } + + return arr; + } + + prepareInitSettings(clear) { + var args; + args = this.prepareObject(Object.assign({}, this.storeOptions, { + id: this.originalId, + version: this.instance.version, + groupTimeout: this.timeout, + clientTimeout: this.clientTimeout + })); + args.unshift(clear ? 1 : 0, this.instance.version); + return args; + } + + convertBool(b) { + return !!b; + } + + __updateSettings__(options) { + var _this4 = this; + + return _asyncToGenerator(function* () { + yield _this4.runScript("update_settings", _this4.prepareObject(options)); + return parser.overwrite(options, options, _this4.storeOptions); + })(); + } + + __running__() { + return this.runScript("running", []); + } + + __queued__() { + return this.runScript("queued", []); + } + + __done__() { + return this.runScript("done", []); + } + + __groupCheck__() { + var _this5 = this; + + return _asyncToGenerator(function* () { + return _this5.convertBool((yield _this5.runScript("group_check", []))); + })(); + } + + __incrementReservoir__(incr) { + return this.runScript("increment_reservoir", [incr]); + } + + __currentReservoir__() { + return this.runScript("current_reservoir", []); + } + + __check__(weight) { + var _this6 = this; + + return _asyncToGenerator(function* () { + return _this6.convertBool((yield _this6.runScript("check", _this6.prepareArray([weight])))); + })(); + } + + __register__(index, weight, expiration) { + var _this7 = this; + + return _asyncToGenerator(function* () { + var reservoir, success, wait; + + var _ref4 = yield _this7.runScript("register", _this7.prepareArray([index, weight, expiration])); + + var _ref5 = _slicedToArray(_ref4, 3); + + success = _ref5[0]; + wait = _ref5[1]; + reservoir = _ref5[2]; + return { + success: _this7.convertBool(success), + wait, + reservoir + }; + })(); + } + + __submit__(queueLength, weight) { + var _this8 = this; + + return _asyncToGenerator(function* () { + var blocked, e, maxConcurrent, overweight, reachedHWM, strategy; + + try { + var _ref6 = yield _this8.runScript("submit", _this8.prepareArray([queueLength, weight])); + + var _ref7 = _slicedToArray(_ref6, 3); + + reachedHWM = _ref7[0]; + blocked = _ref7[1]; + strategy = _ref7[2]; + return { + reachedHWM: _this8.convertBool(reachedHWM), + blocked: _this8.convertBool(blocked), + strategy + }; + } catch (error) { + e = error; + + if (e.message.indexOf("OVERWEIGHT") === 0) { + var _e$message$split = e.message.split(":"); + + var _e$message$split2 = _slicedToArray(_e$message$split, 3); + + overweight = _e$message$split2[0]; + weight = _e$message$split2[1]; + maxConcurrent = _e$message$split2[2]; + throw new BottleneckError(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${maxConcurrent}`); + } else { + throw e; + } + } + })(); + } + + __free__(index, weight) { + var _this9 = this; + + return _asyncToGenerator(function* () { + var running; + running = yield _this9.runScript("free", _this9.prepareArray([index])); + return { + running + }; + })(); + } + +}; +module.exports = RedisDatastore; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/Scripts.js b/node_modules/bottleneck/lib/Scripts.js new file mode 100644 index 0000000..96467eb --- /dev/null +++ b/node_modules/bottleneck/lib/Scripts.js @@ -0,0 +1,162 @@ +"use strict"; + +var headers, lua, templates; +lua = require("./lua.json"); +headers = { + refs: lua["refs.lua"], + validate_keys: lua["validate_keys.lua"], + validate_client: lua["validate_client.lua"], + refresh_expiration: lua["refresh_expiration.lua"], + process_tick: lua["process_tick.lua"], + conditions_check: lua["conditions_check.lua"], + get_time: lua["get_time.lua"] +}; + +exports.allKeys = function (id) { + return [ + /* + HASH + */ + `b_${id}_settings`, + /* + HASH + job index -> weight + */ + `b_${id}_job_weights`, + /* + ZSET + job index -> expiration + */ + `b_${id}_job_expirations`, + /* + HASH + job index -> client + */ + `b_${id}_job_clients`, + /* + ZSET + client -> sum running + */ + `b_${id}_client_running`, + /* + HASH + client -> num queued + */ + `b_${id}_client_num_queued`, + /* + ZSET + client -> last job registered + */ + `b_${id}_client_last_registered`, + /* + ZSET + client -> last seen + */ + `b_${id}_client_last_seen`]; +}; + +templates = { + init: { + keys: exports.allKeys, + headers: ["process_tick"], + refresh_expiration: true, + code: lua["init.lua"] + }, + group_check: { + keys: exports.allKeys, + headers: [], + refresh_expiration: false, + code: lua["group_check.lua"] + }, + register_client: { + keys: exports.allKeys, + headers: ["validate_keys"], + refresh_expiration: false, + code: lua["register_client.lua"] + }, + blacklist_client: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client"], + refresh_expiration: false, + code: lua["blacklist_client.lua"] + }, + heartbeat: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["heartbeat.lua"] + }, + update_settings: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: true, + code: lua["update_settings.lua"] + }, + running: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["running.lua"] + }, + queued: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client"], + refresh_expiration: false, + code: lua["queued.lua"] + }, + done: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["done.lua"] + }, + check: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"], + refresh_expiration: false, + code: lua["check.lua"] + }, + submit: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"], + refresh_expiration: true, + code: lua["submit.lua"] + }, + register: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"], + refresh_expiration: true, + code: lua["register.lua"] + }, + free: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: true, + code: lua["free.lua"] + }, + current_reservoir: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: false, + code: lua["current_reservoir.lua"] + }, + increment_reservoir: { + keys: exports.allKeys, + headers: ["validate_keys", "validate_client", "process_tick"], + refresh_expiration: true, + code: lua["increment_reservoir.lua"] + } +}; +exports.names = Object.keys(templates); + +exports.keys = function (name, id) { + return templates[name].keys(id); +}; + +exports.payload = function (name) { + var template; + template = templates[name]; + return Array.prototype.concat(headers.refs, template.headers.map(function (h) { + return headers[h]; + }), template.refresh_expiration ? headers.refresh_expiration : "", template.code).join("\n"); +}; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/States.js b/node_modules/bottleneck/lib/States.js new file mode 100644 index 0000000..9b8ac14 --- /dev/null +++ b/node_modules/bottleneck/lib/States.js @@ -0,0 +1,88 @@ +"use strict"; + +var BottleneckError, States; +BottleneckError = require("./BottleneckError"); +States = class States { + constructor(status1) { + this.status = status1; + this._jobs = {}; + this.counts = this.status.map(function () { + return 0; + }); + } + + next(id) { + var current, next; + current = this._jobs[id]; + next = current + 1; + + if (current != null && next < this.status.length) { + this.counts[current]--; + this.counts[next]++; + return this._jobs[id]++; + } else if (current != null) { + this.counts[current]--; + return delete this._jobs[id]; + } + } + + start(id) { + var initial; + initial = 0; + this._jobs[id] = initial; + return this.counts[initial]++; + } + + remove(id) { + var current; + current = this._jobs[id]; + + if (current != null) { + this.counts[current]--; + delete this._jobs[id]; + } + + return current != null; + } + + jobStatus(id) { + var ref; + return (ref = this.status[this._jobs[id]]) != null ? ref : null; + } + + statusJobs(status) { + var k, pos, ref, results, v; + + if (status != null) { + pos = this.status.indexOf(status); + + if (pos < 0) { + throw new BottleneckError(`status must be one of ${this.status.join(', ')}`); + } + + ref = this._jobs; + results = []; + + for (k in ref) { + v = ref[k]; + + if (v === pos) { + results.push(k); + } + } + + return results; + } else { + return Object.keys(this._jobs); + } + } + + statusCounts() { + return this.counts.reduce((acc, v, i) => { + acc[this.status[i]] = v; + return acc; + }, {}); + } + +}; +module.exports = States; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/Sync.js b/node_modules/bottleneck/lib/Sync.js new file mode 100644 index 0000000..f51eee4 --- /dev/null +++ b/node_modules/bottleneck/lib/Sync.js @@ -0,0 +1,80 @@ +"use strict"; + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +var DLList, Sync; +DLList = require("./DLList"); +Sync = class Sync { + constructor(name, Promise) { + this.schedule = this.schedule.bind(this); + this.name = name; + this.Promise = Promise; + this._running = 0; + this._queue = new DLList(); + } + + isEmpty() { + return this._queue.length === 0; + } + + _tryToRun() { + var _this = this; + + return _asyncToGenerator(function* () { + var args, cb, error, reject, resolve, returned, task; + + if (_this._running < 1 && _this._queue.length > 0) { + _this._running++; + + var _this$_queue$shift = _this._queue.shift(); + + task = _this$_queue$shift.task; + args = _this$_queue$shift.args; + resolve = _this$_queue$shift.resolve; + reject = _this$_queue$shift.reject; + cb = yield _asyncToGenerator(function* () { + try { + returned = yield task(...args); + return function () { + return resolve(returned); + }; + } catch (error1) { + error = error1; + return function () { + return reject(error); + }; + } + })(); + _this._running--; + + _this._tryToRun(); + + return cb(); + } + })(); + } + + schedule(task, ...args) { + var promise, reject, resolve; + resolve = reject = null; + promise = new this.Promise(function (_resolve, _reject) { + resolve = _resolve; + return reject = _reject; + }); + + this._queue.push({ + task, + args, + resolve, + reject + }); + + this._tryToRun(); + + return promise; + } + +}; +module.exports = Sync; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/es5.js b/node_modules/bottleneck/lib/es5.js new file mode 100644 index 0000000..822a26d --- /dev/null +++ b/node_modules/bottleneck/lib/es5.js @@ -0,0 +1,5 @@ +"use strict"; + +require("regenerator-runtime/runtime"); + +module.exports = require("./Bottleneck"); \ No newline at end of file diff --git a/node_modules/bottleneck/lib/index.js b/node_modules/bottleneck/lib/index.js new file mode 100644 index 0000000..3d447c1 --- /dev/null +++ b/node_modules/bottleneck/lib/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = require("./Bottleneck"); \ No newline at end of file diff --git a/node_modules/bottleneck/lib/lua.json b/node_modules/bottleneck/lib/lua.json new file mode 100644 index 0000000..c17cc49 --- /dev/null +++ b/node_modules/bottleneck/lib/lua.json @@ -0,0 +1,24 @@ +{ + "blacklist_client.lua": "local blacklist = ARGV[num_static_argv + 1]\n\nif redis.call('zscore', client_last_seen_key, blacklist) then\n redis.call('zadd', client_last_seen_key, 0, blacklist)\nend\n\n\nreturn {}\n", + "check.lua": "local weight = tonumber(ARGV[num_static_argv + 1])\n\nlocal capacity = process_tick(now, false)['capacity']\nlocal nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest'))\n\nreturn conditions_check(capacity, weight) and nextRequest - now <= 0\n", + "conditions_check.lua": "local conditions_check = function (capacity, weight)\n return capacity == nil or weight <= capacity\nend\n", + "current_reservoir.lua": "return process_tick(now, false)['reservoir']\n", + "done.lua": "process_tick(now, false)\n\nreturn tonumber(redis.call('hget', settings_key, 'done'))\n", + "free.lua": "local index = ARGV[num_static_argv + 1]\n\nredis.call('zadd', job_expirations_key, 0, index)\n\nreturn process_tick(now, false)['running']\n", + "get_time.lua": "redis.replicate_commands()\n\nlocal get_time = function ()\n local time = redis.call('time')\n\n return tonumber(time[1]..string.sub(time[2], 1, 3))\nend\n", + "group_check.lua": "return not (redis.call('exists', settings_key) == 1)\n", + "heartbeat.lua": "process_tick(now, true)\n", + "increment_reservoir.lua": "local incr = tonumber(ARGV[num_static_argv + 1])\n\nredis.call('hincrby', settings_key, 'reservoir', incr)\n\nlocal reservoir = process_tick(now, true)['reservoir']\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn reservoir\n", + "init.lua": "local clear = tonumber(ARGV[num_static_argv + 1])\nlocal limiter_version = ARGV[num_static_argv + 2]\nlocal num_local_argv = num_static_argv + 2\n\nif clear == 1 then\n redis.call('del', unpack(KEYS))\nend\n\nif redis.call('exists', settings_key) == 0 then\n -- Create\n local args = {'hmset', settings_key}\n\n for i = num_local_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\n end\n\n redis.call(unpack(args))\n redis.call('hmset', settings_key,\n 'nextRequest', now,\n 'lastReservoirRefresh', now,\n 'lastReservoirIncrease', now,\n 'running', 0,\n 'done', 0,\n 'unblockTime', 0,\n 'capacityPriorityCounter', 0\n )\n\nelse\n -- Apply migrations\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'version'\n )\n local id = settings[1]\n local current_version = settings[2]\n\n if current_version ~= limiter_version then\n local version_digits = {}\n for k, v in string.gmatch(current_version, \"([^.]+)\") do\n table.insert(version_digits, tonumber(k))\n end\n\n -- 2.10.0\n if version_digits[2] < 10 then\n redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '')\n redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '')\n redis.call('hsetnx', settings_key, 'done', 0)\n redis.call('hset', settings_key, 'version', '2.10.0')\n end\n\n -- 2.11.1\n if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then\n if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then\n redis.call('hmset', settings_key,\n 'lastReservoirRefresh', now,\n 'version', '2.11.1'\n )\n end\n end\n\n -- 2.14.0\n if version_digits[2] < 14 then\n local old_running_key = 'b_'..id..'_running'\n local old_executing_key = 'b_'..id..'_executing'\n\n if redis.call('exists', old_running_key) == 1 then\n redis.call('rename', old_running_key, job_weights_key)\n end\n if redis.call('exists', old_executing_key) == 1 then\n redis.call('rename', old_executing_key, job_expirations_key)\n end\n redis.call('hset', settings_key, 'version', '2.14.0')\n end\n\n -- 2.15.2\n if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then\n redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0)\n redis.call('hset', settings_key, 'version', '2.15.2')\n end\n\n -- 2.17.0\n if version_digits[2] < 17 then\n redis.call('hsetnx', settings_key, 'clientTimeout', 10000)\n redis.call('hset', settings_key, 'version', '2.17.0')\n end\n\n -- 2.18.0\n if version_digits[2] < 18 then\n redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '')\n redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '')\n redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now)\n redis.call('hset', settings_key, 'version', '2.18.0')\n end\n\n end\n\n process_tick(now, false)\nend\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n", + "process_tick.lua": "local process_tick = function (now, always_publish)\n\n local compute_capacity = function (maxConcurrent, running, reservoir)\n if maxConcurrent ~= nil and reservoir ~= nil then\n return math.min((maxConcurrent - running), reservoir)\n elseif maxConcurrent ~= nil then\n return maxConcurrent - running\n elseif reservoir ~= nil then\n return reservoir\n else\n return nil\n end\n end\n\n local settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'running',\n 'reservoir',\n 'reservoirRefreshInterval',\n 'reservoirRefreshAmount',\n 'lastReservoirRefresh',\n 'reservoirIncreaseInterval',\n 'reservoirIncreaseAmount',\n 'reservoirIncreaseMaximum',\n 'lastReservoirIncrease',\n 'capacityPriorityCounter',\n 'clientTimeout'\n )\n local id = settings[1]\n local maxConcurrent = tonumber(settings[2])\n local running = tonumber(settings[3])\n local reservoir = tonumber(settings[4])\n local reservoirRefreshInterval = tonumber(settings[5])\n local reservoirRefreshAmount = tonumber(settings[6])\n local lastReservoirRefresh = tonumber(settings[7])\n local reservoirIncreaseInterval = tonumber(settings[8])\n local reservoirIncreaseAmount = tonumber(settings[9])\n local reservoirIncreaseMaximum = tonumber(settings[10])\n local lastReservoirIncrease = tonumber(settings[11])\n local capacityPriorityCounter = tonumber(settings[12])\n local clientTimeout = tonumber(settings[13])\n\n local initial_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n --\n -- Process 'running' changes\n --\n local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now)\n\n if #expired > 0 then\n redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now)\n\n local flush_batch = function (batch, acc)\n local weights = redis.call('hmget', job_weights_key, unpack(batch))\n redis.call('hdel', job_weights_key, unpack(batch))\n local clients = redis.call('hmget', job_clients_key, unpack(batch))\n redis.call('hdel', job_clients_key, unpack(batch))\n\n -- Calculate sum of removed weights\n for i = 1, #weights do\n acc['total'] = acc['total'] + (tonumber(weights[i]) or 0)\n end\n\n -- Calculate sum of removed weights by client\n local client_weights = {}\n for i = 1, #clients do\n local removed = tonumber(weights[i]) or 0\n if removed > 0 then\n acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed\n end\n end\n end\n\n local acc = {\n ['total'] = 0,\n ['client_weights'] = {}\n }\n local batch_size = 1000\n\n -- Compute changes to Zsets and apply changes to Hashes\n for i = 1, #expired, batch_size do\n local batch = {}\n for j = i, math.min(i + batch_size - 1, #expired) do\n table.insert(batch, expired[j])\n end\n\n flush_batch(batch, acc)\n end\n\n -- Apply changes to Zsets\n if acc['total'] > 0 then\n redis.call('hincrby', settings_key, 'done', acc['total'])\n running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total']))\n end\n\n for client, weight in pairs(acc['client_weights']) do\n redis.call('zincrby', client_running_key, -weight, client)\n end\n end\n\n --\n -- Process 'reservoir' changes\n --\n local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil\n if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then\n reservoir = reservoirRefreshAmount\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirRefresh', now\n )\n end\n\n local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil\n if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then\n local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval)\n local incr = reservoirIncreaseAmount * num_intervals\n if reservoirIncreaseMaximum ~= nil then\n incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0))\n end\n if incr > 0 then\n reservoir = (reservoir or 0) + incr\n end\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval)\n )\n end\n\n --\n -- Clear unresponsive clients\n --\n local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout))\n local unresponsive_lookup = {}\n local terminated_clients = {}\n for i = 1, #unresponsive do\n unresponsive_lookup[unresponsive[i]] = true\n if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then\n table.insert(terminated_clients, unresponsive[i])\n end\n end\n if #terminated_clients > 0 then\n redis.call('zrem', client_running_key, unpack(terminated_clients))\n redis.call('hdel', client_num_queued_key, unpack(terminated_clients))\n redis.call('zrem', client_last_registered_key, unpack(terminated_clients))\n redis.call('zrem', client_last_seen_key, unpack(terminated_clients))\n end\n\n --\n -- Broadcast capacity changes\n --\n local final_capacity = compute_capacity(maxConcurrent, running, reservoir)\n\n if always_publish or (initial_capacity ~= nil and final_capacity == nil) then\n -- always_publish or was not unlimited, now unlimited\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n\n elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then\n -- capacity was increased\n -- send the capacity message to the limiter having the lowest number of running jobs\n -- the tiebreaker is the limiter having not registered a job in the longest time\n\n local lowest_concurrency_value = nil\n local lowest_concurrency_clients = {}\n local lowest_concurrency_last_registered = {}\n local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores')\n\n for i = 1, #client_concurrencies, 2 do\n local client = client_concurrencies[i]\n local concurrency = tonumber(client_concurrencies[i+1])\n\n if (\n lowest_concurrency_value == nil or lowest_concurrency_value == concurrency\n ) and (\n not unresponsive_lookup[client]\n ) and (\n tonumber(redis.call('hget', client_num_queued_key, client)) > 0\n ) then\n lowest_concurrency_value = concurrency\n table.insert(lowest_concurrency_clients, client)\n local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client))\n table.insert(lowest_concurrency_last_registered, last_registered)\n end\n end\n\n if #lowest_concurrency_clients > 0 then\n local position = 1\n local earliest = lowest_concurrency_last_registered[1]\n\n for i,v in ipairs(lowest_concurrency_last_registered) do\n if v < earliest then\n position = i\n earliest = v\n end\n end\n\n local next_client = lowest_concurrency_clients[position]\n redis.call('publish', 'b_'..id,\n 'capacity-priority:'..(final_capacity or '')..\n ':'..next_client..\n ':'..capacityPriorityCounter\n )\n redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1')\n else\n redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or ''))\n end\n end\n\n return {\n ['capacity'] = final_capacity,\n ['running'] = running,\n ['reservoir'] = reservoir\n }\nend\n", + "queued.lua": "local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout'))\nlocal valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf')\nlocal client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients))\n\nlocal sum = 0\nfor i = 1, #client_queued do\n sum = sum + tonumber(client_queued[i])\nend\n\nreturn sum\n", + "refresh_expiration.lua": "local refresh_expiration = function (now, nextRequest, groupTimeout)\n\n if groupTimeout ~= nil then\n local ttl = (nextRequest + groupTimeout) - now\n\n for i = 1, #KEYS do\n redis.call('pexpire', KEYS[i], ttl)\n end\n end\n\nend\n", + "refs.lua": "local settings_key = KEYS[1]\nlocal job_weights_key = KEYS[2]\nlocal job_expirations_key = KEYS[3]\nlocal job_clients_key = KEYS[4]\nlocal client_running_key = KEYS[5]\nlocal client_num_queued_key = KEYS[6]\nlocal client_last_registered_key = KEYS[7]\nlocal client_last_seen_key = KEYS[8]\n\nlocal now = tonumber(ARGV[1])\nlocal client = ARGV[2]\n\nlocal num_static_argv = 2\n", + "register.lua": "local index = ARGV[num_static_argv + 1]\nlocal weight = tonumber(ARGV[num_static_argv + 2])\nlocal expiration = tonumber(ARGV[num_static_argv + 3])\n\nlocal state = process_tick(now, false)\nlocal capacity = state['capacity']\nlocal reservoir = state['reservoir']\n\nlocal settings = redis.call('hmget', settings_key,\n 'nextRequest',\n 'minTime',\n 'groupTimeout'\n)\nlocal nextRequest = tonumber(settings[1])\nlocal minTime = tonumber(settings[2])\nlocal groupTimeout = tonumber(settings[3])\n\nif conditions_check(capacity, weight) then\n\n redis.call('hincrby', settings_key, 'running', weight)\n redis.call('hset', job_weights_key, index, weight)\n if expiration ~= nil then\n redis.call('zadd', job_expirations_key, now + expiration, index)\n end\n redis.call('hset', job_clients_key, index, client)\n redis.call('zincrby', client_running_key, weight, client)\n redis.call('hincrby', client_num_queued_key, client, -1)\n redis.call('zadd', client_last_registered_key, now, client)\n\n local wait = math.max(nextRequest - now, 0)\n local newNextRequest = now + wait + minTime\n\n if reservoir == nil then\n redis.call('hset', settings_key,\n 'nextRequest', newNextRequest\n )\n else\n reservoir = reservoir - weight\n redis.call('hmset', settings_key,\n 'reservoir', reservoir,\n 'nextRequest', newNextRequest\n )\n end\n\n refresh_expiration(now, newNextRequest, groupTimeout)\n\n return {true, wait, reservoir}\n\nelse\n return {false}\nend\n", + "register_client.lua": "local queued = tonumber(ARGV[num_static_argv + 1])\n\n-- Could have been re-registered concurrently\nif not redis.call('zscore', client_last_seen_key, client) then\n redis.call('zadd', client_running_key, 0, client)\n redis.call('hset', client_num_queued_key, client, queued)\n redis.call('zadd', client_last_registered_key, 0, client)\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n\nreturn {}\n", + "running.lua": "return process_tick(now, false)['running']\n", + "submit.lua": "local queueLength = tonumber(ARGV[num_static_argv + 1])\nlocal weight = tonumber(ARGV[num_static_argv + 2])\n\nlocal capacity = process_tick(now, false)['capacity']\n\nlocal settings = redis.call('hmget', settings_key,\n 'id',\n 'maxConcurrent',\n 'highWater',\n 'nextRequest',\n 'strategy',\n 'unblockTime',\n 'penalty',\n 'minTime',\n 'groupTimeout'\n)\nlocal id = settings[1]\nlocal maxConcurrent = tonumber(settings[2])\nlocal highWater = tonumber(settings[3])\nlocal nextRequest = tonumber(settings[4])\nlocal strategy = tonumber(settings[5])\nlocal unblockTime = tonumber(settings[6])\nlocal penalty = tonumber(settings[7])\nlocal minTime = tonumber(settings[8])\nlocal groupTimeout = tonumber(settings[9])\n\nif maxConcurrent ~= nil and weight > maxConcurrent then\n return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent)\nend\n\nlocal reachedHWM = (highWater ~= nil and queueLength == highWater\n and not (\n conditions_check(capacity, weight)\n and nextRequest - now <= 0\n )\n)\n\nlocal blocked = strategy == 3 and (reachedHWM or unblockTime >= now)\n\nif blocked then\n local computedPenalty = penalty\n if computedPenalty == nil then\n if minTime == 0 then\n computedPenalty = 5000\n else\n computedPenalty = 15 * minTime\n end\n end\n\n local newNextRequest = now + computedPenalty + minTime\n\n redis.call('hmset', settings_key,\n 'unblockTime', now + computedPenalty,\n 'nextRequest', newNextRequest\n )\n\n local clients_queued_reset = redis.call('hkeys', client_num_queued_key)\n local queued_reset = {}\n for i = 1, #clients_queued_reset do\n table.insert(queued_reset, clients_queued_reset[i])\n table.insert(queued_reset, 0)\n end\n redis.call('hmset', client_num_queued_key, unpack(queued_reset))\n\n redis.call('publish', 'b_'..id, 'blocked:')\n\n refresh_expiration(now, newNextRequest, groupTimeout)\nend\n\nif not blocked and not reachedHWM then\n redis.call('hincrby', client_num_queued_key, client, 1)\nend\n\nreturn {reachedHWM, blocked, strategy}\n", + "update_settings.lua": "local args = {'hmset', settings_key}\n\nfor i = num_static_argv + 1, #ARGV do\n table.insert(args, ARGV[i])\nend\n\nredis.call(unpack(args))\n\nprocess_tick(now, true)\n\nlocal groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout'))\nrefresh_expiration(0, 0, groupTimeout)\n\nreturn {}\n", + "validate_client.lua": "if not redis.call('zscore', client_last_seen_key, client) then\n return redis.error_reply('UNKNOWN_CLIENT')\nend\n\nredis.call('zadd', client_last_seen_key, now, client)\n", + "validate_keys.lua": "if not (redis.call('exists', settings_key) == 1) then\n return redis.error_reply('SETTINGS_KEY_NOT_FOUND')\nend\n" +} diff --git a/node_modules/bottleneck/lib/parser.js b/node_modules/bottleneck/lib/parser.js new file mode 100644 index 0000000..8686191 --- /dev/null +++ b/node_modules/bottleneck/lib/parser.js @@ -0,0 +1,26 @@ +"use strict"; + +exports.load = function (received, defaults, onto = {}) { + var k, ref, v; + + for (k in defaults) { + v = defaults[k]; + onto[k] = (ref = received[k]) != null ? ref : v; + } + + return onto; +}; + +exports.overwrite = function (received, defaults, onto = {}) { + var k, v; + + for (k in received) { + v = received[k]; + + if (defaults[k] !== void 0) { + onto[k] = v; + } + } + + return onto; +}; \ No newline at end of file diff --git a/node_modules/bottleneck/lib/version.json b/node_modules/bottleneck/lib/version.json new file mode 100644 index 0000000..578a219 --- /dev/null +++ b/node_modules/bottleneck/lib/version.json @@ -0,0 +1 @@ +{"version":"2.19.5"} diff --git a/node_modules/bottleneck/light.js b/node_modules/bottleneck/light.js new file mode 100644 index 0000000..c4aa265 --- /dev/null +++ b/node_modules/bottleneck/light.js @@ -0,0 +1,1524 @@ +/** + * This file contains the Bottleneck library (MIT), compiled to ES2017, and without Clustering support. + * https://github.com/SGrondin/bottleneck + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Bottleneck = factory()); +}(this, (function () { 'use strict'; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function getCjsExportFromNamespace (n) { + return n && n['default'] || n; + } + + var load = function(received, defaults, onto = {}) { + var k, ref, v; + for (k in defaults) { + v = defaults[k]; + onto[k] = (ref = received[k]) != null ? ref : v; + } + return onto; + }; + + var overwrite = function(received, defaults, onto = {}) { + var k, v; + for (k in received) { + v = received[k]; + if (defaults[k] !== void 0) { + onto[k] = v; + } + } + return onto; + }; + + var parser = { + load: load, + overwrite: overwrite + }; + + var DLList; + + DLList = class DLList { + constructor(incr, decr) { + this.incr = incr; + this.decr = decr; + this._first = null; + this._last = null; + this.length = 0; + } + + push(value) { + var node; + this.length++; + if (typeof this.incr === "function") { + this.incr(); + } + node = { + value, + prev: this._last, + next: null + }; + if (this._last != null) { + this._last.next = node; + this._last = node; + } else { + this._first = this._last = node; + } + return void 0; + } + + shift() { + var value; + if (this._first == null) { + return; + } else { + this.length--; + if (typeof this.decr === "function") { + this.decr(); + } + } + value = this._first.value; + if ((this._first = this._first.next) != null) { + this._first.prev = null; + } else { + this._last = null; + } + return value; + } + + first() { + if (this._first != null) { + return this._first.value; + } + } + + getArray() { + var node, ref, results; + node = this._first; + results = []; + while (node != null) { + results.push((ref = node, node = node.next, ref.value)); + } + return results; + } + + forEachShift(cb) { + var node; + node = this.shift(); + while (node != null) { + (cb(node), node = this.shift()); + } + return void 0; + } + + debug() { + var node, ref, ref1, ref2, results; + node = this._first; + results = []; + while (node != null) { + results.push((ref = node, node = node.next, { + value: ref.value, + prev: (ref1 = ref.prev) != null ? ref1.value : void 0, + next: (ref2 = ref.next) != null ? ref2.value : void 0 + })); + } + return results; + } + + }; + + var DLList_1 = DLList; + + var Events; + + Events = class Events { + constructor(instance) { + this.instance = instance; + this._events = {}; + if ((this.instance.on != null) || (this.instance.once != null) || (this.instance.removeAllListeners != null)) { + throw new Error("An Emitter already exists for this object"); + } + this.instance.on = (name, cb) => { + return this._addListener(name, "many", cb); + }; + this.instance.once = (name, cb) => { + return this._addListener(name, "once", cb); + }; + this.instance.removeAllListeners = (name = null) => { + if (name != null) { + return delete this._events[name]; + } else { + return this._events = {}; + } + }; + } + + _addListener(name, status, cb) { + var base; + if ((base = this._events)[name] == null) { + base[name] = []; + } + this._events[name].push({cb, status}); + return this.instance; + } + + listenerCount(name) { + if (this._events[name] != null) { + return this._events[name].length; + } else { + return 0; + } + } + + async trigger(name, ...args) { + var e, promises; + try { + if (name !== "debug") { + this.trigger("debug", `Event triggered: ${name}`, args); + } + if (this._events[name] == null) { + return; + } + this._events[name] = this._events[name].filter(function(listener) { + return listener.status !== "none"; + }); + promises = this._events[name].map(async(listener) => { + var e, returned; + if (listener.status === "none") { + return; + } + if (listener.status === "once") { + listener.status = "none"; + } + try { + returned = typeof listener.cb === "function" ? listener.cb(...args) : void 0; + if (typeof (returned != null ? returned.then : void 0) === "function") { + return (await returned); + } else { + return returned; + } + } catch (error) { + e = error; + { + this.trigger("error", e); + } + return null; + } + }); + return ((await Promise.all(promises))).find(function(x) { + return x != null; + }); + } catch (error) { + e = error; + { + this.trigger("error", e); + } + return null; + } + } + + }; + + var Events_1 = Events; + + var DLList$1, Events$1, Queues; + + DLList$1 = DLList_1; + + Events$1 = Events_1; + + Queues = class Queues { + constructor(num_priorities) { + var i; + this.Events = new Events$1(this); + this._length = 0; + this._lists = (function() { + var j, ref, results; + results = []; + for (i = j = 1, ref = num_priorities; (1 <= ref ? j <= ref : j >= ref); i = 1 <= ref ? ++j : --j) { + results.push(new DLList$1((() => { + return this.incr(); + }), (() => { + return this.decr(); + }))); + } + return results; + }).call(this); + } + + incr() { + if (this._length++ === 0) { + return this.Events.trigger("leftzero"); + } + } + + decr() { + if (--this._length === 0) { + return this.Events.trigger("zero"); + } + } + + push(job) { + return this._lists[job.options.priority].push(job); + } + + queued(priority) { + if (priority != null) { + return this._lists[priority].length; + } else { + return this._length; + } + } + + shiftAll(fn) { + return this._lists.forEach(function(list) { + return list.forEachShift(fn); + }); + } + + getFirst(arr = this._lists) { + var j, len, list; + for (j = 0, len = arr.length; j < len; j++) { + list = arr[j]; + if (list.length > 0) { + return list; + } + } + return []; + } + + shiftLastFrom(priority) { + return this.getFirst(this._lists.slice(priority).reverse()).shift(); + } + + }; + + var Queues_1 = Queues; + + var BottleneckError; + + BottleneckError = class BottleneckError extends Error {}; + + var BottleneckError_1 = BottleneckError; + + var BottleneckError$1, DEFAULT_PRIORITY, Job, NUM_PRIORITIES, parser$1; + + NUM_PRIORITIES = 10; + + DEFAULT_PRIORITY = 5; + + parser$1 = parser; + + BottleneckError$1 = BottleneckError_1; + + Job = class Job { + constructor(task, args, options, jobDefaults, rejectOnDrop, Events, _states, Promise) { + this.task = task; + this.args = args; + this.rejectOnDrop = rejectOnDrop; + this.Events = Events; + this._states = _states; + this.Promise = Promise; + this.options = parser$1.load(options, jobDefaults); + this.options.priority = this._sanitizePriority(this.options.priority); + if (this.options.id === jobDefaults.id) { + this.options.id = `${this.options.id}-${this._randomIndex()}`; + } + this.promise = new this.Promise((_resolve, _reject) => { + this._resolve = _resolve; + this._reject = _reject; + }); + this.retryCount = 0; + } + + _sanitizePriority(priority) { + var sProperty; + sProperty = ~~priority !== priority ? DEFAULT_PRIORITY : priority; + if (sProperty < 0) { + return 0; + } else if (sProperty > NUM_PRIORITIES - 1) { + return NUM_PRIORITIES - 1; + } else { + return sProperty; + } + } + + _randomIndex() { + return Math.random().toString(36).slice(2); + } + + doDrop({error, message = "This job has been dropped by Bottleneck"} = {}) { + if (this._states.remove(this.options.id)) { + if (this.rejectOnDrop) { + this._reject(error != null ? error : new BottleneckError$1(message)); + } + this.Events.trigger("dropped", {args: this.args, options: this.options, task: this.task, promise: this.promise}); + return true; + } else { + return false; + } + } + + _assertStatus(expected) { + var status; + status = this._states.jobStatus(this.options.id); + if (!(status === expected || (expected === "DONE" && status === null))) { + throw new BottleneckError$1(`Invalid job status ${status}, expected ${expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`); + } + } + + doReceive() { + this._states.start(this.options.id); + return this.Events.trigger("received", {args: this.args, options: this.options}); + } + + doQueue(reachedHWM, blocked) { + this._assertStatus("RECEIVED"); + this._states.next(this.options.id); + return this.Events.trigger("queued", {args: this.args, options: this.options, reachedHWM, blocked}); + } + + doRun() { + if (this.retryCount === 0) { + this._assertStatus("QUEUED"); + this._states.next(this.options.id); + } else { + this._assertStatus("EXECUTING"); + } + return this.Events.trigger("scheduled", {args: this.args, options: this.options}); + } + + async doExecute(chained, clearGlobalState, run, free) { + var error, eventInfo, passed; + if (this.retryCount === 0) { + this._assertStatus("RUNNING"); + this._states.next(this.options.id); + } else { + this._assertStatus("EXECUTING"); + } + eventInfo = {args: this.args, options: this.options, retryCount: this.retryCount}; + this.Events.trigger("executing", eventInfo); + try { + passed = (await (chained != null ? chained.schedule(this.options, this.task, ...this.args) : this.task(...this.args))); + if (clearGlobalState()) { + this.doDone(eventInfo); + await free(this.options, eventInfo); + this._assertStatus("DONE"); + return this._resolve(passed); + } + } catch (error1) { + error = error1; + return this._onFailure(error, eventInfo, clearGlobalState, run, free); + } + } + + doExpire(clearGlobalState, run, free) { + var error, eventInfo; + if (this._states.jobStatus(this.options.id === "RUNNING")) { + this._states.next(this.options.id); + } + this._assertStatus("EXECUTING"); + eventInfo = {args: this.args, options: this.options, retryCount: this.retryCount}; + error = new BottleneckError$1(`This job timed out after ${this.options.expiration} ms.`); + return this._onFailure(error, eventInfo, clearGlobalState, run, free); + } + + async _onFailure(error, eventInfo, clearGlobalState, run, free) { + var retry, retryAfter; + if (clearGlobalState()) { + retry = (await this.Events.trigger("failed", error, eventInfo)); + if (retry != null) { + retryAfter = ~~retry; + this.Events.trigger("retry", `Retrying ${this.options.id} after ${retryAfter} ms`, eventInfo); + this.retryCount++; + return run(retryAfter); + } else { + this.doDone(eventInfo); + await free(this.options, eventInfo); + this._assertStatus("DONE"); + return this._reject(error); + } + } + } + + doDone(eventInfo) { + this._assertStatus("EXECUTING"); + this._states.next(this.options.id); + return this.Events.trigger("done", eventInfo); + } + + }; + + var Job_1 = Job; + + var BottleneckError$2, LocalDatastore, parser$2; + + parser$2 = parser; + + BottleneckError$2 = BottleneckError_1; + + LocalDatastore = class LocalDatastore { + constructor(instance, storeOptions, storeInstanceOptions) { + this.instance = instance; + this.storeOptions = storeOptions; + this.clientId = this.instance._randomIndex(); + parser$2.load(storeInstanceOptions, storeInstanceOptions, this); + this._nextRequest = this._lastReservoirRefresh = this._lastReservoirIncrease = Date.now(); + this._running = 0; + this._done = 0; + this._unblockTime = 0; + this.ready = this.Promise.resolve(); + this.clients = {}; + this._startHeartbeat(); + } + + _startHeartbeat() { + var base; + if ((this.heartbeat == null) && (((this.storeOptions.reservoirRefreshInterval != null) && (this.storeOptions.reservoirRefreshAmount != null)) || ((this.storeOptions.reservoirIncreaseInterval != null) && (this.storeOptions.reservoirIncreaseAmount != null)))) { + return typeof (base = (this.heartbeat = setInterval(() => { + var amount, incr, maximum, now, reservoir; + now = Date.now(); + if ((this.storeOptions.reservoirRefreshInterval != null) && now >= this._lastReservoirRefresh + this.storeOptions.reservoirRefreshInterval) { + this._lastReservoirRefresh = now; + this.storeOptions.reservoir = this.storeOptions.reservoirRefreshAmount; + this.instance._drainAll(this.computeCapacity()); + } + if ((this.storeOptions.reservoirIncreaseInterval != null) && now >= this._lastReservoirIncrease + this.storeOptions.reservoirIncreaseInterval) { + ({ + reservoirIncreaseAmount: amount, + reservoirIncreaseMaximum: maximum, + reservoir + } = this.storeOptions); + this._lastReservoirIncrease = now; + incr = maximum != null ? Math.min(amount, maximum - reservoir) : amount; + if (incr > 0) { + this.storeOptions.reservoir += incr; + return this.instance._drainAll(this.computeCapacity()); + } + } + }, this.heartbeatInterval))).unref === "function" ? base.unref() : void 0; + } else { + return clearInterval(this.heartbeat); + } + } + + async __publish__(message) { + await this.yieldLoop(); + return this.instance.Events.trigger("message", message.toString()); + } + + async __disconnect__(flush) { + await this.yieldLoop(); + clearInterval(this.heartbeat); + return this.Promise.resolve(); + } + + yieldLoop(t = 0) { + return new this.Promise(function(resolve, reject) { + return setTimeout(resolve, t); + }); + } + + computePenalty() { + var ref; + return (ref = this.storeOptions.penalty) != null ? ref : (15 * this.storeOptions.minTime) || 5000; + } + + async __updateSettings__(options) { + await this.yieldLoop(); + parser$2.overwrite(options, options, this.storeOptions); + this._startHeartbeat(); + this.instance._drainAll(this.computeCapacity()); + return true; + } + + async __running__() { + await this.yieldLoop(); + return this._running; + } + + async __queued__() { + await this.yieldLoop(); + return this.instance.queued(); + } + + async __done__() { + await this.yieldLoop(); + return this._done; + } + + async __groupCheck__(time) { + await this.yieldLoop(); + return (this._nextRequest + this.timeout) < time; + } + + computeCapacity() { + var maxConcurrent, reservoir; + ({maxConcurrent, reservoir} = this.storeOptions); + if ((maxConcurrent != null) && (reservoir != null)) { + return Math.min(maxConcurrent - this._running, reservoir); + } else if (maxConcurrent != null) { + return maxConcurrent - this._running; + } else if (reservoir != null) { + return reservoir; + } else { + return null; + } + } + + conditionsCheck(weight) { + var capacity; + capacity = this.computeCapacity(); + return (capacity == null) || weight <= capacity; + } + + async __incrementReservoir__(incr) { + var reservoir; + await this.yieldLoop(); + reservoir = this.storeOptions.reservoir += incr; + this.instance._drainAll(this.computeCapacity()); + return reservoir; + } + + async __currentReservoir__() { + await this.yieldLoop(); + return this.storeOptions.reservoir; + } + + isBlocked(now) { + return this._unblockTime >= now; + } + + check(weight, now) { + return this.conditionsCheck(weight) && (this._nextRequest - now) <= 0; + } + + async __check__(weight) { + var now; + await this.yieldLoop(); + now = Date.now(); + return this.check(weight, now); + } + + async __register__(index, weight, expiration) { + var now, wait; + await this.yieldLoop(); + now = Date.now(); + if (this.conditionsCheck(weight)) { + this._running += weight; + if (this.storeOptions.reservoir != null) { + this.storeOptions.reservoir -= weight; + } + wait = Math.max(this._nextRequest - now, 0); + this._nextRequest = now + wait + this.storeOptions.minTime; + return { + success: true, + wait, + reservoir: this.storeOptions.reservoir + }; + } else { + return { + success: false + }; + } + } + + strategyIsBlock() { + return this.storeOptions.strategy === 3; + } + + async __submit__(queueLength, weight) { + var blocked, now, reachedHWM; + await this.yieldLoop(); + if ((this.storeOptions.maxConcurrent != null) && weight > this.storeOptions.maxConcurrent) { + throw new BottleneckError$2(`Impossible to add a job having a weight of ${weight} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`); + } + now = Date.now(); + reachedHWM = (this.storeOptions.highWater != null) && queueLength === this.storeOptions.highWater && !this.check(weight, now); + blocked = this.strategyIsBlock() && (reachedHWM || this.isBlocked(now)); + if (blocked) { + this._unblockTime = now + this.computePenalty(); + this._nextRequest = this._unblockTime + this.storeOptions.minTime; + this.instance._dropAllQueued(); + } + return { + reachedHWM, + blocked, + strategy: this.storeOptions.strategy + }; + } + + async __free__(index, weight) { + await this.yieldLoop(); + this._running -= weight; + this._done += weight; + this.instance._drainAll(this.computeCapacity()); + return { + running: this._running + }; + } + + }; + + var LocalDatastore_1 = LocalDatastore; + + var BottleneckError$3, States; + + BottleneckError$3 = BottleneckError_1; + + States = class States { + constructor(status1) { + this.status = status1; + this._jobs = {}; + this.counts = this.status.map(function() { + return 0; + }); + } + + next(id) { + var current, next; + current = this._jobs[id]; + next = current + 1; + if ((current != null) && next < this.status.length) { + this.counts[current]--; + this.counts[next]++; + return this._jobs[id]++; + } else if (current != null) { + this.counts[current]--; + return delete this._jobs[id]; + } + } + + start(id) { + var initial; + initial = 0; + this._jobs[id] = initial; + return this.counts[initial]++; + } + + remove(id) { + var current; + current = this._jobs[id]; + if (current != null) { + this.counts[current]--; + delete this._jobs[id]; + } + return current != null; + } + + jobStatus(id) { + var ref; + return (ref = this.status[this._jobs[id]]) != null ? ref : null; + } + + statusJobs(status) { + var k, pos, ref, results, v; + if (status != null) { + pos = this.status.indexOf(status); + if (pos < 0) { + throw new BottleneckError$3(`status must be one of ${this.status.join(', ')}`); + } + ref = this._jobs; + results = []; + for (k in ref) { + v = ref[k]; + if (v === pos) { + results.push(k); + } + } + return results; + } else { + return Object.keys(this._jobs); + } + } + + statusCounts() { + return this.counts.reduce(((acc, v, i) => { + acc[this.status[i]] = v; + return acc; + }), {}); + } + + }; + + var States_1 = States; + + var DLList$2, Sync; + + DLList$2 = DLList_1; + + Sync = class Sync { + constructor(name, Promise) { + this.schedule = this.schedule.bind(this); + this.name = name; + this.Promise = Promise; + this._running = 0; + this._queue = new DLList$2(); + } + + isEmpty() { + return this._queue.length === 0; + } + + async _tryToRun() { + var args, cb, error, reject, resolve, returned, task; + if ((this._running < 1) && this._queue.length > 0) { + this._running++; + ({task, args, resolve, reject} = this._queue.shift()); + cb = (await (async function() { + try { + returned = (await task(...args)); + return function() { + return resolve(returned); + }; + } catch (error1) { + error = error1; + return function() { + return reject(error); + }; + } + })()); + this._running--; + this._tryToRun(); + return cb(); + } + } + + schedule(task, ...args) { + var promise, reject, resolve; + resolve = reject = null; + promise = new this.Promise(function(_resolve, _reject) { + resolve = _resolve; + return reject = _reject; + }); + this._queue.push({task, args, resolve, reject}); + this._tryToRun(); + return promise; + } + + }; + + var Sync_1 = Sync; + + var version = "2.19.5"; + var version$1 = { + version: version + }; + + var version$2 = /*#__PURE__*/Object.freeze({ + version: version, + default: version$1 + }); + + var require$$2 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var require$$3 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var require$$4 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var Events$2, Group, IORedisConnection$1, RedisConnection$1, Scripts$1, parser$3; + + parser$3 = parser; + + Events$2 = Events_1; + + RedisConnection$1 = require$$2; + + IORedisConnection$1 = require$$3; + + Scripts$1 = require$$4; + + Group = (function() { + class Group { + constructor(limiterOptions = {}) { + this.deleteKey = this.deleteKey.bind(this); + this.limiterOptions = limiterOptions; + parser$3.load(this.limiterOptions, this.defaults, this); + this.Events = new Events$2(this); + this.instances = {}; + this.Bottleneck = Bottleneck_1; + this._startAutoCleanup(); + this.sharedConnection = this.connection != null; + if (this.connection == null) { + if (this.limiterOptions.datastore === "redis") { + this.connection = new RedisConnection$1(Object.assign({}, this.limiterOptions, {Events: this.Events})); + } else if (this.limiterOptions.datastore === "ioredis") { + this.connection = new IORedisConnection$1(Object.assign({}, this.limiterOptions, {Events: this.Events})); + } + } + } + + key(key = "") { + var ref; + return (ref = this.instances[key]) != null ? ref : (() => { + var limiter; + limiter = this.instances[key] = new this.Bottleneck(Object.assign(this.limiterOptions, { + id: `${this.id}-${key}`, + timeout: this.timeout, + connection: this.connection + })); + this.Events.trigger("created", limiter, key); + return limiter; + })(); + } + + async deleteKey(key = "") { + var deleted, instance; + instance = this.instances[key]; + if (this.connection) { + deleted = (await this.connection.__runCommand__(['del', ...Scripts$1.allKeys(`${this.id}-${key}`)])); + } + if (instance != null) { + delete this.instances[key]; + await instance.disconnect(); + } + return (instance != null) || deleted > 0; + } + + limiters() { + var k, ref, results, v; + ref = this.instances; + results = []; + for (k in ref) { + v = ref[k]; + results.push({ + key: k, + limiter: v + }); + } + return results; + } + + keys() { + return Object.keys(this.instances); + } + + async clusterKeys() { + var cursor, end, found, i, k, keys, len, next, start; + if (this.connection == null) { + return this.Promise.resolve(this.keys()); + } + keys = []; + cursor = null; + start = `b_${this.id}-`.length; + end = "_settings".length; + while (cursor !== 0) { + [next, found] = (await this.connection.__runCommand__(["scan", cursor != null ? cursor : 0, "match", `b_${this.id}-*_settings`, "count", 10000])); + cursor = ~~next; + for (i = 0, len = found.length; i < len; i++) { + k = found[i]; + keys.push(k.slice(start, -end)); + } + } + return keys; + } + + _startAutoCleanup() { + var base; + clearInterval(this.interval); + return typeof (base = (this.interval = setInterval(async() => { + var e, k, ref, results, time, v; + time = Date.now(); + ref = this.instances; + results = []; + for (k in ref) { + v = ref[k]; + try { + if ((await v._store.__groupCheck__(time))) { + results.push(this.deleteKey(k)); + } else { + results.push(void 0); + } + } catch (error) { + e = error; + results.push(v.Events.trigger("error", e)); + } + } + return results; + }, this.timeout / 2))).unref === "function" ? base.unref() : void 0; + } + + updateSettings(options = {}) { + parser$3.overwrite(options, this.defaults, this); + parser$3.overwrite(options, options, this.limiterOptions); + if (options.timeout != null) { + return this._startAutoCleanup(); + } + } + + disconnect(flush = true) { + var ref; + if (!this.sharedConnection) { + return (ref = this.connection) != null ? ref.disconnect(flush) : void 0; + } + } + + } + Group.prototype.defaults = { + timeout: 1000 * 60 * 5, + connection: null, + Promise: Promise, + id: "group-key" + }; + + return Group; + + }).call(commonjsGlobal); + + var Group_1 = Group; + + var Batcher, Events$3, parser$4; + + parser$4 = parser; + + Events$3 = Events_1; + + Batcher = (function() { + class Batcher { + constructor(options = {}) { + this.options = options; + parser$4.load(this.options, this.defaults, this); + this.Events = new Events$3(this); + this._arr = []; + this._resetPromise(); + this._lastFlush = Date.now(); + } + + _resetPromise() { + return this._promise = new this.Promise((res, rej) => { + return this._resolve = res; + }); + } + + _flush() { + clearTimeout(this._timeout); + this._lastFlush = Date.now(); + this._resolve(); + this.Events.trigger("batch", this._arr); + this._arr = []; + return this._resetPromise(); + } + + add(data) { + var ret; + this._arr.push(data); + ret = this._promise; + if (this._arr.length === this.maxSize) { + this._flush(); + } else if ((this.maxTime != null) && this._arr.length === 1) { + this._timeout = setTimeout(() => { + return this._flush(); + }, this.maxTime); + } + return ret; + } + + } + Batcher.prototype.defaults = { + maxTime: null, + maxSize: null, + Promise: Promise + }; + + return Batcher; + + }).call(commonjsGlobal); + + var Batcher_1 = Batcher; + + var require$$4$1 = () => console.log('You must import the full version of Bottleneck in order to use this feature.'); + + var require$$8 = getCjsExportFromNamespace(version$2); + + var Bottleneck, DEFAULT_PRIORITY$1, Events$4, Job$1, LocalDatastore$1, NUM_PRIORITIES$1, Queues$1, RedisDatastore$1, States$1, Sync$1, parser$5, + splice = [].splice; + + NUM_PRIORITIES$1 = 10; + + DEFAULT_PRIORITY$1 = 5; + + parser$5 = parser; + + Queues$1 = Queues_1; + + Job$1 = Job_1; + + LocalDatastore$1 = LocalDatastore_1; + + RedisDatastore$1 = require$$4$1; + + Events$4 = Events_1; + + States$1 = States_1; + + Sync$1 = Sync_1; + + Bottleneck = (function() { + class Bottleneck { + constructor(options = {}, ...invalid) { + var storeInstanceOptions, storeOptions; + this._addToQueue = this._addToQueue.bind(this); + this._validateOptions(options, invalid); + parser$5.load(options, this.instanceDefaults, this); + this._queues = new Queues$1(NUM_PRIORITIES$1); + this._scheduled = {}; + this._states = new States$1(["RECEIVED", "QUEUED", "RUNNING", "EXECUTING"].concat(this.trackDoneStatus ? ["DONE"] : [])); + this._limiter = null; + this.Events = new Events$4(this); + this._submitLock = new Sync$1("submit", this.Promise); + this._registerLock = new Sync$1("register", this.Promise); + storeOptions = parser$5.load(options, this.storeDefaults, {}); + this._store = (function() { + if (this.datastore === "redis" || this.datastore === "ioredis" || (this.connection != null)) { + storeInstanceOptions = parser$5.load(options, this.redisStoreDefaults, {}); + return new RedisDatastore$1(this, storeOptions, storeInstanceOptions); + } else if (this.datastore === "local") { + storeInstanceOptions = parser$5.load(options, this.localStoreDefaults, {}); + return new LocalDatastore$1(this, storeOptions, storeInstanceOptions); + } else { + throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`); + } + }).call(this); + this._queues.on("leftzero", () => { + var ref; + return (ref = this._store.heartbeat) != null ? typeof ref.ref === "function" ? ref.ref() : void 0 : void 0; + }); + this._queues.on("zero", () => { + var ref; + return (ref = this._store.heartbeat) != null ? typeof ref.unref === "function" ? ref.unref() : void 0 : void 0; + }); + } + + _validateOptions(options, invalid) { + if (!((options != null) && typeof options === "object" && invalid.length === 0)) { + throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1."); + } + } + + ready() { + return this._store.ready; + } + + clients() { + return this._store.clients; + } + + channel() { + return `b_${this.id}`; + } + + channel_client() { + return `b_${this.id}_${this._store.clientId}`; + } + + publish(message) { + return this._store.__publish__(message); + } + + disconnect(flush = true) { + return this._store.__disconnect__(flush); + } + + chain(_limiter) { + this._limiter = _limiter; + return this; + } + + queued(priority) { + return this._queues.queued(priority); + } + + clusterQueued() { + return this._store.__queued__(); + } + + empty() { + return this.queued() === 0 && this._submitLock.isEmpty(); + } + + running() { + return this._store.__running__(); + } + + done() { + return this._store.__done__(); + } + + jobStatus(id) { + return this._states.jobStatus(id); + } + + jobs(status) { + return this._states.statusJobs(status); + } + + counts() { + return this._states.statusCounts(); + } + + _randomIndex() { + return Math.random().toString(36).slice(2); + } + + check(weight = 1) { + return this._store.__check__(weight); + } + + _clearGlobalState(index) { + if (this._scheduled[index] != null) { + clearTimeout(this._scheduled[index].expiration); + delete this._scheduled[index]; + return true; + } else { + return false; + } + } + + async _free(index, job, options, eventInfo) { + var e, running; + try { + ({running} = (await this._store.__free__(index, options.weight))); + this.Events.trigger("debug", `Freed ${options.id}`, eventInfo); + if (running === 0 && this.empty()) { + return this.Events.trigger("idle"); + } + } catch (error1) { + e = error1; + return this.Events.trigger("error", e); + } + } + + _run(index, job, wait) { + var clearGlobalState, free, run; + job.doRun(); + clearGlobalState = this._clearGlobalState.bind(this, index); + run = this._run.bind(this, index, job); + free = this._free.bind(this, index, job); + return this._scheduled[index] = { + timeout: setTimeout(() => { + return job.doExecute(this._limiter, clearGlobalState, run, free); + }, wait), + expiration: job.options.expiration != null ? setTimeout(function() { + return job.doExpire(clearGlobalState, run, free); + }, wait + job.options.expiration) : void 0, + job: job + }; + } + + _drainOne(capacity) { + return this._registerLock.schedule(() => { + var args, index, next, options, queue; + if (this.queued() === 0) { + return this.Promise.resolve(null); + } + queue = this._queues.getFirst(); + ({options, args} = next = queue.first()); + if ((capacity != null) && options.weight > capacity) { + return this.Promise.resolve(null); + } + this.Events.trigger("debug", `Draining ${options.id}`, {args, options}); + index = this._randomIndex(); + return this._store.__register__(index, options.weight, options.expiration).then(({success, wait, reservoir}) => { + var empty; + this.Events.trigger("debug", `Drained ${options.id}`, {success, args, options}); + if (success) { + queue.shift(); + empty = this.empty(); + if (empty) { + this.Events.trigger("empty"); + } + if (reservoir === 0) { + this.Events.trigger("depleted", empty); + } + this._run(index, next, wait); + return this.Promise.resolve(options.weight); + } else { + return this.Promise.resolve(null); + } + }); + }); + } + + _drainAll(capacity, total = 0) { + return this._drainOne(capacity).then((drained) => { + var newCapacity; + if (drained != null) { + newCapacity = capacity != null ? capacity - drained : capacity; + return this._drainAll(newCapacity, total + drained); + } else { + return this.Promise.resolve(total); + } + }).catch((e) => { + return this.Events.trigger("error", e); + }); + } + + _dropAllQueued(message) { + return this._queues.shiftAll(function(job) { + return job.doDrop({message}); + }); + } + + stop(options = {}) { + var done, waitForExecuting; + options = parser$5.load(options, this.stopDefaults); + waitForExecuting = (at) => { + var finished; + finished = () => { + var counts; + counts = this._states.counts; + return (counts[0] + counts[1] + counts[2] + counts[3]) === at; + }; + return new this.Promise((resolve, reject) => { + if (finished()) { + return resolve(); + } else { + return this.on("done", () => { + if (finished()) { + this.removeAllListeners("done"); + return resolve(); + } + }); + } + }); + }; + done = options.dropWaitingJobs ? (this._run = function(index, next) { + return next.doDrop({ + message: options.dropErrorMessage + }); + }, this._drainOne = () => { + return this.Promise.resolve(null); + }, this._registerLock.schedule(() => { + return this._submitLock.schedule(() => { + var k, ref, v; + ref = this._scheduled; + for (k in ref) { + v = ref[k]; + if (this.jobStatus(v.job.options.id) === "RUNNING") { + clearTimeout(v.timeout); + clearTimeout(v.expiration); + v.job.doDrop({ + message: options.dropErrorMessage + }); + } + } + this._dropAllQueued(options.dropErrorMessage); + return waitForExecuting(0); + }); + })) : this.schedule({ + priority: NUM_PRIORITIES$1 - 1, + weight: 0 + }, () => { + return waitForExecuting(1); + }); + this._receive = function(job) { + return job._reject(new Bottleneck.prototype.BottleneckError(options.enqueueErrorMessage)); + }; + this.stop = () => { + return this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called")); + }; + return done; + } + + async _addToQueue(job) { + var args, blocked, error, options, reachedHWM, shifted, strategy; + ({args, options} = job); + try { + ({reachedHWM, blocked, strategy} = (await this._store.__submit__(this.queued(), options.weight))); + } catch (error1) { + error = error1; + this.Events.trigger("debug", `Could not queue ${options.id}`, {args, options, error}); + job.doDrop({error}); + return false; + } + if (blocked) { + job.doDrop(); + return true; + } else if (reachedHWM) { + shifted = strategy === Bottleneck.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0; + if (shifted != null) { + shifted.doDrop(); + } + if ((shifted == null) || strategy === Bottleneck.prototype.strategy.OVERFLOW) { + if (shifted == null) { + job.doDrop(); + } + return reachedHWM; + } + } + job.doQueue(reachedHWM, blocked); + this._queues.push(job); + await this._drainAll(); + return reachedHWM; + } + + _receive(job) { + if (this._states.jobStatus(job.options.id) != null) { + job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`)); + return false; + } else { + job.doReceive(); + return this._submitLock.schedule(this._addToQueue, job); + } + } + + submit(...args) { + var cb, fn, job, options, ref, ref1, task; + if (typeof args[0] === "function") { + ref = args, [fn, ...args] = ref, [cb] = splice.call(args, -1); + options = parser$5.load({}, this.jobDefaults); + } else { + ref1 = args, [options, fn, ...args] = ref1, [cb] = splice.call(args, -1); + options = parser$5.load(options, this.jobDefaults); + } + task = (...args) => { + return new this.Promise(function(resolve, reject) { + return fn(...args, function(...args) { + return (args[0] != null ? reject : resolve)(args); + }); + }); + }; + job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + job.promise.then(function(args) { + return typeof cb === "function" ? cb(...args) : void 0; + }).catch(function(args) { + if (Array.isArray(args)) { + return typeof cb === "function" ? cb(...args) : void 0; + } else { + return typeof cb === "function" ? cb(args) : void 0; + } + }); + return this._receive(job); + } + + schedule(...args) { + var job, options, task; + if (typeof args[0] === "function") { + [task, ...args] = args; + options = {}; + } else { + [options, task, ...args] = args; + } + job = new Job$1(task, args, options, this.jobDefaults, this.rejectOnDrop, this.Events, this._states, this.Promise); + this._receive(job); + return job.promise; + } + + wrap(fn) { + var schedule, wrapped; + schedule = this.schedule.bind(this); + wrapped = function(...args) { + return schedule(fn.bind(this), ...args); + }; + wrapped.withOptions = function(options, ...args) { + return schedule(options, fn, ...args); + }; + return wrapped; + } + + async updateSettings(options = {}) { + await this._store.__updateSettings__(parser$5.overwrite(options, this.storeDefaults)); + parser$5.overwrite(options, this.instanceDefaults, this); + return this; + } + + currentReservoir() { + return this._store.__currentReservoir__(); + } + + incrementReservoir(incr = 0) { + return this._store.__incrementReservoir__(incr); + } + + } + Bottleneck.default = Bottleneck; + + Bottleneck.Events = Events$4; + + Bottleneck.version = Bottleneck.prototype.version = require$$8.version; + + Bottleneck.strategy = Bottleneck.prototype.strategy = { + LEAK: 1, + OVERFLOW: 2, + OVERFLOW_PRIORITY: 4, + BLOCK: 3 + }; + + Bottleneck.BottleneckError = Bottleneck.prototype.BottleneckError = BottleneckError_1; + + Bottleneck.Group = Bottleneck.prototype.Group = Group_1; + + Bottleneck.RedisConnection = Bottleneck.prototype.RedisConnection = require$$2; + + Bottleneck.IORedisConnection = Bottleneck.prototype.IORedisConnection = require$$3; + + Bottleneck.Batcher = Bottleneck.prototype.Batcher = Batcher_1; + + Bottleneck.prototype.jobDefaults = { + priority: DEFAULT_PRIORITY$1, + weight: 1, + expiration: null, + id: "" + }; + + Bottleneck.prototype.storeDefaults = { + maxConcurrent: null, + minTime: 0, + highWater: null, + strategy: Bottleneck.prototype.strategy.LEAK, + penalty: null, + reservoir: null, + reservoirRefreshInterval: null, + reservoirRefreshAmount: null, + reservoirIncreaseInterval: null, + reservoirIncreaseAmount: null, + reservoirIncreaseMaximum: null + }; + + Bottleneck.prototype.localStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 250 + }; + + Bottleneck.prototype.redisStoreDefaults = { + Promise: Promise, + timeout: null, + heartbeatInterval: 5000, + clientTimeout: 10000, + Redis: null, + clientOptions: {}, + clusterNodes: null, + clearDatastore: false, + connection: null + }; + + Bottleneck.prototype.instanceDefaults = { + datastore: "local", + connection: null, + id: "", + rejectOnDrop: true, + trackDoneStatus: false, + Promise: Promise + }; + + Bottleneck.prototype.stopDefaults = { + enqueueErrorMessage: "This limiter has been stopped and cannot accept new jobs.", + dropWaitingJobs: true, + dropErrorMessage: "This limiter has been stopped." + }; + + return Bottleneck; + + }).call(commonjsGlobal); + + var Bottleneck_1 = Bottleneck; + + var lib = Bottleneck_1; + + return lib; + +}))); diff --git a/node_modules/bottleneck/package.json b/node_modules/bottleneck/package.json new file mode 100644 index 0000000..b169997 --- /dev/null +++ b/node_modules/bottleneck/package.json @@ -0,0 +1,56 @@ +{ + "name": "bottleneck", + "version": "2.19.5", + "description": "Distributed task scheduler and rate limiter", + "main": "lib/index.js", + "typings": "bottleneck.d.ts", + "scripts": { + "test": "mocha test", + "test-all": "./scripts/test_all.sh" + }, + "repository": { + "type": "git", + "url": "https://github.com/SGrondin/bottleneck" + }, + "keywords": [ + "async rate limiter", + "rate limiter", + "rate limiting", + "async", + "rate", + "limiting", + "limiter", + "throttle", + "throttling", + "throttler", + "load", + "clustering" + ], + "author": { + "name": "Simon Grondin" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/SGrondin/bottleneck/issues" + }, + "devDependencies": { + "@babel/core": "^7.5.0", + "@babel/preset-env": "^7.5.0", + "@types/es6-promise": "0.0.33", + "assert": "^1.5.0", + "coffeescript": "2.4.x", + "ejs-cli": "github:SGrondin/ejs-cli#master", + "ioredis": "^4.11.1", + "leakage": "^0.4.0", + "mocha": "^6.1.4", + "redis": "^2.8.0", + "regenerator-runtime": "^0.12.1", + "rollup": "^0.66.6", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-commonjs": "^9.3.4", + "rollup-plugin-json": "^3.1.0", + "rollup-plugin-node-resolve": "^3.4.0", + "typescript": "^2.6.2" + }, + "dependencies": {} +} diff --git a/node_modules/bottleneck/rollup.config.es5.js b/node_modules/bottleneck/rollup.config.es5.js new file mode 100644 index 0000000..8b0483e --- /dev/null +++ b/node_modules/bottleneck/rollup.config.es5.js @@ -0,0 +1,34 @@ +import json from 'rollup-plugin-json'; +import resolve from 'rollup-plugin-node-resolve'; +import commonjs from 'rollup-plugin-commonjs'; +import babel from 'rollup-plugin-babel'; + +const bannerLines = [ + 'This file contains the full Bottleneck library (MIT) compiled to ES5.', + 'https://github.com/SGrondin/bottleneck', + 'It also contains the regenerator-runtime (MIT), necessary for Babel-generated ES5 code to execute promise and async/await code.', + 'See the following link for Copyright and License information:', + 'https://github.com/facebook/regenerator/blob/master/packages/regenerator-runtime/runtime.js', +].map(x => ` * ${x}`).join('\n'); +const banner = `/**\n${bannerLines}\n */`; + +export default { + input: 'lib/es5.js', + output: { + name: 'Bottleneck', + file: 'es5.js', + sourcemap: false, + globals: {}, + format: 'umd', + banner + }, + external: [], + plugins: [ + json(), + resolve(), + commonjs(), + babel({ + exclude: 'node_modules/**' + }) + ] +}; diff --git a/node_modules/bottleneck/rollup.config.light.js b/node_modules/bottleneck/rollup.config.light.js new file mode 100644 index 0000000..6a72c70 --- /dev/null +++ b/node_modules/bottleneck/rollup.config.light.js @@ -0,0 +1,44 @@ +import commonjs from 'rollup-plugin-commonjs'; +import json from 'rollup-plugin-json'; +import resolve from 'rollup-plugin-node-resolve'; + +const bannerLines = [ + 'This file contains the Bottleneck library (MIT), compiled to ES2017, and without Clustering support.', + 'https://github.com/SGrondin/bottleneck', +].map(x => ` * ${x}`).join('\n'); +const banner = `/**\n${bannerLines}\n */`; + +const missing = `export default () => console.log('You must import the full version of Bottleneck in order to use this feature.');`; +const exclude = [ + 'RedisDatastore.js', + 'RedisConnection.js', + 'IORedisConnection.js', + 'Scripts.js' +]; + +export default { + input: 'lib/index.js', + output: { + name: 'Bottleneck', + file: 'light.js', + sourcemap: false, + globals: {}, + format: 'umd', + banner + }, + external: [], + plugins: [ + json(), + { + load: id => { + const chunks = id.split('/'); + const file = chunks[chunks.length - 1]; + if (exclude.indexOf(file) >= 0) { + return missing + } + } + }, + resolve(), + commonjs() + ] +}; diff --git a/node_modules/bottleneck/scripts/assemble_lua.js b/node_modules/bottleneck/scripts/assemble_lua.js new file mode 100644 index 0000000..eb7a93b --- /dev/null +++ b/node_modules/bottleneck/scripts/assemble_lua.js @@ -0,0 +1,25 @@ +var fs = require('fs') + +var input = __dirname + '/../src/redis' +var loaded = {} + +var promises = fs.readdirSync(input).map(function (file) { + return new Promise(function (resolve, reject) { + fs.readFile(input + '/' + file, function (err, data) { + if (err != null) { + return reject(err) + } + loaded[file] = data.toString('utf8') + return resolve() + }) + }) +}) + +Promise.all(promises) +.then(function () { + console.log(JSON.stringify(loaded, Object.keys(loaded).sort(), 2)) +}) +.catch(function (err) { + console.error(err) + process.exit(1) +}) diff --git a/node_modules/bottleneck/scripts/build.sh b/node_modules/bottleneck/scripts/build.sh new file mode 100755 index 0000000..4aadfc6 --- /dev/null +++ b/node_modules/bottleneck/scripts/build.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash + +set -e + +if [ ! -d node_modules ]; then + echo "[B] Run 'npm install' first" + exit 1 +fi + + +clean() { + rm -f .babelrc + rm -rf lib/* + node scripts/version.js > lib/version.json + node scripts/assemble_lua.js > lib/lua.json +} + +makeLib10() { + echo '[B] Compiling Bottleneck to Node 10+...' + npx coffee --compile --bare --no-header src/*.coffee + mv src/*.js lib/ +} + +makeLib6() { + echo '[B] Compiling Bottleneck to Node 6+...' + ln -s .babelrc.lib .babelrc + npx coffee --compile --bare --no-header --transpile src/*.coffee + mv src/*.js lib/ +} + +makeES5() { + echo '[B] Compiling Bottleneck to ES5...' + ln -s .babelrc.es5 .babelrc + npx coffee --compile --bare --no-header src/*.coffee + mv src/*.js lib/ + + echo '[B] Assembling ES5 bundle...' + npx rollup -c rollup.config.es5.js +} + +makeLight() { + makeLib10 + + echo '[B] Assembling light bundle...' + npx rollup -c rollup.config.light.js +} + +makeTypings() { + echo '[B] Compiling and testing TS typings...' + npx ejs-cli bottleneck.d.ts.ejs > bottleneck.d.ts + npx tsc --noEmit --strict test.ts +} + +if [ "$1" = 'dev' ]; then + clean + makeLib10 +elif [ "$1" = 'bench' ]; then + clean + makeLib6 +elif [ "$1" = 'es5' ]; then + clean + makeES5 +elif [ "$1" = 'light' ]; then + clean + makeLight +elif [ "$1" = 'typings' ]; then + makeTypings +else + clean + makeES5 + + clean + makeLight + + clean + makeLib6 + makeTypings +fi + +rm -f .babelrc + +echo '[B] Done!' diff --git a/node_modules/bottleneck/scripts/test_all.sh b/node_modules/bottleneck/scripts/test_all.sh new file mode 100755 index 0000000..afc6892 --- /dev/null +++ b/node_modules/bottleneck/scripts/test_all.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -e + +source .env + +echo 'ioredis tests' +DATASTORE=ioredis npm test + +echo 'NodeRedis tests' +DATASTORE=redis npm test + +echo 'ES5 bundle tests' +BUILD=es5 npm test + +echo 'Light bundle tests' +BUILD=light npm test + +echo 'Local tests' +npm test diff --git a/node_modules/bottleneck/scripts/version.js b/node_modules/bottleneck/scripts/version.js new file mode 100644 index 0000000..75671da --- /dev/null +++ b/node_modules/bottleneck/scripts/version.js @@ -0,0 +1,3 @@ +const packagejson = require('../package.json') + +console.log(JSON.stringify({version: packagejson.version})) diff --git a/node_modules/bottleneck/src/Batcher.coffee b/node_modules/bottleneck/src/Batcher.coffee new file mode 100644 index 0000000..5ddd66d --- /dev/null +++ b/node_modules/bottleneck/src/Batcher.coffee @@ -0,0 +1,39 @@ +parser = require "./parser" +Events = require "./Events" + +class Batcher + defaults: + maxTime: null + maxSize: null + Promise: Promise + + constructor: (@options={}) -> + parser.load @options, @defaults, @ + @Events = new Events @ + @_arr = [] + @_resetPromise() + @_lastFlush = Date.now() + + _resetPromise: -> + @_promise = new @Promise (res, rej) => @_resolve = res + + _flush: -> + clearTimeout @_timeout + @_lastFlush = Date.now() + @_resolve() + @Events.trigger "batch", @_arr + @_arr = [] + @_resetPromise() + + add: (data) -> + @_arr.push data + ret = @_promise + if @_arr.length == @maxSize + @_flush() + else if @maxTime? and @_arr.length == 1 + @_timeout = setTimeout => + @_flush() + , @maxTime + ret + +module.exports = Batcher diff --git a/node_modules/bottleneck/src/Bottleneck.coffee b/node_modules/bottleneck/src/Bottleneck.coffee new file mode 100644 index 0000000..37db2be --- /dev/null +++ b/node_modules/bottleneck/src/Bottleneck.coffee @@ -0,0 +1,298 @@ +NUM_PRIORITIES = 10 +DEFAULT_PRIORITY = 5 + +parser = require "./parser" +Queues = require "./Queues" +Job = require "./Job" +LocalDatastore = require "./LocalDatastore" +RedisDatastore = require "./RedisDatastore" +Events = require "./Events" +States = require "./States" +Sync = require "./Sync" + +class Bottleneck + Bottleneck.default = Bottleneck + Bottleneck.Events = Events + Bottleneck.version = Bottleneck::version = require("./version.json").version + Bottleneck.strategy = Bottleneck::strategy = { LEAK:1, OVERFLOW:2, OVERFLOW_PRIORITY:4, BLOCK:3 } + Bottleneck.BottleneckError = Bottleneck::BottleneckError = require "./BottleneckError" + Bottleneck.Group = Bottleneck::Group = require "./Group" + Bottleneck.RedisConnection = Bottleneck::RedisConnection = require "./RedisConnection" + Bottleneck.IORedisConnection = Bottleneck::IORedisConnection = require "./IORedisConnection" + Bottleneck.Batcher = Bottleneck::Batcher = require "./Batcher" + jobDefaults: + priority: DEFAULT_PRIORITY + weight: 1 + expiration: null + id: "" + storeDefaults: + maxConcurrent: null + minTime: 0 + highWater: null + strategy: Bottleneck::strategy.LEAK + penalty: null + reservoir: null + reservoirRefreshInterval: null + reservoirRefreshAmount: null + reservoirIncreaseInterval: null + reservoirIncreaseAmount: null + reservoirIncreaseMaximum: null + localStoreDefaults: + Promise: Promise + timeout: null + heartbeatInterval: 250 + redisStoreDefaults: + Promise: Promise + timeout: null + heartbeatInterval: 5000 + clientTimeout: 10000 + Redis: null + clientOptions: {} + clusterNodes: null + clearDatastore: false + connection: null + instanceDefaults: + datastore: "local" + connection: null + id: "" + rejectOnDrop: true + trackDoneStatus: false + Promise: Promise + stopDefaults: + enqueueErrorMessage: "This limiter has been stopped and cannot accept new jobs." + dropWaitingJobs: true + dropErrorMessage: "This limiter has been stopped." + + constructor: (options={}, invalid...) -> + @_validateOptions options, invalid + parser.load options, @instanceDefaults, @ + @_queues = new Queues NUM_PRIORITIES + @_scheduled = {} + @_states = new States ["RECEIVED", "QUEUED", "RUNNING", "EXECUTING"].concat(if @trackDoneStatus then ["DONE"] else []) + @_limiter = null + @Events = new Events @ + @_submitLock = new Sync "submit", @Promise + @_registerLock = new Sync "register", @Promise + storeOptions = parser.load options, @storeDefaults, {} + + @_store = if @datastore == "redis" or @datastore == "ioredis" or @connection? + storeInstanceOptions = parser.load options, @redisStoreDefaults, {} + new RedisDatastore @, storeOptions, storeInstanceOptions + else if @datastore == "local" + storeInstanceOptions = parser.load options, @localStoreDefaults, {} + new LocalDatastore @, storeOptions, storeInstanceOptions + else + throw new Bottleneck::BottleneckError "Invalid datastore type: #{@datastore}" + + @_queues.on "leftzero", => @_store.heartbeat?.ref?() + @_queues.on "zero", => @_store.heartbeat?.unref?() + + _validateOptions: (options, invalid) -> + unless options? and typeof options == "object" and invalid.length == 0 + throw new Bottleneck::BottleneckError "Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1." + + ready: -> @_store.ready + + clients: -> @_store.clients + + channel: -> "b_#{@id}" + + channel_client: -> "b_#{@id}_#{@_store.clientId}" + + publish: (message) -> @_store.__publish__ message + + disconnect: (flush=true) -> @_store.__disconnect__ flush + + chain: (@_limiter) -> @ + + queued: (priority) -> @_queues.queued priority + + clusterQueued: -> @_store.__queued__() + + empty: -> @queued() == 0 and @_submitLock.isEmpty() + + running: -> @_store.__running__() + + done: -> @_store.__done__() + + jobStatus: (id) -> @_states.jobStatus id + + jobs: (status) -> @_states.statusJobs status + + counts: -> @_states.statusCounts() + + _randomIndex: -> Math.random().toString(36).slice(2) + + check: (weight=1) -> @_store.__check__ weight + + _clearGlobalState: (index) -> + if @_scheduled[index]? + clearTimeout @_scheduled[index].expiration + delete @_scheduled[index] + true + else false + + _free: (index, job, options, eventInfo) -> + try + { running } = await @_store.__free__ index, options.weight + @Events.trigger "debug", "Freed #{options.id}", eventInfo + if running == 0 and @empty() then @Events.trigger "idle" + catch e + @Events.trigger "error", e + + _run: (index, job, wait) -> + job.doRun() + clearGlobalState = @_clearGlobalState.bind @, index + run = @_run.bind @, index, job + free = @_free.bind @, index, job + + @_scheduled[index] = + timeout: setTimeout => + job.doExecute @_limiter, clearGlobalState, run, free + , wait + expiration: if job.options.expiration? then setTimeout -> + job.doExpire clearGlobalState, run, free + , wait + job.options.expiration + job: job + + _drainOne: (capacity) -> + @_registerLock.schedule => + if @queued() == 0 then return @Promise.resolve null + queue = @_queues.getFirst() + { options, args } = next = queue.first() + if capacity? and options.weight > capacity then return @Promise.resolve null + @Events.trigger "debug", "Draining #{options.id}", { args, options } + index = @_randomIndex() + @_store.__register__ index, options.weight, options.expiration + .then ({ success, wait, reservoir }) => + @Events.trigger "debug", "Drained #{options.id}", { success, args, options } + if success + queue.shift() + empty = @empty() + if empty then @Events.trigger "empty" + if reservoir == 0 then @Events.trigger "depleted", empty + @_run index, next, wait + @Promise.resolve options.weight + else + @Promise.resolve null + + _drainAll: (capacity, total=0) -> + @_drainOne(capacity) + .then (drained) => + if drained? + newCapacity = if capacity? then capacity - drained else capacity + @_drainAll(newCapacity, total + drained) + else @Promise.resolve total + .catch (e) => @Events.trigger "error", e + + _dropAllQueued: (message) -> @_queues.shiftAll (job) -> job.doDrop { message } + + stop: (options={}) -> + options = parser.load options, @stopDefaults + waitForExecuting = (at) => + finished = => + counts = @_states.counts + (counts[0] + counts[1] + counts[2] + counts[3]) == at + new @Promise (resolve, reject) => + if finished() then resolve() + else + @on "done", => + if finished() + @removeAllListeners "done" + resolve() + done = if options.dropWaitingJobs + @_run = (index, next) -> next.doDrop { message: options.dropErrorMessage } + @_drainOne = => @Promise.resolve null + @_registerLock.schedule => @_submitLock.schedule => + for k, v of @_scheduled + if @jobStatus(v.job.options.id) == "RUNNING" + clearTimeout v.timeout + clearTimeout v.expiration + v.job.doDrop { message: options.dropErrorMessage } + @_dropAllQueued options.dropErrorMessage + waitForExecuting(0) + else + @schedule { priority: NUM_PRIORITIES - 1, weight: 0 }, => waitForExecuting(1) + @_receive = (job) -> job._reject new Bottleneck::BottleneckError options.enqueueErrorMessage + @stop = => @Promise.reject new Bottleneck::BottleneckError "stop() has already been called" + done + + _addToQueue: (job) => + { args, options } = job + try + { reachedHWM, blocked, strategy } = await @_store.__submit__ @queued(), options.weight + catch error + @Events.trigger "debug", "Could not queue #{options.id}", { args, options, error } + job.doDrop { error } + return false + + if blocked + job.doDrop() + return true + else if reachedHWM + shifted = if strategy == Bottleneck::strategy.LEAK then @_queues.shiftLastFrom(options.priority) + else if strategy == Bottleneck::strategy.OVERFLOW_PRIORITY then @_queues.shiftLastFrom(options.priority + 1) + else if strategy == Bottleneck::strategy.OVERFLOW then job + if shifted? then shifted.doDrop() + if not shifted? or strategy == Bottleneck::strategy.OVERFLOW + if not shifted? then job.doDrop() + return reachedHWM + + job.doQueue reachedHWM, blocked + @_queues.push job + await @_drainAll() + reachedHWM + + _receive: (job) -> + if @_states.jobStatus(job.options.id)? + job._reject new Bottleneck::BottleneckError "A job with the same id already exists (id=#{job.options.id})" + false + else + job.doReceive() + @_submitLock.schedule @_addToQueue, job + + submit: (args...) -> + if typeof args[0] == "function" + [fn, args..., cb] = args + options = parser.load {}, @jobDefaults + else + [options, fn, args..., cb] = args + options = parser.load options, @jobDefaults + + task = (args...) => + new @Promise (resolve, reject) -> + fn args..., (args...) -> + (if args[0]? then reject else resolve) args + + job = new Job task, args, options, @jobDefaults, @rejectOnDrop, @Events, @_states, @Promise + job.promise + .then (args) -> cb? args... + .catch (args) -> if Array.isArray args then cb? args... else cb? args + @_receive job + + schedule: (args...) -> + if typeof args[0] == "function" + [task, args...] = args + options = {} + else + [options, task, args...] = args + job = new Job task, args, options, @jobDefaults, @rejectOnDrop, @Events, @_states, @Promise + @_receive job + job.promise + + wrap: (fn) -> + schedule = @schedule.bind @ + wrapped = (args...) -> schedule fn.bind(@), args... + wrapped.withOptions = (options, args...) -> schedule options, fn, args... + wrapped + + updateSettings: (options={}) -> + await @_store.__updateSettings__ parser.overwrite options, @storeDefaults + parser.overwrite options, @instanceDefaults, @ + @ + + currentReservoir: -> @_store.__currentReservoir__() + + incrementReservoir: (incr=0) -> @_store.__incrementReservoir__ incr + +module.exports = Bottleneck diff --git a/node_modules/bottleneck/src/BottleneckError.coffee b/node_modules/bottleneck/src/BottleneckError.coffee new file mode 100644 index 0000000..157b8ac --- /dev/null +++ b/node_modules/bottleneck/src/BottleneckError.coffee @@ -0,0 +1,3 @@ +class BottleneckError extends Error + +module.exports = BottleneckError diff --git a/node_modules/bottleneck/src/DLList.coffee b/node_modules/bottleneck/src/DLList.coffee new file mode 100644 index 0000000..9dded30 --- /dev/null +++ b/node_modules/bottleneck/src/DLList.coffee @@ -0,0 +1,38 @@ +class DLList + constructor: (@incr, @decr) -> + @_first = null + @_last = null + @length = 0 + push: (value) -> + @length++ + @incr?() + node = { value, prev: @_last, next: null } + if @_last? + @_last.next = node + @_last = node + else @_first = @_last = node + undefined + shift: () -> + if not @_first? then return + else + @length-- + @decr?() + value = @_first.value + if (@_first = @_first.next)? + @_first.prev = null + else + @_last = null + value + first: () -> if @_first? then @_first.value + getArray: () -> + node = @_first + while node? then (ref = node; node = node.next; ref.value) + forEachShift: (cb) -> + node = @shift() + while node? then (cb node; node = @shift()) + undefined + debug: () -> + node = @_first + while node? then (ref = node; node = node.next; { value: ref.value, prev: ref.prev?.value, next: ref.next?.value }) + +module.exports = DLList diff --git a/node_modules/bottleneck/src/Events.coffee b/node_modules/bottleneck/src/Events.coffee new file mode 100644 index 0000000..c96b31a --- /dev/null +++ b/node_modules/bottleneck/src/Events.coffee @@ -0,0 +1,38 @@ +class Events + constructor: (@instance) -> + @_events = {} + if @instance.on? or @instance.once? or @instance.removeAllListeners? + throw new Error "An Emitter already exists for this object" + @instance.on = (name, cb) => @_addListener name, "many", cb + @instance.once = (name, cb) => @_addListener name, "once", cb + @instance.removeAllListeners = (name=null) => + if name? then delete @_events[name] else @_events = {} + _addListener: (name, status, cb) -> + @_events[name] ?= [] + @_events[name].push {cb, status} + @instance + listenerCount: (name) -> + if @_events[name]? then @_events[name].length else 0 + trigger: (name, args...) -> + try + if name != "debug" then @trigger "debug", "Event triggered: #{name}", args + return unless @_events[name]? + @_events[name] = @_events[name].filter (listener) -> listener.status != "none" + promises = @_events[name].map (listener) => + return if listener.status == "none" + if listener.status == "once" then listener.status = "none" + try + returned = listener.cb?(args...) + if typeof returned?.then == "function" + await returned + else + returned + catch e + if "name" != "error" then @trigger "error", e + null + (await Promise.all promises).find (x) -> x? + catch e + if "name" != "error" then @trigger "error", e + null + +module.exports = Events diff --git a/node_modules/bottleneck/src/Group.coffee b/node_modules/bottleneck/src/Group.coffee new file mode 100644 index 0000000..210b502 --- /dev/null +++ b/node_modules/bottleneck/src/Group.coffee @@ -0,0 +1,80 @@ +parser = require "./parser" +Events = require "./Events" +RedisConnection = require "./RedisConnection" +IORedisConnection = require "./IORedisConnection" +Scripts = require "./Scripts" + +class Group + defaults: + timeout: 1000 * 60 * 5 + connection: null + Promise: Promise + id: "group-key" + + constructor: (@limiterOptions={}) -> + parser.load @limiterOptions, @defaults, @ + @Events = new Events @ + @instances = {} + @Bottleneck = require "./Bottleneck" + @_startAutoCleanup() + @sharedConnection = @connection? + + if !@connection? + if @limiterOptions.datastore == "redis" + @connection = new RedisConnection Object.assign {}, @limiterOptions, { @Events } + else if @limiterOptions.datastore == "ioredis" + @connection = new IORedisConnection Object.assign {}, @limiterOptions, { @Events } + + key: (key="") -> @instances[key] ? do => + limiter = @instances[key] = new @Bottleneck Object.assign @limiterOptions, { + id: "#{@id}-#{key}", + @timeout, + @connection + } + @Events.trigger "created", limiter, key + limiter + + deleteKey: (key="") => + instance = @instances[key] + if @connection + deleted = await @connection.__runCommand__ ['del', Scripts.allKeys("#{@id}-#{key}")...] + if instance? + delete @instances[key] + await instance.disconnect() + instance? or deleted > 0 + + limiters: -> { key: k, limiter: v } for k, v of @instances + + keys: -> Object.keys @instances + + clusterKeys: -> + if !@connection? then return @Promise.resolve @keys() + keys = [] + cursor = null + start = "b_#{@id}-".length + end = "_settings".length + until cursor == 0 + [next, found] = await @connection.__runCommand__ ["scan", (cursor ? 0), "match", "b_#{@id}-*_settings", "count", 10000] + cursor = ~~next + keys.push(k.slice(start, -end)) for k in found + keys + + _startAutoCleanup: -> + clearInterval @interval + (@interval = setInterval => + time = Date.now() + for k, v of @instances + try if await v._store.__groupCheck__(time) then @deleteKey k + catch e then v.Events.trigger "error", e + , (@timeout / 2)).unref?() + + updateSettings: (options={}) -> + parser.overwrite options, @defaults, @ + parser.overwrite options, options, @limiterOptions + @_startAutoCleanup() if options.timeout? + + disconnect: (flush=true) -> + if !@sharedConnection + @connection?.disconnect flush + +module.exports = Group diff --git a/node_modules/bottleneck/src/IORedisConnection.coffee b/node_modules/bottleneck/src/IORedisConnection.coffee new file mode 100644 index 0000000..211b124 --- /dev/null +++ b/node_modules/bottleneck/src/IORedisConnection.coffee @@ -0,0 +1,84 @@ +parser = require "./parser" +Events = require "./Events" +Scripts = require "./Scripts" + +class IORedisConnection + datastore: "ioredis" + defaults: + Redis: null + clientOptions: {} + clusterNodes: null + client: null + Promise: Promise + Events: null + + constructor: (options={}) -> + parser.load options, @defaults, @ + @Redis ?= eval("require")("ioredis") # Obfuscated or else Webpack/Angular will try to inline the optional ioredis module. To override this behavior: pass the ioredis module to Bottleneck as the 'Redis' option. + @Events ?= new Events @ + @terminated = false + + if @clusterNodes? + @client = new @Redis.Cluster @clusterNodes, @clientOptions + @subscriber = new @Redis.Cluster @clusterNodes, @clientOptions + else if @client? and !@client.duplicate? + @subscriber = new @Redis.Cluster @client.startupNodes, @client.options + else + @client ?= new @Redis @clientOptions + @subscriber = @client.duplicate() + @limiters = {} + + @ready = @Promise.all [@_setup(@client, false), @_setup(@subscriber, true)] + .then => + @_loadScripts() + { @client, @subscriber } + + _setup: (client, sub) -> + client.setMaxListeners 0 + new @Promise (resolve, reject) => + client.on "error", (e) => @Events.trigger "error", e + if sub + client.on "message", (channel, message) => + @limiters[channel]?._store.onMessage channel, message + if client.status == "ready" then resolve() + else client.once "ready", resolve + + _loadScripts: -> Scripts.names.forEach (name) => @client.defineCommand name, { lua: Scripts.payload(name) } + + __runCommand__: (cmd) -> + await @ready + [[_, deleted]] = await @client.pipeline([cmd]).exec() + deleted + + __addLimiter__: (instance) -> + @Promise.all [instance.channel(), instance.channel_client()].map (channel) => + new @Promise (resolve, reject) => + @subscriber.subscribe channel, => + @limiters[channel] = instance + resolve() + + __removeLimiter__: (instance) -> + [instance.channel(), instance.channel_client()].forEach (channel) => + await @subscriber.unsubscribe channel unless @terminated + delete @limiters[channel] + + __scriptArgs__: (name, id, args, cb) -> + keys = Scripts.keys name, id + [keys.length].concat keys, args, cb + + __scriptFn__: (name) -> + @client[name].bind(@client) + + disconnect: (flush=true) -> + clearInterval(@limiters[k]._store.heartbeat) for k in Object.keys @limiters + @limiters = {} + @terminated = true + + if flush + @Promise.all [@client.quit(), @subscriber.quit()] + else + @client.disconnect() + @subscriber.disconnect() + @Promise.resolve() + +module.exports = IORedisConnection diff --git a/node_modules/bottleneck/src/Job.coffee b/node_modules/bottleneck/src/Job.coffee new file mode 100644 index 0000000..32cf1bc --- /dev/null +++ b/node_modules/bottleneck/src/Job.coffee @@ -0,0 +1,98 @@ +NUM_PRIORITIES = 10 +DEFAULT_PRIORITY = 5 + +parser = require "./parser" +BottleneckError = require "./BottleneckError" + +class Job + constructor: (@task, @args, options, jobDefaults, @rejectOnDrop, @Events, @_states, @Promise) -> + @options = parser.load options, jobDefaults + @options.priority = @_sanitizePriority @options.priority + if @options.id == jobDefaults.id then @options.id = "#{@options.id}-#{@_randomIndex()}" + @promise = new @Promise (@_resolve, @_reject) => + @retryCount = 0 + + _sanitizePriority: (priority) -> + sProperty = if ~~priority != priority then DEFAULT_PRIORITY else priority + if sProperty < 0 then 0 else if sProperty > NUM_PRIORITIES-1 then NUM_PRIORITIES-1 else sProperty + + _randomIndex: -> Math.random().toString(36).slice(2) + + doDrop: ({ error, message="This job has been dropped by Bottleneck" } = {}) -> + if @_states.remove @options.id + if @rejectOnDrop then @_reject (error ? new BottleneckError message) + @Events.trigger "dropped", { @args, @options, @task, @promise } + true + else + false + + _assertStatus: (expected) -> + status = @_states.jobStatus @options.id + if not (status == expected or (expected == "DONE" and status == null)) + throw new BottleneckError "Invalid job status #{status}, expected #{expected}. Please open an issue at https://github.com/SGrondin/bottleneck/issues" + + doReceive: () -> + @_states.start @options.id + @Events.trigger "received", { @args, @options } + + doQueue: (reachedHWM, blocked) -> + @_assertStatus "RECEIVED" + @_states.next @options.id + @Events.trigger "queued", { @args, @options, reachedHWM, blocked } + + doRun: () -> + if @retryCount == 0 + @_assertStatus "QUEUED" + @_states.next @options.id + else @_assertStatus "EXECUTING" + @Events.trigger "scheduled", { @args, @options } + + doExecute: (chained, clearGlobalState, run, free) -> + if @retryCount == 0 + @_assertStatus "RUNNING" + @_states.next @options.id + else @_assertStatus "EXECUTING" + eventInfo = { @args, @options, @retryCount } + @Events.trigger "executing", eventInfo + + try + passed = await if chained? + chained.schedule @options, @task, @args... + else @task @args... + + if clearGlobalState() + @doDone eventInfo + await free @options, eventInfo + @_assertStatus "DONE" + @_resolve passed + catch error + @_onFailure error, eventInfo, clearGlobalState, run, free + + doExpire: (clearGlobalState, run, free) -> + if @_states.jobStatus @options.id == "RUNNING" + @_states.next @options.id + @_assertStatus "EXECUTING" + eventInfo = { @args, @options, @retryCount } + error = new BottleneckError "This job timed out after #{@options.expiration} ms." + @_onFailure error, eventInfo, clearGlobalState, run, free + + _onFailure: (error, eventInfo, clearGlobalState, run, free) -> + if clearGlobalState() + retry = await @Events.trigger "failed", error, eventInfo + if retry? + retryAfter = ~~retry + @Events.trigger "retry", "Retrying #{@options.id} after #{retryAfter} ms", eventInfo + @retryCount++ + run retryAfter + else + @doDone eventInfo + await free @options, eventInfo + @_assertStatus "DONE" + @_reject error + + doDone: (eventInfo) -> + @_assertStatus "EXECUTING" + @_states.next @options.id + @Events.trigger "done", eventInfo + +module.exports = Job diff --git a/node_modules/bottleneck/src/LocalDatastore.coffee b/node_modules/bottleneck/src/LocalDatastore.coffee new file mode 100644 index 0000000..690aa34 --- /dev/null +++ b/node_modules/bottleneck/src/LocalDatastore.coffee @@ -0,0 +1,140 @@ +parser = require "./parser" +BottleneckError = require "./BottleneckError" + +class LocalDatastore + constructor: (@instance, @storeOptions, storeInstanceOptions) -> + @clientId = @instance._randomIndex() + parser.load storeInstanceOptions, storeInstanceOptions, @ + @_nextRequest = @_lastReservoirRefresh = @_lastReservoirIncrease = Date.now() + @_running = 0 + @_done = 0 + @_unblockTime = 0 + @ready = @Promise.resolve() + @clients = {} + @_startHeartbeat() + + _startHeartbeat: -> + if !@heartbeat? and (( + @storeOptions.reservoirRefreshInterval? and @storeOptions.reservoirRefreshAmount? + ) or ( + @storeOptions.reservoirIncreaseInterval? and @storeOptions.reservoirIncreaseAmount? + )) + (@heartbeat = setInterval => + now = Date.now() + + if @storeOptions.reservoirRefreshInterval? and now >= @_lastReservoirRefresh + @storeOptions.reservoirRefreshInterval + @_lastReservoirRefresh = now + @storeOptions.reservoir = @storeOptions.reservoirRefreshAmount + @instance._drainAll @computeCapacity() + + if @storeOptions.reservoirIncreaseInterval? and now >= @_lastReservoirIncrease + @storeOptions.reservoirIncreaseInterval + { reservoirIncreaseAmount: amount, reservoirIncreaseMaximum: maximum, reservoir } = @storeOptions + @_lastReservoirIncrease = now + incr = if maximum? then Math.min amount, maximum - reservoir else amount + if incr > 0 + @storeOptions.reservoir += incr + @instance._drainAll @computeCapacity() + + , @heartbeatInterval).unref?() + else clearInterval @heartbeat + + __publish__: (message) -> + await @yieldLoop() + @instance.Events.trigger "message", message.toString() + + __disconnect__: (flush) -> + await @yieldLoop() + clearInterval @heartbeat + @Promise.resolve() + + yieldLoop: (t=0) -> new @Promise (resolve, reject) -> setTimeout resolve, t + + computePenalty: -> @storeOptions.penalty ? ((15 * @storeOptions.minTime) or 5000) + + __updateSettings__: (options) -> + await @yieldLoop() + parser.overwrite options, options, @storeOptions + @_startHeartbeat() + @instance._drainAll @computeCapacity() + true + + __running__: -> + await @yieldLoop() + @_running + + __queued__: -> + await @yieldLoop() + @instance.queued() + + __done__: -> + await @yieldLoop() + @_done + + __groupCheck__: (time) -> + await @yieldLoop() + (@_nextRequest + @timeout) < time + + computeCapacity: -> + { maxConcurrent, reservoir } = @storeOptions + if maxConcurrent? and reservoir? then Math.min((maxConcurrent - @_running), reservoir) + else if maxConcurrent? then maxConcurrent - @_running + else if reservoir? then reservoir + else null + + conditionsCheck: (weight) -> + capacity = @computeCapacity() + not capacity? or weight <= capacity + + __incrementReservoir__: (incr) -> + await @yieldLoop() + reservoir = @storeOptions.reservoir += incr + @instance._drainAll @computeCapacity() + reservoir + + __currentReservoir__: -> + await @yieldLoop() + @storeOptions.reservoir + + isBlocked: (now) -> @_unblockTime >= now + + check: (weight, now) -> @conditionsCheck(weight) and (@_nextRequest - now) <= 0 + + __check__: (weight) -> + await @yieldLoop() + now = Date.now() + @check weight, now + + __register__: (index, weight, expiration) -> + await @yieldLoop() + now = Date.now() + if @conditionsCheck weight + @_running += weight + if @storeOptions.reservoir? then @storeOptions.reservoir -= weight + wait = Math.max @_nextRequest - now, 0 + @_nextRequest = now + wait + @storeOptions.minTime + { success: true, wait, reservoir: @storeOptions.reservoir } + else { success: false } + + strategyIsBlock: -> @storeOptions.strategy == 3 + + __submit__: (queueLength, weight) -> + await @yieldLoop() + if @storeOptions.maxConcurrent? and weight > @storeOptions.maxConcurrent + throw new BottleneckError("Impossible to add a job having a weight of #{weight} to a limiter having a maxConcurrent setting of #{@storeOptions.maxConcurrent}") + now = Date.now() + reachedHWM = @storeOptions.highWater? and queueLength == @storeOptions.highWater and not @check(weight, now) + blocked = @strategyIsBlock() and (reachedHWM or @isBlocked now) + if blocked + @_unblockTime = now + @computePenalty() + @_nextRequest = @_unblockTime + @storeOptions.minTime + @instance._dropAllQueued() + { reachedHWM, blocked, strategy: @storeOptions.strategy } + + __free__: (index, weight) -> + await @yieldLoop() + @_running -= weight + @_done += weight + @instance._drainAll @computeCapacity() + { running: @_running } + +module.exports = LocalDatastore diff --git a/node_modules/bottleneck/src/Queues.coffee b/node_modules/bottleneck/src/Queues.coffee new file mode 100644 index 0000000..b563ae3 --- /dev/null +++ b/node_modules/bottleneck/src/Queues.coffee @@ -0,0 +1,28 @@ +DLList = require "./DLList" +Events = require "./Events" + +class Queues + + constructor: (num_priorities) -> + @Events = new Events @ + @_length = 0 + @_lists = for i in [1..num_priorities] then new DLList (=> @incr()), (=> @decr()) + + incr: -> if @_length++ == 0 then @Events.trigger "leftzero" + + decr: -> if --@_length == 0 then @Events.trigger "zero" + + push: (job) -> @_lists[job.options.priority].push job + + queued: (priority) -> if priority? then @_lists[priority].length else @_length + + shiftAll: (fn) -> @_lists.forEach (list) -> list.forEachShift fn + + getFirst: (arr=@_lists) -> + for list in arr + return list if list.length > 0 + [] + + shiftLastFrom: (priority) -> @getFirst(@_lists[priority..].reverse()).shift() + +module.exports = Queues diff --git a/node_modules/bottleneck/src/RedisConnection.coffee b/node_modules/bottleneck/src/RedisConnection.coffee new file mode 100644 index 0000000..15379ef --- /dev/null +++ b/node_modules/bottleneck/src/RedisConnection.coffee @@ -0,0 +1,91 @@ +parser = require "./parser" +Events = require "./Events" +Scripts = require "./Scripts" + +class RedisConnection + datastore: "redis" + defaults: + Redis: null + clientOptions: {} + client: null + Promise: Promise + Events: null + + constructor: (options={}) -> + parser.load options, @defaults, @ + @Redis ?= eval("require")("redis") # Obfuscated or else Webpack/Angular will try to inline the optional redis module. To override this behavior: pass the redis module to Bottleneck as the 'Redis' option. + @Events ?= new Events @ + @terminated = false + + @client ?= @Redis.createClient @clientOptions + @subscriber = @client.duplicate() + @limiters = {} + @shas = {} + + @ready = @Promise.all [@_setup(@client, false), @_setup(@subscriber, true)] + .then => @_loadScripts() + .then => { @client, @subscriber } + + _setup: (client, sub) -> + client.setMaxListeners 0 + new @Promise (resolve, reject) => + client.on "error", (e) => @Events.trigger "error", e + if sub + client.on "message", (channel, message) => + @limiters[channel]?._store.onMessage channel, message + if client.ready then resolve() + else client.once "ready", resolve + + _loadScript: (name) -> + new @Promise (resolve, reject) => + payload = Scripts.payload name + @client.multi([["script", "load", payload]]).exec (err, replies) => + if err? then return reject err + @shas[name] = replies[0] + resolve replies[0] + + _loadScripts: -> @Promise.all(Scripts.names.map (k) => @_loadScript k) + + __runCommand__: (cmd) -> + await @ready + new @Promise (resolve, reject) => + @client.multi([cmd]).exec_atomic (err, replies) -> + if err? then reject(err) else resolve(replies[0]) + + __addLimiter__: (instance) -> + @Promise.all [instance.channel(), instance.channel_client()].map (channel) => + new @Promise (resolve, reject) => + handler = (chan) => + if chan == channel + @subscriber.removeListener "subscribe", handler + @limiters[channel] = instance + resolve() + @subscriber.on "subscribe", handler + @subscriber.subscribe channel + + __removeLimiter__: (instance) -> + @Promise.all [instance.channel(), instance.channel_client()].map (channel) => + unless @terminated + await new @Promise (resolve, reject) => + @subscriber.unsubscribe channel, (err, chan) -> + if err? then return reject err + if chan == channel then return resolve() + delete @limiters[channel] + + __scriptArgs__: (name, id, args, cb) -> + keys = Scripts.keys name, id + [@shas[name], keys.length].concat keys, args, cb + + __scriptFn__: (name) -> + @client.evalsha.bind(@client) + + disconnect: (flush=true) -> + clearInterval(@limiters[k]._store.heartbeat) for k in Object.keys @limiters + @limiters = {} + @terminated = true + + @client.end flush + @subscriber.end flush + @Promise.resolve() + +module.exports = RedisConnection diff --git a/node_modules/bottleneck/src/RedisDatastore.coffee b/node_modules/bottleneck/src/RedisDatastore.coffee new file mode 100644 index 0000000..4a2154f --- /dev/null +++ b/node_modules/bottleneck/src/RedisDatastore.coffee @@ -0,0 +1,158 @@ +parser = require "./parser" +BottleneckError = require "./BottleneckError" +RedisConnection = require "./RedisConnection" +IORedisConnection = require "./IORedisConnection" + +class RedisDatastore + constructor: (@instance, @storeOptions, storeInstanceOptions) -> + @originalId = @instance.id + @clientId = @instance._randomIndex() + parser.load storeInstanceOptions, storeInstanceOptions, @ + @clients = {} + @capacityPriorityCounters = {} + @sharedConnection = @connection? + + @connection ?= if @instance.datastore == "redis" then new RedisConnection { @Redis, @clientOptions, @Promise, Events: @instance.Events } + else if @instance.datastore == "ioredis" then new IORedisConnection { @Redis, @clientOptions, @clusterNodes, @Promise, Events: @instance.Events } + + @instance.connection = @connection + @instance.datastore = @connection.datastore + + @ready = @connection.ready + .then (@clients) => @runScript "init", @prepareInitSettings @clearDatastore + .then => @connection.__addLimiter__ @instance + .then => @runScript "register_client", [@instance.queued()] + .then => + (@heartbeat = setInterval => + @runScript "heartbeat", [] + .catch (e) => @instance.Events.trigger "error", e + , @heartbeatInterval).unref?() + @clients + + __publish__: (message) -> + { client } = await @ready + client.publish(@instance.channel(), "message:#{message.toString()}") + + onMessage: (channel, message) -> + try + pos = message.indexOf(":") + [type, data] = [message.slice(0, pos), message.slice(pos+1)] + if type == "capacity" + await @instance._drainAll(if data.length > 0 then ~~data) + else if type == "capacity-priority" + [rawCapacity, priorityClient, counter] = data.split(":") + capacity = if rawCapacity.length > 0 then ~~rawCapacity + if priorityClient == @clientId + drained = await @instance._drainAll(capacity) + newCapacity = if capacity? then capacity - (drained or 0) else "" + await @clients.client.publish(@instance.channel(), "capacity-priority:#{newCapacity}::#{counter}") + else if priorityClient == "" + clearTimeout @capacityPriorityCounters[counter] + delete @capacityPriorityCounters[counter] + @instance._drainAll(capacity) + else + @capacityPriorityCounters[counter] = setTimeout => + try + delete @capacityPriorityCounters[counter] + await @runScript "blacklist_client", [priorityClient] + await @instance._drainAll(capacity) + catch e then @instance.Events.trigger "error", e + , 1000 + else if type == "message" + @instance.Events.trigger "message", data + else if type == "blocked" + await @instance._dropAllQueued() + catch e then @instance.Events.trigger "error", e + + __disconnect__: (flush) -> + clearInterval @heartbeat + if @sharedConnection + @connection.__removeLimiter__ @instance + else + @connection.disconnect flush + + runScript: (name, args) -> + await @ready unless name == "init" or name == "register_client" + new @Promise (resolve, reject) => + all_args = [Date.now(), @clientId].concat args + @instance.Events.trigger "debug", "Calling Redis script: #{name}.lua", all_args + arr = @connection.__scriptArgs__ name, @originalId, all_args, (err, replies) -> + if err? then return reject err + return resolve replies + @connection.__scriptFn__(name) arr... + .catch (e) => + if e.message == "SETTINGS_KEY_NOT_FOUND" + if name == "heartbeat" then @Promise.resolve() + else + @runScript("init", @prepareInitSettings(false)) + .then => @runScript(name, args) + else if e.message == "UNKNOWN_CLIENT" + @runScript("register_client", [@instance.queued()]) + .then => @runScript(name, args) + else @Promise.reject e + + prepareArray: (arr) -> (if x? then x.toString() else "") for x in arr + + prepareObject: (obj) -> + arr = [] + for k, v of obj then arr.push k, (if v? then v.toString() else "") + arr + + prepareInitSettings: (clear) -> + args = @prepareObject Object.assign({}, @storeOptions, { + id: @originalId + version: @instance.version + groupTimeout: @timeout + @clientTimeout + }) + args.unshift (if clear then 1 else 0), @instance.version + args + + convertBool: (b) -> !!b + + __updateSettings__: (options) -> + await @runScript "update_settings", @prepareObject options + parser.overwrite options, options, @storeOptions + + __running__: -> @runScript "running", [] + + __queued__: -> @runScript "queued", [] + + __done__: -> @runScript "done", [] + + __groupCheck__: -> @convertBool await @runScript "group_check", [] + + __incrementReservoir__: (incr) -> @runScript "increment_reservoir", [incr] + + __currentReservoir__: -> @runScript "current_reservoir", [] + + __check__: (weight) -> @convertBool await @runScript "check", @prepareArray [weight] + + __register__: (index, weight, expiration) -> + [success, wait, reservoir] = await @runScript "register", @prepareArray [index, weight, expiration] + return { + success: @convertBool(success), + wait, + reservoir + } + + __submit__: (queueLength, weight) -> + try + [reachedHWM, blocked, strategy] = await @runScript "submit", @prepareArray [queueLength, weight] + return { + reachedHWM: @convertBool(reachedHWM), + blocked: @convertBool(blocked), + strategy + } + catch e + if e.message.indexOf("OVERWEIGHT") == 0 + [overweight, weight, maxConcurrent] = e.message.split ":" + throw new BottleneckError("Impossible to add a job having a weight of #{weight} to a limiter having a maxConcurrent setting of #{maxConcurrent}") + else + throw e + + __free__: (index, weight) -> + running = await @runScript "free", @prepareArray [index] + return { running } + +module.exports = RedisDatastore diff --git a/node_modules/bottleneck/src/Scripts.coffee b/node_modules/bottleneck/src/Scripts.coffee new file mode 100644 index 0000000..d614abf --- /dev/null +++ b/node_modules/bottleneck/src/Scripts.coffee @@ -0,0 +1,151 @@ +lua = require "./lua.json" + +headers = + refs: lua["refs.lua"] + validate_keys: lua["validate_keys.lua"] + validate_client: lua["validate_client.lua"] + refresh_expiration: lua["refresh_expiration.lua"] + process_tick: lua["process_tick.lua"] + conditions_check: lua["conditions_check.lua"] + get_time: lua["get_time.lua"] + +exports.allKeys = (id) -> [ + ### + HASH + ### + "b_#{id}_settings" + + ### + HASH + job index -> weight + ### + "b_#{id}_job_weights" + + ### + ZSET + job index -> expiration + ### + "b_#{id}_job_expirations" + + ### + HASH + job index -> client + ### + "b_#{id}_job_clients" + + ### + ZSET + client -> sum running + ### + "b_#{id}_client_running" + + ### + HASH + client -> num queued + ### + "b_#{id}_client_num_queued" + + ### + ZSET + client -> last job registered + ### + "b_#{id}_client_last_registered" + + ### + ZSET + client -> last seen + ### + "b_#{id}_client_last_seen" +] + +templates = + init: + keys: exports.allKeys + headers: ["process_tick"] + refresh_expiration: true + code: lua["init.lua"] + group_check: + keys: exports.allKeys + headers: [] + refresh_expiration: false + code: lua["group_check.lua"] + register_client: + keys: exports.allKeys + headers: ["validate_keys"] + refresh_expiration: false + code: lua["register_client.lua"] + blacklist_client: + keys: exports.allKeys + headers: ["validate_keys", "validate_client"] + refresh_expiration: false + code: lua["blacklist_client.lua"] + heartbeat: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick"] + refresh_expiration: false + code: lua["heartbeat.lua"] + update_settings: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick"] + refresh_expiration: true + code: lua["update_settings.lua"] + running: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick"] + refresh_expiration: false + code: lua["running.lua"] + queued: + keys: exports.allKeys + headers: ["validate_keys", "validate_client"] + refresh_expiration: false + code: lua["queued.lua"] + done: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick"] + refresh_expiration: false + code: lua["done.lua"] + check: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"] + refresh_expiration: false + code: lua["check.lua"] + submit: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"] + refresh_expiration: true + code: lua["submit.lua"] + register: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick", "conditions_check"] + refresh_expiration: true + code: lua["register.lua"] + free: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick"] + refresh_expiration: true + code: lua["free.lua"] + current_reservoir: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick"] + refresh_expiration: false + code: lua["current_reservoir.lua"] + increment_reservoir: + keys: exports.allKeys + headers: ["validate_keys", "validate_client", "process_tick"] + refresh_expiration: true + code: lua["increment_reservoir.lua"] + +exports.names = Object.keys templates + +exports.keys = (name, id) -> + templates[name].keys id + +exports.payload = (name) -> + template = templates[name] + Array::concat( + headers.refs, + template.headers.map((h) -> headers[h]), + (if template.refresh_expiration then headers.refresh_expiration else ""), + template.code + ) + .join("\n") diff --git a/node_modules/bottleneck/src/States.coffee b/node_modules/bottleneck/src/States.coffee new file mode 100644 index 0000000..c382c3d --- /dev/null +++ b/node_modules/bottleneck/src/States.coffee @@ -0,0 +1,43 @@ +BottleneckError = require "./BottleneckError" +class States + constructor: (@status) -> + @_jobs = {} + @counts = @status.map(-> 0) + + next: (id) -> + current = @_jobs[id] + next = current + 1 + if current? and next < @status.length + @counts[current]-- + @counts[next]++ + @_jobs[id]++ + else if current? + @counts[current]-- + delete @_jobs[id] + + start: (id) -> + initial = 0 + @_jobs[id] = initial + @counts[initial]++ + + remove: (id) -> + current = @_jobs[id] + if current? + @counts[current]-- + delete @_jobs[id] + current? + + jobStatus: (id) -> @status[@_jobs[id]] ? null + + statusJobs: (status) -> + if status? + pos = @status.indexOf status + if pos < 0 + throw new BottleneckError "status must be one of #{@status.join ', '}" + k for k,v of @_jobs when v == pos + else + Object.keys @_jobs + + statusCounts: -> @counts.reduce(((acc, v, i) => acc[@status[i]] = v; acc), {}) + +module.exports = States diff --git a/node_modules/bottleneck/src/Sync.coffee b/node_modules/bottleneck/src/Sync.coffee new file mode 100644 index 0000000..9df4513 --- /dev/null +++ b/node_modules/bottleneck/src/Sync.coffee @@ -0,0 +1,28 @@ +DLList = require "./DLList" +class Sync + constructor: (@name, @Promise) -> + @_running = 0 + @_queue = new DLList() + isEmpty: -> @_queue.length == 0 + _tryToRun: -> + if (@_running < 1) and @_queue.length > 0 + @_running++ + { task, args, resolve, reject } = @_queue.shift() + cb = try + returned = await task args... + () -> resolve returned + catch error + () -> reject error + @_running-- + @_tryToRun() + cb() + schedule: (task, args...) => + resolve = reject = null + promise = new @Promise (_resolve, _reject) -> + resolve = _resolve + reject = _reject + @_queue.push { task, args, resolve, reject } + @_tryToRun() + promise + +module.exports = Sync diff --git a/node_modules/bottleneck/src/es5.coffee b/node_modules/bottleneck/src/es5.coffee new file mode 100644 index 0000000..12761a7 --- /dev/null +++ b/node_modules/bottleneck/src/es5.coffee @@ -0,0 +1,3 @@ +require("regenerator-runtime/runtime") + +module.exports = require "./Bottleneck" diff --git a/node_modules/bottleneck/src/index.coffee b/node_modules/bottleneck/src/index.coffee new file mode 100644 index 0000000..7a7fcb2 --- /dev/null +++ b/node_modules/bottleneck/src/index.coffee @@ -0,0 +1 @@ +module.exports = require "./Bottleneck" diff --git a/node_modules/bottleneck/src/parser.coffee b/node_modules/bottleneck/src/parser.coffee new file mode 100644 index 0000000..b662fb1 --- /dev/null +++ b/node_modules/bottleneck/src/parser.coffee @@ -0,0 +1,10 @@ +exports.load = (received, defaults, onto={}) -> + for k, v of defaults + onto[k] = received[k] ? v + onto + +exports.overwrite = (received, defaults, onto={}) -> + for k, v of received + if defaults[k] != undefined + onto[k] = v + onto diff --git a/node_modules/bottleneck/src/redis/blacklist_client.lua b/node_modules/bottleneck/src/redis/blacklist_client.lua new file mode 100644 index 0000000..953ae54 --- /dev/null +++ b/node_modules/bottleneck/src/redis/blacklist_client.lua @@ -0,0 +1,8 @@ +local blacklist = ARGV[num_static_argv + 1] + +if redis.call('zscore', client_last_seen_key, blacklist) then + redis.call('zadd', client_last_seen_key, 0, blacklist) +end + + +return {} diff --git a/node_modules/bottleneck/src/redis/check.lua b/node_modules/bottleneck/src/redis/check.lua new file mode 100644 index 0000000..556e365 --- /dev/null +++ b/node_modules/bottleneck/src/redis/check.lua @@ -0,0 +1,6 @@ +local weight = tonumber(ARGV[num_static_argv + 1]) + +local capacity = process_tick(now, false)['capacity'] +local nextRequest = tonumber(redis.call('hget', settings_key, 'nextRequest')) + +return conditions_check(capacity, weight) and nextRequest - now <= 0 diff --git a/node_modules/bottleneck/src/redis/conditions_check.lua b/node_modules/bottleneck/src/redis/conditions_check.lua new file mode 100644 index 0000000..c46fff5 --- /dev/null +++ b/node_modules/bottleneck/src/redis/conditions_check.lua @@ -0,0 +1,3 @@ +local conditions_check = function (capacity, weight) + return capacity == nil or weight <= capacity +end diff --git a/node_modules/bottleneck/src/redis/current_reservoir.lua b/node_modules/bottleneck/src/redis/current_reservoir.lua new file mode 100644 index 0000000..cdfca44 --- /dev/null +++ b/node_modules/bottleneck/src/redis/current_reservoir.lua @@ -0,0 +1 @@ +return process_tick(now, false)['reservoir'] diff --git a/node_modules/bottleneck/src/redis/done.lua b/node_modules/bottleneck/src/redis/done.lua new file mode 100644 index 0000000..99b7250 --- /dev/null +++ b/node_modules/bottleneck/src/redis/done.lua @@ -0,0 +1,3 @@ +process_tick(now, false) + +return tonumber(redis.call('hget', settings_key, 'done')) diff --git a/node_modules/bottleneck/src/redis/free.lua b/node_modules/bottleneck/src/redis/free.lua new file mode 100644 index 0000000..33df558 --- /dev/null +++ b/node_modules/bottleneck/src/redis/free.lua @@ -0,0 +1,5 @@ +local index = ARGV[num_static_argv + 1] + +redis.call('zadd', job_expirations_key, 0, index) + +return process_tick(now, false)['running'] diff --git a/node_modules/bottleneck/src/redis/get_time.lua b/node_modules/bottleneck/src/redis/get_time.lua new file mode 100644 index 0000000..26ba356 --- /dev/null +++ b/node_modules/bottleneck/src/redis/get_time.lua @@ -0,0 +1,7 @@ +redis.replicate_commands() + +local get_time = function () + local time = redis.call('time') + + return tonumber(time[1]..string.sub(time[2], 1, 3)) +end diff --git a/node_modules/bottleneck/src/redis/group_check.lua b/node_modules/bottleneck/src/redis/group_check.lua new file mode 100644 index 0000000..0fd4f90 --- /dev/null +++ b/node_modules/bottleneck/src/redis/group_check.lua @@ -0,0 +1 @@ +return not (redis.call('exists', settings_key) == 1) diff --git a/node_modules/bottleneck/src/redis/heartbeat.lua b/node_modules/bottleneck/src/redis/heartbeat.lua new file mode 100644 index 0000000..38aa599 --- /dev/null +++ b/node_modules/bottleneck/src/redis/heartbeat.lua @@ -0,0 +1 @@ +process_tick(now, true) diff --git a/node_modules/bottleneck/src/redis/increment_reservoir.lua b/node_modules/bottleneck/src/redis/increment_reservoir.lua new file mode 100644 index 0000000..495ddc7 --- /dev/null +++ b/node_modules/bottleneck/src/redis/increment_reservoir.lua @@ -0,0 +1,10 @@ +local incr = tonumber(ARGV[num_static_argv + 1]) + +redis.call('hincrby', settings_key, 'reservoir', incr) + +local reservoir = process_tick(now, true)['reservoir'] + +local groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout')) +refresh_expiration(0, 0, groupTimeout) + +return reservoir diff --git a/node_modules/bottleneck/src/redis/init.lua b/node_modules/bottleneck/src/redis/init.lua new file mode 100644 index 0000000..c854670 --- /dev/null +++ b/node_modules/bottleneck/src/redis/init.lua @@ -0,0 +1,105 @@ +local clear = tonumber(ARGV[num_static_argv + 1]) +local limiter_version = ARGV[num_static_argv + 2] +local num_local_argv = num_static_argv + 2 + +if clear == 1 then + redis.call('del', unpack(KEYS)) +end + +if redis.call('exists', settings_key) == 0 then + -- Create + local args = {'hmset', settings_key} + + for i = num_local_argv + 1, #ARGV do + table.insert(args, ARGV[i]) + end + + redis.call(unpack(args)) + redis.call('hmset', settings_key, + 'nextRequest', now, + 'lastReservoirRefresh', now, + 'lastReservoirIncrease', now, + 'running', 0, + 'done', 0, + 'unblockTime', 0, + 'capacityPriorityCounter', 0 + ) + +else + -- Apply migrations + local settings = redis.call('hmget', settings_key, + 'id', + 'version' + ) + local id = settings[1] + local current_version = settings[2] + + if current_version ~= limiter_version then + local version_digits = {} + for k, v in string.gmatch(current_version, "([^.]+)") do + table.insert(version_digits, tonumber(k)) + end + + -- 2.10.0 + if version_digits[2] < 10 then + redis.call('hsetnx', settings_key, 'reservoirRefreshInterval', '') + redis.call('hsetnx', settings_key, 'reservoirRefreshAmount', '') + redis.call('hsetnx', settings_key, 'lastReservoirRefresh', '') + redis.call('hsetnx', settings_key, 'done', 0) + redis.call('hset', settings_key, 'version', '2.10.0') + end + + -- 2.11.1 + if version_digits[2] < 11 or (version_digits[2] == 11 and version_digits[3] < 1) then + if redis.call('hstrlen', settings_key, 'lastReservoirRefresh') == 0 then + redis.call('hmset', settings_key, + 'lastReservoirRefresh', now, + 'version', '2.11.1' + ) + end + end + + -- 2.14.0 + if version_digits[2] < 14 then + local old_running_key = 'b_'..id..'_running' + local old_executing_key = 'b_'..id..'_executing' + + if redis.call('exists', old_running_key) == 1 then + redis.call('rename', old_running_key, job_weights_key) + end + if redis.call('exists', old_executing_key) == 1 then + redis.call('rename', old_executing_key, job_expirations_key) + end + redis.call('hset', settings_key, 'version', '2.14.0') + end + + -- 2.15.2 + if version_digits[2] < 15 or (version_digits[2] == 15 and version_digits[3] < 2) then + redis.call('hsetnx', settings_key, 'capacityPriorityCounter', 0) + redis.call('hset', settings_key, 'version', '2.15.2') + end + + -- 2.17.0 + if version_digits[2] < 17 then + redis.call('hsetnx', settings_key, 'clientTimeout', 10000) + redis.call('hset', settings_key, 'version', '2.17.0') + end + + -- 2.18.0 + if version_digits[2] < 18 then + redis.call('hsetnx', settings_key, 'reservoirIncreaseInterval', '') + redis.call('hsetnx', settings_key, 'reservoirIncreaseAmount', '') + redis.call('hsetnx', settings_key, 'reservoirIncreaseMaximum', '') + redis.call('hsetnx', settings_key, 'lastReservoirIncrease', now) + redis.call('hset', settings_key, 'version', '2.18.0') + end + + end + + process_tick(now, false) +end + +local groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout')) +refresh_expiration(0, 0, groupTimeout) + +return {} diff --git a/node_modules/bottleneck/src/redis/process_tick.lua b/node_modules/bottleneck/src/redis/process_tick.lua new file mode 100644 index 0000000..ba7b6da --- /dev/null +++ b/node_modules/bottleneck/src/redis/process_tick.lua @@ -0,0 +1,214 @@ +local process_tick = function (now, always_publish) + + local compute_capacity = function (maxConcurrent, running, reservoir) + if maxConcurrent ~= nil and reservoir ~= nil then + return math.min((maxConcurrent - running), reservoir) + elseif maxConcurrent ~= nil then + return maxConcurrent - running + elseif reservoir ~= nil then + return reservoir + else + return nil + end + end + + local settings = redis.call('hmget', settings_key, + 'id', + 'maxConcurrent', + 'running', + 'reservoir', + 'reservoirRefreshInterval', + 'reservoirRefreshAmount', + 'lastReservoirRefresh', + 'reservoirIncreaseInterval', + 'reservoirIncreaseAmount', + 'reservoirIncreaseMaximum', + 'lastReservoirIncrease', + 'capacityPriorityCounter', + 'clientTimeout' + ) + local id = settings[1] + local maxConcurrent = tonumber(settings[2]) + local running = tonumber(settings[3]) + local reservoir = tonumber(settings[4]) + local reservoirRefreshInterval = tonumber(settings[5]) + local reservoirRefreshAmount = tonumber(settings[6]) + local lastReservoirRefresh = tonumber(settings[7]) + local reservoirIncreaseInterval = tonumber(settings[8]) + local reservoirIncreaseAmount = tonumber(settings[9]) + local reservoirIncreaseMaximum = tonumber(settings[10]) + local lastReservoirIncrease = tonumber(settings[11]) + local capacityPriorityCounter = tonumber(settings[12]) + local clientTimeout = tonumber(settings[13]) + + local initial_capacity = compute_capacity(maxConcurrent, running, reservoir) + + -- + -- Process 'running' changes + -- + local expired = redis.call('zrangebyscore', job_expirations_key, '-inf', '('..now) + + if #expired > 0 then + redis.call('zremrangebyscore', job_expirations_key, '-inf', '('..now) + + local flush_batch = function (batch, acc) + local weights = redis.call('hmget', job_weights_key, unpack(batch)) + redis.call('hdel', job_weights_key, unpack(batch)) + local clients = redis.call('hmget', job_clients_key, unpack(batch)) + redis.call('hdel', job_clients_key, unpack(batch)) + + -- Calculate sum of removed weights + for i = 1, #weights do + acc['total'] = acc['total'] + (tonumber(weights[i]) or 0) + end + + -- Calculate sum of removed weights by client + local client_weights = {} + for i = 1, #clients do + local removed = tonumber(weights[i]) or 0 + if removed > 0 then + acc['client_weights'][clients[i]] = (acc['client_weights'][clients[i]] or 0) + removed + end + end + end + + local acc = { + ['total'] = 0, + ['client_weights'] = {} + } + local batch_size = 1000 + + -- Compute changes to Zsets and apply changes to Hashes + for i = 1, #expired, batch_size do + local batch = {} + for j = i, math.min(i + batch_size - 1, #expired) do + table.insert(batch, expired[j]) + end + + flush_batch(batch, acc) + end + + -- Apply changes to Zsets + if acc['total'] > 0 then + redis.call('hincrby', settings_key, 'done', acc['total']) + running = tonumber(redis.call('hincrby', settings_key, 'running', -acc['total'])) + end + + for client, weight in pairs(acc['client_weights']) do + redis.call('zincrby', client_running_key, -weight, client) + end + end + + -- + -- Process 'reservoir' changes + -- + local reservoirRefreshActive = reservoirRefreshInterval ~= nil and reservoirRefreshAmount ~= nil + if reservoirRefreshActive and now >= lastReservoirRefresh + reservoirRefreshInterval then + reservoir = reservoirRefreshAmount + redis.call('hmset', settings_key, + 'reservoir', reservoir, + 'lastReservoirRefresh', now + ) + end + + local reservoirIncreaseActive = reservoirIncreaseInterval ~= nil and reservoirIncreaseAmount ~= nil + if reservoirIncreaseActive and now >= lastReservoirIncrease + reservoirIncreaseInterval then + local num_intervals = math.floor((now - lastReservoirIncrease) / reservoirIncreaseInterval) + local incr = reservoirIncreaseAmount * num_intervals + if reservoirIncreaseMaximum ~= nil then + incr = math.min(incr, reservoirIncreaseMaximum - (reservoir or 0)) + end + if incr > 0 then + reservoir = (reservoir or 0) + incr + end + redis.call('hmset', settings_key, + 'reservoir', reservoir, + 'lastReservoirIncrease', lastReservoirIncrease + (num_intervals * reservoirIncreaseInterval) + ) + end + + -- + -- Clear unresponsive clients + -- + local unresponsive = redis.call('zrangebyscore', client_last_seen_key, '-inf', (now - clientTimeout)) + local unresponsive_lookup = {} + local terminated_clients = {} + for i = 1, #unresponsive do + unresponsive_lookup[unresponsive[i]] = true + if tonumber(redis.call('zscore', client_running_key, unresponsive[i])) == 0 then + table.insert(terminated_clients, unresponsive[i]) + end + end + if #terminated_clients > 0 then + redis.call('zrem', client_running_key, unpack(terminated_clients)) + redis.call('hdel', client_num_queued_key, unpack(terminated_clients)) + redis.call('zrem', client_last_registered_key, unpack(terminated_clients)) + redis.call('zrem', client_last_seen_key, unpack(terminated_clients)) + end + + -- + -- Broadcast capacity changes + -- + local final_capacity = compute_capacity(maxConcurrent, running, reservoir) + + if always_publish or (initial_capacity ~= nil and final_capacity == nil) then + -- always_publish or was not unlimited, now unlimited + redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or '')) + + elseif initial_capacity ~= nil and final_capacity ~= nil and final_capacity > initial_capacity then + -- capacity was increased + -- send the capacity message to the limiter having the lowest number of running jobs + -- the tiebreaker is the limiter having not registered a job in the longest time + + local lowest_concurrency_value = nil + local lowest_concurrency_clients = {} + local lowest_concurrency_last_registered = {} + local client_concurrencies = redis.call('zrange', client_running_key, 0, -1, 'withscores') + + for i = 1, #client_concurrencies, 2 do + local client = client_concurrencies[i] + local concurrency = tonumber(client_concurrencies[i+1]) + + if ( + lowest_concurrency_value == nil or lowest_concurrency_value == concurrency + ) and ( + not unresponsive_lookup[client] + ) and ( + tonumber(redis.call('hget', client_num_queued_key, client)) > 0 + ) then + lowest_concurrency_value = concurrency + table.insert(lowest_concurrency_clients, client) + local last_registered = tonumber(redis.call('zscore', client_last_registered_key, client)) + table.insert(lowest_concurrency_last_registered, last_registered) + end + end + + if #lowest_concurrency_clients > 0 then + local position = 1 + local earliest = lowest_concurrency_last_registered[1] + + for i,v in ipairs(lowest_concurrency_last_registered) do + if v < earliest then + position = i + earliest = v + end + end + + local next_client = lowest_concurrency_clients[position] + redis.call('publish', 'b_'..id, + 'capacity-priority:'..(final_capacity or '').. + ':'..next_client.. + ':'..capacityPriorityCounter + ) + redis.call('hincrby', settings_key, 'capacityPriorityCounter', '1') + else + redis.call('publish', 'b_'..id, 'capacity:'..(final_capacity or '')) + end + end + + return { + ['capacity'] = final_capacity, + ['running'] = running, + ['reservoir'] = reservoir + } +end diff --git a/node_modules/bottleneck/src/redis/queued.lua b/node_modules/bottleneck/src/redis/queued.lua new file mode 100644 index 0000000..45ae524 --- /dev/null +++ b/node_modules/bottleneck/src/redis/queued.lua @@ -0,0 +1,10 @@ +local clientTimeout = tonumber(redis.call('hget', settings_key, 'clientTimeout')) +local valid_clients = redis.call('zrangebyscore', client_last_seen_key, (now - clientTimeout), 'inf') +local client_queued = redis.call('hmget', client_num_queued_key, unpack(valid_clients)) + +local sum = 0 +for i = 1, #client_queued do + sum = sum + tonumber(client_queued[i]) +end + +return sum diff --git a/node_modules/bottleneck/src/redis/refresh_expiration.lua b/node_modules/bottleneck/src/redis/refresh_expiration.lua new file mode 100644 index 0000000..79b8894 --- /dev/null +++ b/node_modules/bottleneck/src/redis/refresh_expiration.lua @@ -0,0 +1,11 @@ +local refresh_expiration = function (now, nextRequest, groupTimeout) + + if groupTimeout ~= nil then + local ttl = (nextRequest + groupTimeout) - now + + for i = 1, #KEYS do + redis.call('pexpire', KEYS[i], ttl) + end + end + +end diff --git a/node_modules/bottleneck/src/redis/refs.lua b/node_modules/bottleneck/src/redis/refs.lua new file mode 100644 index 0000000..daf89fe --- /dev/null +++ b/node_modules/bottleneck/src/redis/refs.lua @@ -0,0 +1,13 @@ +local settings_key = KEYS[1] +local job_weights_key = KEYS[2] +local job_expirations_key = KEYS[3] +local job_clients_key = KEYS[4] +local client_running_key = KEYS[5] +local client_num_queued_key = KEYS[6] +local client_last_registered_key = KEYS[7] +local client_last_seen_key = KEYS[8] + +local now = tonumber(ARGV[1]) +local client = ARGV[2] + +local num_static_argv = 2 diff --git a/node_modules/bottleneck/src/redis/register.lua b/node_modules/bottleneck/src/redis/register.lua new file mode 100644 index 0000000..37b2254 --- /dev/null +++ b/node_modules/bottleneck/src/redis/register.lua @@ -0,0 +1,51 @@ +local index = ARGV[num_static_argv + 1] +local weight = tonumber(ARGV[num_static_argv + 2]) +local expiration = tonumber(ARGV[num_static_argv + 3]) + +local state = process_tick(now, false) +local capacity = state['capacity'] +local reservoir = state['reservoir'] + +local settings = redis.call('hmget', settings_key, + 'nextRequest', + 'minTime', + 'groupTimeout' +) +local nextRequest = tonumber(settings[1]) +local minTime = tonumber(settings[2]) +local groupTimeout = tonumber(settings[3]) + +if conditions_check(capacity, weight) then + + redis.call('hincrby', settings_key, 'running', weight) + redis.call('hset', job_weights_key, index, weight) + if expiration ~= nil then + redis.call('zadd', job_expirations_key, now + expiration, index) + end + redis.call('hset', job_clients_key, index, client) + redis.call('zincrby', client_running_key, weight, client) + redis.call('hincrby', client_num_queued_key, client, -1) + redis.call('zadd', client_last_registered_key, now, client) + + local wait = math.max(nextRequest - now, 0) + local newNextRequest = now + wait + minTime + + if reservoir == nil then + redis.call('hset', settings_key, + 'nextRequest', newNextRequest + ) + else + reservoir = reservoir - weight + redis.call('hmset', settings_key, + 'reservoir', reservoir, + 'nextRequest', newNextRequest + ) + end + + refresh_expiration(now, newNextRequest, groupTimeout) + + return {true, wait, reservoir} + +else + return {false} +end diff --git a/node_modules/bottleneck/src/redis/register_client.lua b/node_modules/bottleneck/src/redis/register_client.lua new file mode 100644 index 0000000..20bae42 --- /dev/null +++ b/node_modules/bottleneck/src/redis/register_client.lua @@ -0,0 +1,12 @@ +local queued = tonumber(ARGV[num_static_argv + 1]) + +-- Could have been re-registered concurrently +if not redis.call('zscore', client_last_seen_key, client) then + redis.call('zadd', client_running_key, 0, client) + redis.call('hset', client_num_queued_key, client, queued) + redis.call('zadd', client_last_registered_key, 0, client) +end + +redis.call('zadd', client_last_seen_key, now, client) + +return {} diff --git a/node_modules/bottleneck/src/redis/running.lua b/node_modules/bottleneck/src/redis/running.lua new file mode 100644 index 0000000..4d4794a --- /dev/null +++ b/node_modules/bottleneck/src/redis/running.lua @@ -0,0 +1 @@ +return process_tick(now, false)['running'] diff --git a/node_modules/bottleneck/src/redis/submit.lua b/node_modules/bottleneck/src/redis/submit.lua new file mode 100644 index 0000000..9efeebe --- /dev/null +++ b/node_modules/bottleneck/src/redis/submit.lua @@ -0,0 +1,74 @@ +local queueLength = tonumber(ARGV[num_static_argv + 1]) +local weight = tonumber(ARGV[num_static_argv + 2]) + +local capacity = process_tick(now, false)['capacity'] + +local settings = redis.call('hmget', settings_key, + 'id', + 'maxConcurrent', + 'highWater', + 'nextRequest', + 'strategy', + 'unblockTime', + 'penalty', + 'minTime', + 'groupTimeout' +) +local id = settings[1] +local maxConcurrent = tonumber(settings[2]) +local highWater = tonumber(settings[3]) +local nextRequest = tonumber(settings[4]) +local strategy = tonumber(settings[5]) +local unblockTime = tonumber(settings[6]) +local penalty = tonumber(settings[7]) +local minTime = tonumber(settings[8]) +local groupTimeout = tonumber(settings[9]) + +if maxConcurrent ~= nil and weight > maxConcurrent then + return redis.error_reply('OVERWEIGHT:'..weight..':'..maxConcurrent) +end + +local reachedHWM = (highWater ~= nil and queueLength == highWater + and not ( + conditions_check(capacity, weight) + and nextRequest - now <= 0 + ) +) + +local blocked = strategy == 3 and (reachedHWM or unblockTime >= now) + +if blocked then + local computedPenalty = penalty + if computedPenalty == nil then + if minTime == 0 then + computedPenalty = 5000 + else + computedPenalty = 15 * minTime + end + end + + local newNextRequest = now + computedPenalty + minTime + + redis.call('hmset', settings_key, + 'unblockTime', now + computedPenalty, + 'nextRequest', newNextRequest + ) + + local clients_queued_reset = redis.call('hkeys', client_num_queued_key) + local queued_reset = {} + for i = 1, #clients_queued_reset do + table.insert(queued_reset, clients_queued_reset[i]) + table.insert(queued_reset, 0) + end + redis.call('hmset', client_num_queued_key, unpack(queued_reset)) + + redis.call('publish', 'b_'..id, 'blocked:') + + refresh_expiration(now, newNextRequest, groupTimeout) +end + +if not blocked and not reachedHWM then + redis.call('hincrby', client_num_queued_key, client, 1) +end + +return {reachedHWM, blocked, strategy} diff --git a/node_modules/bottleneck/src/redis/update_settings.lua b/node_modules/bottleneck/src/redis/update_settings.lua new file mode 100644 index 0000000..f0e8fcd --- /dev/null +++ b/node_modules/bottleneck/src/redis/update_settings.lua @@ -0,0 +1,14 @@ +local args = {'hmset', settings_key} + +for i = num_static_argv + 1, #ARGV do + table.insert(args, ARGV[i]) +end + +redis.call(unpack(args)) + +process_tick(now, true) + +local groupTimeout = tonumber(redis.call('hget', settings_key, 'groupTimeout')) +refresh_expiration(0, 0, groupTimeout) + +return {} diff --git a/node_modules/bottleneck/src/redis/validate_client.lua b/node_modules/bottleneck/src/redis/validate_client.lua new file mode 100644 index 0000000..4f025e9 --- /dev/null +++ b/node_modules/bottleneck/src/redis/validate_client.lua @@ -0,0 +1,5 @@ +if not redis.call('zscore', client_last_seen_key, client) then + return redis.error_reply('UNKNOWN_CLIENT') +end + +redis.call('zadd', client_last_seen_key, now, client) diff --git a/node_modules/bottleneck/src/redis/validate_keys.lua b/node_modules/bottleneck/src/redis/validate_keys.lua new file mode 100644 index 0000000..f534017 --- /dev/null +++ b/node_modules/bottleneck/src/redis/validate_keys.lua @@ -0,0 +1,3 @@ +if not (redis.call('exists', settings_key) == 1) then + return redis.error_reply('SETTINGS_KEY_NOT_FOUND') +end diff --git a/node_modules/bottleneck/test.ts b/node_modules/bottleneck/test.ts new file mode 100644 index 0000000..bf064a7 --- /dev/null +++ b/node_modules/bottleneck/test.ts @@ -0,0 +1,335 @@ +/// + +import Bottleneck from "bottleneck"; +// import * as assert from "assert"; +function assert(b: boolean): void { } + +/* +This file is run by scripts/build.sh. +It is used to validate the typings in bottleneck.d.ts. +The command is: tsc --noEmit --strictNullChecks test.ts +This file cannot be run directly. +In order to do that, you must comment out the first line, +and change "bottleneck" to "." on the third line. +*/ + +function withCb(foo: number, bar: () => void, cb: (err: any, result: string) => void) { + let s: string = `cb ${foo}`; + cb(null, s); +} + +console.log(Bottleneck); + +let limiter = new Bottleneck({ + maxConcurrent: 5, + minTime: 1000, + highWater: 20, + strategy: Bottleneck.strategy.LEAK, + reservoirRefreshInterval: 1000 * 60, + reservoirRefreshAmount: 10, + reservoirIncreaseInterval: 1000 * 60, + reservoirIncreaseAmount: 2, + reservoirIncreaseMaximum: 15 +}); + +limiter.ready().then(() => { console.log('Ready') }); +limiter.clients().client; +limiter.disconnect(); + +limiter.currentReservoir().then(function (x) { + if (x != null) { + let i: number = x; + } +}); + +limiter.incrementReservoir(5).then(function (x) { + if (x != null) { + let i: number = x; + } +}); + +limiter.running().then(function (x) { + let i: number = x; +}); + +limiter.clusterQueued().then(function (x) { + let i: number = x; +}); + +limiter.done().then(function (x) { + let i: number = x; +}); + +limiter.submit(withCb, 1, () => {}, (err, result) => { + let s: string = result; + console.log(s); + assert(s == "cb 1"); +}); + +function withPromise(foo: number, bar: () => void): PromiseLike { + let s: string = `promise ${foo}`; + return Promise.resolve(s); +} + +let foo: Promise = limiter.schedule(withPromise, 1, () => {}); +foo.then(function (result: string) { + let s: string = result; + console.log(s); + assert(s == "promise 1"); +}); + +limiter.on("message", (msg) => console.log(msg)); + +limiter.publish(JSON.stringify({ a: "abc", b: { c: 123 }})); + +function checkEventInfo(info: Bottleneck.EventInfo) { + const numArgs: number = info.args.length; + const id: string = info.options.id; +} + +limiter.on('dropped', (info) => { + checkEventInfo(info) + const task: Function = info.task; + const promise: Promise = info.promise; +}) + +limiter.on('received', (info) => { + checkEventInfo(info) +}) + +limiter.on('queued', (info) => { + checkEventInfo(info) + const blocked: boolean = info.blocked; + const reachedHWM: boolean = info.reachedHWM; +}) + +limiter.on('scheduled', (info) => { + checkEventInfo(info) +}) + +limiter.on('executing', (info) => { + checkEventInfo(info) + const count: number = info.retryCount; +}) + +limiter.on('failed', (error, info) => { + checkEventInfo(info) + const message: string = error.message; + const count: number = info.retryCount; + return Promise.resolve(10) +}) + +limiter.on('failed', (error, info) => { + checkEventInfo(info) + const message: string = error.message; + const count: number = info.retryCount; + return Promise.resolve(null) +}) + +limiter.on('failed', (error, info) => { + checkEventInfo(info) + const message: string = error.message; + const count: number = info.retryCount; + return Promise.resolve() +}) + +limiter.on('failed', (error, info) => { + checkEventInfo(info) + const message: string = error.message; + const count: number = info.retryCount; + return 10 +}) + +limiter.on('failed', (error, info) => { + checkEventInfo(info) + const message: string = error.message; + const count: number = info.retryCount; + return null +}) + +limiter.on('failed', (error, info) => { + checkEventInfo(info) + const message: string = error.message; + const count: number = info.retryCount; +}) + +limiter.on('retry', (message: string, info) => { + checkEventInfo(info) + const count: number = info.retryCount; +}) + +limiter.on('done', (info) => { + checkEventInfo(info) + const count: number = info.retryCount; +}) + +let group = new Bottleneck.Group({ + maxConcurrent: 5, + minTime: 1000, + highWater: 10, + strategy: Bottleneck.strategy.LEAK, + datastore: "ioredis", + clearDatastore: true, + clientOptions: {}, + clusterNodes: [] +}); + +group.on('created', (limiter, key) => { + assert(limiter.empty()) + assert(key.length > 0) +}) + +group.key("foo").submit(withCb, 2, () => {}, (err, result) => { + let s: string = `${result} foo`; + console.log(s); + assert(s == "cb 2 foo"); +}); + +group.key("bar").submit({ priority: 4 }, withCb, 3, () => {}, (err, result) => { + let s: string = `${result} bar`; + console.log(s); + assert(s == "cb 3 foo"); +}); + +let f1: Promise = group.key("pizza").schedule(withPromise, 2, () => {}); +f1.then(function (result: string) { + let s: string = result; + console.log(s); + assert(s == "promise 2"); +}); + +let f2: Promise = group.key("pie").schedule({ priority: 4 }, withPromise, 3, () => {}); +f2.then(function (result: string) { + let s: string = result; + console.log(s); + assert(s == "promise 3"); +}); + +let wrapped = limiter.wrap((a: number, b: number) => { + let s: string = `Total: ${a + b}`; + return Promise.resolve(s); +}); + +wrapped(1, 2).then((x) => { + let s: string = x; + console.log(s); + assert(s == "Total: 3"); +}); + +wrapped.withOptions({ priority: 1, id: 'some-id' }, 9, 9).then((x) => { + let s: string = x; + console.log(s); + assert(s == "Total: 18"); +}) + +let counts = limiter.counts(); +console.log(`${counts.EXECUTING + 2}`); +console.log(limiter.jobStatus('some-id')) +console.log(limiter.jobs()); +console.log(limiter.jobs(Bottleneck.Status.RUNNING)); + + +group.deleteKey("pizza") +.then(function (deleted: boolean) { + console.log(deleted) +}); +group.updateSettings({ timeout: 5, maxConcurrent: null, reservoir: null }); + +let keys: string[] = group.keys(); +assert(keys.length == 3); + +group.clusterKeys() +.then(function (allKeys: string[]) { + let count = allKeys.length; +}) + +let queued: number = limiter.chain(group.key("pizza")).queued(); + +limiter.stop({ + dropWaitingJobs: true, + dropErrorMessage: "Begone!", + enqueueErrorMessage: "Denied!" +}).then(() => { + console.log('All stopped.') +}) + +wrapped(4, 5).catch((e) => { + assert(e.message === "Denied!") +}) + +const id: string = limiter.id; +const datastore: string = limiter.datastore; +const channel: string = limiter.channel(); + +const redisConnection = new Bottleneck.RedisConnection({ + client: "NodeRedis client object", + clientOptions: {} +}) + +redisConnection.ready() +.then(function (redisConnectionClients) { + const client = redisConnectionClients.client; + const subscriber = redisConnectionClients.subscriber; +}) + +redisConnection.on("error", (err) => { + console.log(err.message) +}) + +const limiterWithConn = new Bottleneck({ + connection: redisConnection +}) + +const ioredisConnection = new Bottleneck.IORedisConnection({ + client: "ioredis client object", + clientOptions: {}, + clusterNodes: [] +}) + +ioredisConnection.ready() +.then(function (ioredisConnectionClients) { + const client = ioredisConnectionClients.client; + const subscriber = ioredisConnectionClients.subscriber; +}) + +ioredisConnection.on("error", (err: Bottleneck.BottleneckError) => { + console.log(err.message) +}) + +const groupWithConn = new Bottleneck.Group({ + connection: ioredisConnection +}) + +const limiterWithConnFromGroup = new Bottleneck({ + connection: groupWithConn.connection +}) + +const groupWithConnFromLimiter = new Bottleneck.Group({ + connection: limiterWithConn.connection +}) + + +const batcher = new Bottleneck.Batcher({ + maxTime: 1000, + maxSize: 10 +}) + +batcher.on("batch", (batch) => { + const len: number = batch.length + console.log("Number of elements:", len) +}) + +batcher.on("error", (err: Bottleneck.BottleneckError) => { + console.log(err.message) +}) + +batcher.add("abc") +batcher.add({ xyz: 5 }) +.then(() => console.log("Flushed!")) + +const object = {} +const emitter = new Bottleneck.Events(object) +const listenerCount: number = emitter.listenerCount('info') +emitter.trigger('info', 'hello', 'world', 123).then(function (result) { + console.log(result) +}) diff --git a/node_modules/bottleneck/test/DLList.js b/node_modules/bottleneck/test/DLList.js new file mode 100644 index 0000000..505bdcd --- /dev/null +++ b/node_modules/bottleneck/test/DLList.js @@ -0,0 +1,148 @@ +var DLList = require('../lib/DLList') +var assert = require('assert') +var c = require('./context')({datastore: 'local'}) + +var fakeQueues = function () { + this._length = 0 + this.incr = () => this._length++ + this.decr = () => this._length-- + this.fns = [this.incr, this.decr] +} + +describe('DLList', function () { + + it('Should be created and be empty', function () { + var queues = new fakeQueues() + var list = new DLList() + c.mustEqual(list.getArray().length, 0) + }) + + it('Should be possible to append once', function () { + var queues = new fakeQueues() + var list = new DLList(...queues.fns) + list.push(5) + var arr = list.getArray() + c.mustEqual(arr.length, 1) + c.mustEqual(list.length, 1) + c.mustEqual(queues._length, 1) + c.mustEqual(arr[0], 5) + }) + + it('Should be possible to append multiple times', function () { + var queues = new fakeQueues() + var list = new DLList(...queues.fns) + list.push(5) + list.push(6) + var arr = list.getArray() + c.mustEqual(arr.length, 2) + c.mustEqual(list.length, 2) + c.mustEqual(queues._length, 2) + c.mustEqual(arr[0], 5) + c.mustEqual(arr[1], 6) + + list.push(10) + + arr = list.getArray() + c.mustEqual(arr.length, 3) + c.mustEqual(list.length, 3) + c.mustEqual(arr[0], 5) + c.mustEqual(arr[1], 6) + c.mustEqual(arr[2], 10) + }) + + it('Should be possible to shift an empty list', function () { + var queues = new fakeQueues() + var list = new DLList(...queues.fns) + c.mustEqual(list.length, 0) + assert(list.shift() === undefined) + var arr = list.getArray() + c.mustEqual(arr.length, 0) + c.mustEqual(list.length, 0) + assert(list.shift() === undefined) + arr = list.getArray() + c.mustEqual(arr.length, 0) + c.mustEqual(list.length, 0) + c.mustEqual(queues._length, 0) + }) + + it('Should be possible to append then shift once', function () { + var queues = new fakeQueues() + var list = new DLList(...queues.fns) + list.push(5) + c.mustEqual(list.length, 1) + c.mustEqual(list.shift(), 5) + var arr = list.getArray() + c.mustEqual(arr.length, 0) + c.mustEqual(list.length, 0) + c.mustEqual(queues._length, 0) + }) + + it('Should be possible to append then shift multiple times', function () { + var queues = new fakeQueues() + var list = new DLList(...queues.fns) + list.push(5) + c.mustEqual(list.length, 1) + c.mustEqual(list.shift(), 5) + c.mustEqual(list.length, 0) + + list.push(6) + c.mustEqual(list.length, 1) + c.mustEqual(list.shift(), 6) + c.mustEqual(list.length, 0) + c.mustEqual(queues._length, 0) + }) + + it('Should pass a full test', function () { + var queues = new fakeQueues() + var list = new DLList(...queues.fns) + list.push(10) + c.mustEqual(list.length, 1) + list.push("11") + c.mustEqual(list.length, 2) + list.push(12) + c.mustEqual(list.length, 3) + c.mustEqual(queues._length, 3) + + c.mustEqual(list.shift(), 10) + c.mustEqual(list.length, 2) + c.mustEqual(list.shift(),"11") + c.mustEqual(list.length, 1) + + list.push(true) + c.mustEqual(list.length, 2) + + var arr = list.getArray() + c.mustEqual(arr[0], 12) + c.mustEqual(arr[1], true) + c.mustEqual(arr.length, 2) + c.mustEqual(queues._length, 2) + }) + + it('Should return the first value without shifting', function () { + var queues = new fakeQueues() + var list = new DLList(...queues.fns) + assert(list.first() === undefined) + assert(list.first() === undefined) + + list.push(1) + c.mustEqual(list.first(), 1) + c.mustEqual(list.first(), 1) + + list.push(2) + c.mustEqual(list.first(), 1) + c.mustEqual(list.first(), 1) + + c.mustEqual(list.shift(), 1) + c.mustEqual(list.first(), 2) + c.mustEqual(list.first(), 2) + + c.mustEqual(list.shift(), 2) + assert(list.first() === undefined) + assert(list.first() === undefined) + + assert(list.first() === undefined) + assert(list.shift() === undefined) + assert(list.first() === undefined) + }) + +}) diff --git a/node_modules/bottleneck/test/batcher.js b/node_modules/bottleneck/test/batcher.js new file mode 100644 index 0000000..c195367 --- /dev/null +++ b/node_modules/bottleneck/test/batcher.js @@ -0,0 +1,209 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') + +describe('Batcher', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should batch by time and size', function () { + c = makeTest() + var batcher = new Bottleneck.Batcher({ + maxTime: 50, + maxSize: 3 + }) + var t0 = Date.now() + var batches = [] + + batcher.on('batch', function (batcher) { + batches.push(batcher) + }) + + return Promise.all([ + batcher.add(1).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 1)), + batcher.add(2).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 2)), + batcher.add(3).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 3)), + batcher.add(4).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 4)), + batcher.add(5).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 5)) + ]) + .then(function (data) { + c.mustEqual( + data.map((([t, x]) => [Math.floor(t / 50), x])), + [[0, 1], [0, 2], [0, 3], [1, 4], [1, 5]] + ) + + return c.last() + }) + .then(function (results) { + c.checkDuration(50, 20) + c.mustEqual(batches, [[1, 2, 3], [4, 5]]) + }) + }) + + it('Should batch by time', function () { + c = makeTest() + var batcher = new Bottleneck.Batcher({ + maxTime: 50 + }) + var t0 = Date.now() + var batches = [] + + batcher.on('batch', function (batcher) { + batches.push(batcher) + }) + + return Promise.all([ + batcher.add(1).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 1)), + batcher.add(2).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 2)) + ]) + .then(function (data) { + c.mustEqual( + data.map((([t, x]) => [Math.floor(t / 50), x])), + [[1, 1], [1, 2]] + ) + + return Promise.all([ + batcher.add(3).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 3)), + batcher.add(4).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 4)) + ]) + }) + .then(function (data) { + c.mustEqual( + data.map((([t, x]) => [Math.floor(t / 50), x])), + [[2, 3], [2, 4]] + ) + + return c.last() + }) + .then(function (results) { + c.checkDuration(100) + c.mustEqual(batches, [[1, 2], [3, 4]]) + }) + }) + + it('Should batch by size', function () { + c = makeTest() + var batcher = new Bottleneck.Batcher({ + maxSize: 2 + }) + var batches = [] + + batcher.on('batch', function (batcher) { + batches.push(batcher) + }) + + return Promise.all([ + batcher.add(1).then((x) => c.limiter.schedule(c.promise, null, 1)), + batcher.add(2).then((x) => c.limiter.schedule(c.promise, null, 2)) + ]) + .then(function () { + return Promise.all([ + batcher.add(3).then((x) => c.limiter.schedule(c.promise, null, 3)), + batcher.add(4).then((x) => c.limiter.schedule(c.promise, null, 4)) + ]) + }) + .then(c.last) + .then(function (results) { + c.checkDuration(0) + c.mustEqual(batches, [[1, 2], [3, 4]]) + }) + }) + + it('Should stagger flushes', function () { + c = makeTest() + var batcher = new Bottleneck.Batcher({ + maxTime: 50, + maxSize: 3 + }) + var t0 = Date.now() + var batches = [] + + batcher.on('batch', function (batcher) { + batches.push(batcher) + }) + + return Promise.all([ + batcher.add(1).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 1)), + batcher.add(2).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 2)) + ]) + .then(function (data) { + c.mustEqual( + data.map((([t, x]) => [Math.floor(t / 50), x])), + [[1, 1], [1, 2]] + ) + + var promises = [] + promises.push(batcher.add(3).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 3))) + + return c.wait(10) + .then(function () { + promises.push(batcher.add(4).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 4))) + + return Promise.all(promises) + }) + }) + .then(function (data) { + c.mustEqual( + data.map((([t, x]) => [Math.floor(t / 50), x])), + [[2, 3], [2, 4]] + ) + + return c.last() + }) + .then(function (results) { + c.checkDuration(120, 20) + c.mustEqual(batches, [[1, 2], [3, 4]]) + }) + }) + + it('Should force then stagger flushes', function () { + c = makeTest() + var batcher = new Bottleneck.Batcher({ + maxTime: 50, + maxSize: 3 + }) + var t0 = Date.now() + var batches = [] + + batcher.on('batch', function (batcher) { + batches.push(batcher) + }) + + var promises = [] + promises.push(batcher.add(1).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 1))) + promises.push(batcher.add(2).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 2))) + + return c.wait(10) + .then(function () { + promises.push(batcher.add(3).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 3))) + + return Promise.all(promises) + }) + .then(function (data) { + c.mustEqual( + data.map((([t, x]) => [Math.floor(t / 50), x])), + [[0, 1], [0, 2], [0, 3]] + ) + + return Promise.all([ + batcher.add(4).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 4)), + batcher.add(5).then((x) => c.limiter.schedule(c.promise, null, Date.now() - t0, 5)), + ]) + }) + .then(function (data) { + c.mustEqual( + data.map((([t, x]) => [Math.floor(t / 50), x])), + [[1, 4], [1, 5]] + ) + + return c.last() + }) + .then(function (results) { + c.checkDuration(85, 25) + c.mustEqual(batches, [[1, 2, 3], [4, 5]]) + }) + }) +}) diff --git a/node_modules/bottleneck/test/bottleneck.js b/node_modules/bottleneck/test/bottleneck.js new file mode 100644 index 0000000..a3bc0c8 --- /dev/null +++ b/node_modules/bottleneck/test/bottleneck.js @@ -0,0 +1,7 @@ +if (process.env.BUILD === 'es5') { + module.exports = require('../es5.js') +} else if (process.env.BUILD === 'light') { + module.exports = require('../light.js') +} else { + module.exports = require('../lib/index.js') +} diff --git a/node_modules/bottleneck/test/cluster.js b/node_modules/bottleneck/test/cluster.js new file mode 100644 index 0000000..5b28404 --- /dev/null +++ b/node_modules/bottleneck/test/cluster.js @@ -0,0 +1,1549 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var Scripts = require('../lib/Scripts.js') +var assert = require('assert') +var packagejson = require('../package.json') + +if (process.env.DATASTORE === 'redis' || process.env.DATASTORE === 'ioredis') { + + var limiterKeys = function (limiter) { + return Scripts.allKeys(limiter._store.originalId) + } + var countKeys = function (limiter) { + return runCommand(limiter, 'exists', limiterKeys(limiter)) + } + var deleteKeys = function (limiter) { + return runCommand(limiter, 'del', limiterKeys(limiter)) + } + var runCommand = function (limiter, command, args) { + return new Promise(function (resolve, reject) { + limiter._store.clients.client[command](...args, function (err, data) { + if (err != null) return reject(err) + return resolve(data) + }) + }) + } + + describe('Cluster-only', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should return a promise for ready()', function () { + c = makeTest({ maxConcurrent: 2 }) + + return c.limiter.ready() + }) + + it('Should return clients', function () { + c = makeTest({ maxConcurrent: 2 }) + + return c.limiter.ready() + .then(function (clients) { + c.mustEqual(Object.keys(clients), ['client', 'subscriber']) + c.mustEqual(Object.keys(c.limiter.clients()), ['client', 'subscriber']) + }) + }) + + it('Should return a promise when disconnecting', function () { + c = makeTest({ maxConcurrent: 2 }) + + return c.limiter.disconnect() + .then(function () { + // do nothing + }) + }) + + it('Should allow passing a limiter\'s connection to a new limiter', function () { + c = makeTest() + c.limiter.connection.id = 'some-id' + var limiter = new Bottleneck({ + minTime: 50, + connection: c.limiter.connection + }) + + return Promise.all([c.limiter.ready(), limiter.ready()]) + .then(function () { + c.mustEqual(limiter.connection.id, 'some-id') + c.mustEqual(limiter.datastore, process.env.DATASTORE) + + return Promise.all([ + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1), + c.pNoErrVal(limiter.schedule(c.promise, null, 2), 2) + ]) + }) + .then(c.last) + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(0) + }) + }) + + it('Should allow passing a limiter\'s connection to a new Group', function () { + c = makeTest() + c.limiter.connection.id = 'some-id' + var group = new Bottleneck.Group({ + minTime: 50, + connection: c.limiter.connection + }) + var limiter1 = group.key('A') + var limiter2 = group.key('B') + + return Promise.all([c.limiter.ready(), limiter1.ready(), limiter2.ready()]) + .then(function () { + c.mustEqual(limiter1.connection.id, 'some-id') + c.mustEqual(limiter2.connection.id, 'some-id') + c.mustEqual(limiter1.datastore, process.env.DATASTORE) + c.mustEqual(limiter2.datastore, process.env.DATASTORE) + + return Promise.all([ + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1), + c.pNoErrVal(limiter1.schedule(c.promise, null, 2), 2), + c.pNoErrVal(limiter2.schedule(c.promise, null, 3), 3) + ]) + }) + .then(c.last) + .then(function (results) { + c.checkResultsOrder([[1], [2], [3]]) + c.checkDuration(0) + }) + }) + + it('Should allow passing a Group\'s connection to a new limiter', function () { + c = makeTest() + var group = new Bottleneck.Group({ + minTime: 50, + datastore: process.env.DATASTORE, + clearDatastore: true + }) + group.connection.id = 'some-id' + + var limiter1 = group.key('A') + var limiter2 = new Bottleneck({ + minTime: 50, + connection: group.connection + }) + + return Promise.all([limiter1.ready(), limiter2.ready()]) + .then(function () { + c.mustEqual(limiter1.connection.id, 'some-id') + c.mustEqual(limiter2.connection.id, 'some-id') + c.mustEqual(limiter1.datastore, process.env.DATASTORE) + c.mustEqual(limiter2.datastore, process.env.DATASTORE) + + return Promise.all([ + c.pNoErrVal(limiter1.schedule(c.promise, null, 1), 1), + c.pNoErrVal(limiter2.schedule(c.promise, null, 2), 2) + ]) + }) + .then(c.last) + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(0) + return group.disconnect() + }) + }) + + it('Should allow passing a Group\'s connection to a new Group', function () { + c = makeTest() + var group1 = new Bottleneck.Group({ + minTime: 50, + datastore: process.env.DATASTORE, + clearDatastore: true + }) + group1.connection.id = 'some-id' + + var group2 = new Bottleneck.Group({ + minTime: 50, + connection: group1.connection, + clearDatastore: true + }) + + var limiter1 = group1.key('AAA') + var limiter2 = group1.key('BBB') + var limiter3 = group1.key('CCC') + var limiter4 = group1.key('DDD') + + return Promise.all([ + limiter1.ready(), + limiter2.ready(), + limiter3.ready(), + limiter4.ready() + ]) + .then(function () { + c.mustEqual(group1.connection.id, 'some-id') + c.mustEqual(group2.connection.id, 'some-id') + c.mustEqual(limiter1.connection.id, 'some-id') + c.mustEqual(limiter2.connection.id, 'some-id') + c.mustEqual(limiter3.connection.id, 'some-id') + c.mustEqual(limiter4.connection.id, 'some-id') + c.mustEqual(limiter1.datastore, process.env.DATASTORE) + c.mustEqual(limiter2.datastore, process.env.DATASTORE) + c.mustEqual(limiter3.datastore, process.env.DATASTORE) + c.mustEqual(limiter4.datastore, process.env.DATASTORE) + + return Promise.all([ + c.pNoErrVal(limiter1.schedule(c.promise, null, 1), 1), + c.pNoErrVal(limiter2.schedule(c.promise, null, 2), 2), + c.pNoErrVal(limiter3.schedule(c.promise, null, 3), 3), + c.pNoErrVal(limiter4.schedule(c.promise, null, 4), 4) + ]) + }) + .then(c.last) + .then(function (results) { + c.checkResultsOrder([[1], [2], [3], [4]]) + c.checkDuration(0) + return group1.disconnect() + }) + }) + + it('Should not have a key TTL by default for standalone limiters', function () { + c = makeTest() + + return c.limiter.ready() + .then(function () { + var settings_key = limiterKeys(c.limiter)[0] + return runCommand(c.limiter, 'ttl', [settings_key]) + }) + .then(function (ttl) { + assert(ttl < 0) + }) + }) + + it('Should allow timeout setting for standalone limiters', function () { + c = makeTest({ timeout: 5 * 60 * 1000 }) + + return c.limiter.ready() + .then(function () { + var settings_key = limiterKeys(c.limiter)[0] + return runCommand(c.limiter, 'ttl', [settings_key]) + }) + .then(function (ttl) { + assert(ttl >= 290 && ttl <= 305) + }) + }) + + it('Should compute reservoir increased based on number of missed intervals', async function () { + const settings = { + id: 'missed-intervals', + clearDatastore: false, + reservoir: 2, + reservoirIncreaseInterval: 100, + reservoirIncreaseAmount: 2, + timeout: 2000 + } + c = makeTest({ ...settings }) + await c.limiter.ready() + + c.mustEqual(await c.limiter.currentReservoir(), 2) + + const settings_key = limiterKeys(c.limiter)[0] + await runCommand(c.limiter, 'hincrby', [settings_key, 'lastReservoirIncrease', -3000]) + + const limiter2 = new Bottleneck({ ...settings, datastore: process.env.DATASTORE }) + await limiter2.ready() + + c.mustEqual(await c.limiter.currentReservoir(), 62) // 2 + ((3000 / 100) * 2) === 62 + + await limiter2.disconnect() + }) + + it('Should migrate from 2.8.0', function () { + c = makeTest({ id: 'migrate' }) + var settings_key = limiterKeys(c.limiter)[0] + var limiter2 + + return c.limiter.ready() + .then(function () { + var settings_key = limiterKeys(c.limiter)[0] + return Promise.all([ + runCommand(c.limiter, 'hset', [settings_key, 'version', '2.8.0']), + runCommand(c.limiter, 'hdel', [settings_key, 'done', 'capacityPriorityCounter', 'clientTimeout']), + runCommand(c.limiter, 'hset', [settings_key, 'lastReservoirRefresh', '']) + ]) + }) + .then(function () { + limiter2 = new Bottleneck({ + id: 'migrate', + datastore: process.env.DATASTORE + }) + return limiter2.ready() + }) + .then(function () { + return runCommand(c.limiter, 'hmget', [ + settings_key, + 'version', + 'done', + 'reservoirRefreshInterval', + 'reservoirRefreshAmount', + 'capacityPriorityCounter', + 'clientTimeout', + 'reservoirIncreaseAmount', + 'reservoirIncreaseMaximum', + // Add new values here, before these 2 timestamps + 'lastReservoirRefresh', + 'lastReservoirIncrease' + ]) + }) + .then(function (values) { + var timestamps = values.slice(-2) + timestamps.forEach((t) => assert(parseInt(t) > Date.now() - 500)) + c.mustEqual(values.slice(0, -timestamps.length), [ + '2.18.0', + '0', + '', + '', + '0', + '10000', + '', + '' + ]) + }) + .then(function () { + return limiter2.disconnect(false) + }) + }) + + it('Should keep track of each client\'s queue length', async function () { + c = makeTest({ + id: 'queues', + maxConcurrent: 1, + trackDoneStatus: true + }) + var limiter2 = new Bottleneck({ + datastore: process.env.DATASTORE, + id: 'queues', + maxConcurrent: 1, + trackDoneStatus: true + }) + var client_num_queued_key = limiterKeys(c.limiter)[5] + var clientId1 = c.limiter._store.clientId + var clientId2 = limiter2._store.clientId + + await c.limiter.ready() + await limiter2.ready() + + var p0 = c.limiter.schedule({id: 0}, c.slowPromise, 100, null, 0) + await c.limiter._submitLock.schedule(() => Promise.resolve()) + + var p1 = c.limiter.schedule({id: 1}, c.promise, null, 1) + var p2 = c.limiter.schedule({id: 2}, c.promise, null, 2) + var p3 = limiter2.schedule({id: 3}, c.promise, null, 3) + + await Promise.all([ + c.limiter._submitLock.schedule(() => Promise.resolve()), + limiter2._submitLock.schedule(() => Promise.resolve()) + ]) + + var queuedA = await runCommand(c.limiter, 'hgetall', [client_num_queued_key]) + c.mustEqual(c.limiter.counts().QUEUED, 2) + c.mustEqual(limiter2.counts().QUEUED, 1) + c.mustEqual(~~queuedA[clientId1], 2) + c.mustEqual(~~queuedA[clientId2], 1) + + c.mustEqual(await c.limiter.clusterQueued(), 3) + + await Promise.all([p0, p1, p2, p3]) + var queuedB = await runCommand(c.limiter, 'hgetall', [client_num_queued_key]) + c.mustEqual(c.limiter.counts().QUEUED, 0) + c.mustEqual(limiter2.counts().QUEUED, 0) + c.mustEqual(~~queuedB[clientId1], 0) + c.mustEqual(~~queuedB[clientId2], 0) + c.mustEqual(c.limiter.counts().DONE, 3) + c.mustEqual(limiter2.counts().DONE, 1) + + c.mustEqual(await c.limiter.clusterQueued(), 0) + + return limiter2.disconnect(false) + }) + + it('Should publish capacity increases', function () { + c = makeTest({ maxConcurrent: 2 }) + var limiter2 + var p3, p4 + + return c.limiter.ready() + .then(function () { + limiter2 = new Bottleneck({ datastore: process.env.DATASTORE }) + return limiter2.ready() + }) + .then(function () { + var p1 = c.limiter.schedule({id: 1}, c.slowPromise, 100, null, 1) + var p2 = c.limiter.schedule({id: 2}, c.slowPromise, 100, null, 2) + + return c.limiter.schedule({id: 0, weight: 0}, c.promise, null, 0) + }) + .then(function () { + return limiter2.schedule({id: 3}, c.slowPromise, 100, null, 3) + }) + .then(c.last) + .then(function (results) { + c.checkResultsOrder([[0], [1], [2], [3]]) + c.checkDuration(200) + + return limiter2.disconnect(false) + }) + }) + + it('Should publish capacity changes on reservoir changes', function () { + c = makeTest({ + maxConcurrent: 2, + reservoir: 2 + }) + var limiter2 + var p3, p4 + + return c.limiter.ready() + .then(function () { + limiter2 = new Bottleneck({ + datastore: process.env.DATASTORE, + }) + return limiter2.ready() + }) + .then(function () { + var p1 = c.limiter.schedule({id: 1}, c.slowPromise, 100, null, 1) + var p2 = c.limiter.schedule({id: 2}, c.slowPromise, 100, null, 2) + + return c.limiter.schedule({id: 0, weight: 0}, c.promise, null, 0) + }) + .then(function () { + p3 = limiter2.schedule({id: 3, weight: 2}, c.slowPromise, 100, null, 3) + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + return c.limiter.updateSettings({ reservoir: 1 }) + }) + .then(function () { + return c.limiter.incrementReservoir(1) + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 2) + return p3 + }) + .then(function (result) { + c.mustEqual(result, [3]) + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + return c.last({ weight: 0 }) + }) + .then(function (results) { + c.checkResultsOrder([[0], [1], [2], [3]]) + c.checkDuration(210) + }) + .then(function (data) { + return limiter2.disconnect(false) + }) + }) + + it('Should remove track job data and remove lost jobs', function () { + c = makeTest({ + id: 'lost', + errorEventsExpected: true + }) + var clientId = c.limiter._store.clientId + var limiter1 = new Bottleneck({ datastore: process.env.DATASTORE }) + var limiter2 = new Bottleneck({ + id: 'lost', + datastore: process.env.DATASTORE, + heartbeatInterval: 150 + }) + var getData = function (limiter) { + c.mustEqual(limiterKeys(limiter).length, 8) // Asserting, to remember to edit this test when keys change + var [ + settings_key, + job_weights_key, + job_expirations_key, + job_clients_key, + client_running_key, + client_num_queued_key, + client_last_registered_key, + client_last_seen_key + ] = limiterKeys(limiter) + + return Promise.all([ + runCommand(limiter1, 'hmget', [settings_key, 'running', 'done']), + runCommand(limiter1, 'hgetall', [job_weights_key]), + runCommand(limiter1, 'zcard', [job_expirations_key]), + runCommand(limiter1, 'hvals', [job_clients_key]), + runCommand(limiter1, 'zrange', [client_running_key, '0', '-1', 'withscores']), + runCommand(limiter1, 'hvals', [client_num_queued_key]), + runCommand(limiter1, 'zrange', [client_last_registered_key, '0', '-1', 'withscores']), + runCommand(limiter1, 'zrange', [client_last_seen_key, '0', '-1', 'withscores']) + ]) + } + var sumWeights = function (weights) { + return Object.keys(weights).reduce((acc, x) => { + return acc + ~~weights[x] + }, 0) + } + var numExpirations = 0 + var errorHandler = function (err) { + if (err.message.indexOf('This job timed out') === 0) { + numExpirations++ + } + } + + return Promise.all([c.limiter.ready(), limiter1.ready(), limiter2.ready()]) + .then(function () { + // No expiration, it should not be removed + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.slowPromise, 150, null, 1), 1), + + // Expiration present, these jobs should be removed automatically + c.limiter.schedule({ expiration: 50, weight: 2 }, c.slowPromise, 75, null, 2).catch(errorHandler) + c.limiter.schedule({ expiration: 50, weight: 3 }, c.slowPromise, 75, null, 3).catch(errorHandler) + c.limiter.schedule({ expiration: 50, weight: 4 }, c.slowPromise, 75, null, 4).catch(errorHandler) + c.limiter.schedule({ expiration: 50, weight: 5 }, c.slowPromise, 75, null, 5).catch(errorHandler) + + return c.limiter._submitLock.schedule(() => Promise.resolve(true)) + }) + .then(function () { + return c.limiter._drainAll() + }) + .then(function () { + return c.limiter.disconnect(false) + }) + .then(function () { + }) + .then(function () { + return getData(c.limiter) + }) + .then(function ([ + settings, + job_weights, + job_expirations, + job_clients, + client_running, + client_num_queued, + client_last_registered, + client_last_seen + ]) { + c.mustEqual(settings, ['15', '0']) + c.mustEqual(sumWeights(job_weights), 15) + c.mustEqual(job_expirations, 4) + c.mustEqual(job_clients.length, 5) + job_clients.forEach((id) => c.mustEqual(id, clientId)) + c.mustEqual(sumWeights(client_running), 15) + c.mustEqual(client_num_queued, ['0', '0']) + c.mustEqual(client_last_registered[1], '0') + assert(client_last_seen[1] > Date.now() - 1000) + var passed = Date.now() - parseFloat(client_last_registered[3]) + assert(passed > 0 && passed < 20) + + return c.wait(170) + }) + .then(function () { + return getData(c.limiter) + }) + .then(function ([ + settings, + job_weights, + job_expirations, + job_clients, + client_running, + client_num_queued, + client_last_registered, + client_last_seen + ]) { + c.mustEqual(settings, ['1', '14']) + c.mustEqual(sumWeights(job_weights), 1) + c.mustEqual(job_expirations, 0) + c.mustEqual(job_clients.length, 1) + job_clients.forEach((id) => c.mustEqual(id, clientId)) + c.mustEqual(sumWeights(client_running), 1) + c.mustEqual(client_num_queued, ['0', '0']) + c.mustEqual(client_last_registered[1], '0') + assert(client_last_seen[1] > Date.now() - 1000) + var passed = Date.now() - parseFloat(client_last_registered[3]) + assert(passed > 170 && passed < 200) + + c.mustEqual(numExpirations, 4) + }) + .then(function () { + return Promise.all([ + limiter1.disconnect(false), + limiter2.disconnect(false) + ]) + }) + }) + + it('Should clear unresponsive clients', async function () { + c = makeTest({ + id: 'unresponsive', + maxConcurrent: 1, + timeout: 1000, + clientTimeout: 100, + heartbeat: 50 + }) + const limiter2 = new Bottleneck({ + id: 'unresponsive', + datastore: process.env.DATASTORE + }) + + await Promise.all([c.limiter.running(), limiter2.running()]) + + const client_running_key = limiterKeys(limiter2)[4] + const client_num_queued_key = limiterKeys(limiter2)[5] + const client_last_registered_key = limiterKeys(limiter2)[6] + const client_last_seen_key = limiterKeys(limiter2)[7] + const numClients = () => Promise.all([ + runCommand(c.limiter, 'zcard', [client_running_key]), + runCommand(c.limiter, 'hlen', [client_num_queued_key]), + runCommand(c.limiter, 'zcard', [client_last_registered_key]), + runCommand(c.limiter, 'zcard', [client_last_seen_key]) + ]) + + c.mustEqual(await numClients(), [2, 2, 2, 2]) + + await limiter2.disconnect(false) + await c.wait(150) + + await c.limiter.running() + + c.mustEqual(await numClients(), [1, 1, 1, 1]) + + }) + + + it('Should not clear unresponsive clients with unexpired running jobs', async function () { + c = makeTest({ + id: 'unresponsive-unexpired', + maxConcurrent: 1, + timeout: 1000, + clientTimeout: 200, + heartbeat: 2000 + }) + const limiter2 = new Bottleneck({ + id: 'unresponsive-unexpired', + datastore: process.env.DATASTORE + }) + + await c.limiter.ready() + await limiter2.ready() + + const client_running_key = limiterKeys(limiter2)[4] + const client_num_queued_key = limiterKeys(limiter2)[5] + const client_last_registered_key = limiterKeys(limiter2)[6] + const client_last_seen_key = limiterKeys(limiter2)[7] + const numClients = () => Promise.all([ + runCommand(limiter2, 'zcard', [client_running_key]), + runCommand(limiter2, 'hlen', [client_num_queued_key]), + runCommand(limiter2, 'zcard', [client_last_registered_key]), + runCommand(limiter2, 'zcard', [client_last_seen_key]) + ]) + + const job = c.limiter.schedule(c.slowPromise, 500, null, 1) + + await c.wait(300) + + // running() triggers process_tick and that will attempt to remove client 1 + // but it shouldn't do it because it has a running job + c.mustEqual(await limiter2.running(), 1) + + c.mustEqual(await numClients(), [2, 2, 2, 2]) + + await job + + c.mustEqual(await limiter2.running(), 0) + + await limiter2.disconnect(false) + }) + + it('Should clear unresponsive clients after last jobs are expired', async function () { + c = makeTest({ + id: 'unresponsive-expired', + maxConcurrent: 1, + timeout: 1000, + clientTimeout: 200, + heartbeat: 2000 + }) + const limiter2 = new Bottleneck({ + id: 'unresponsive-expired', + datastore: process.env.DATASTORE + }) + + await c.limiter.ready() + await limiter2.ready() + + const client_running_key = limiterKeys(limiter2)[4] + const client_num_queued_key = limiterKeys(limiter2)[5] + const client_last_registered_key = limiterKeys(limiter2)[6] + const client_last_seen_key = limiterKeys(limiter2)[7] + const numClients = () => Promise.all([ + runCommand(limiter2, 'zcard', [client_running_key]), + runCommand(limiter2, 'hlen', [client_num_queued_key]), + runCommand(limiter2, 'zcard', [client_last_registered_key]), + runCommand(limiter2, 'zcard', [client_last_seen_key]) + ]) + + const job = c.limiter.schedule({ expiration: 250 }, c.slowPromise, 300, null, 1) + await c.wait(100) // wait for it to register + + c.mustEqual(await c.limiter.running(), 1) + c.mustEqual(await numClients(), [2,2,2,2]) + + let dropped = false + try { + await job + } catch (e) { + if (e.message === 'This job timed out after 250 ms.') { + dropped = true + } else { + throw e + } + } + assert(dropped) + + await c.wait(200) + + c.mustEqual(await limiter2.running(), 0) + c.mustEqual(await numClients(), [1,1,1,1]) + + await limiter2.disconnect(false) + }) + + it('Should use shared settings', function () { + c = makeTest({ maxConcurrent: 2 }) + var limiter2 = new Bottleneck({ maxConcurrent: 1, datastore: process.env.DATASTORE }) + + return Promise.all([ + limiter2.schedule(c.slowPromise, 100, null, 1), + limiter2.schedule(c.slowPromise, 100, null, 2) + ]) + .then(function () { + return limiter2.disconnect(false) + }) + .then(function () { + return c.last() + }) + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(100) + }) + }) + + it('Should clear previous settings', function () { + c = makeTest({ maxConcurrent: 2 }) + var limiter2 + + return c.limiter.ready() + .then(function () { + limiter2 = new Bottleneck({ maxConcurrent: 1, datastore: process.env.DATASTORE, clearDatastore: true }) + return limiter2.ready() + }) + .then(function () { + return Promise.all([ + c.limiter.schedule(c.slowPromise, 100, null, 1), + c.limiter.schedule(c.slowPromise, 100, null, 2) + ]) + }) + .then(function () { + return limiter2.disconnect(false) + }) + .then(function () { + return c.last() + }) + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(200) + }) + }) + + it('Should safely handle connection failures', function () { + c = makeTest({ + clientOptions: { port: 1 }, + errorEventsExpected: true + }) + + return new Promise(function (resolve, reject) { + c.limiter.on('error', function (err) { + assert(err != null) + resolve() + }) + + c.limiter.ready() + .then(function () { + reject(new Error('Should not have connected')) + }) + .catch(function (err) { + reject(err) + }) + }) + }) + + it('Should chain local and distributed limiters (total concurrency)', function () { + c = makeTest({ id: 'limiter1', maxConcurrent: 3 }) + var limiter2 = new Bottleneck({ id: 'limiter2', maxConcurrent: 1 }) + var limiter3 = new Bottleneck({ id: 'limiter3', maxConcurrent: 2 }) + + limiter2.on('error', (err) => console.log(err)) + + limiter2.chain(c.limiter) + limiter3.chain(c.limiter) + + return Promise.all([ + limiter2.schedule(c.slowPromise, 100, null, 1), + limiter2.schedule(c.slowPromise, 100, null, 2), + limiter2.schedule(c.slowPromise, 100, null, 3), + limiter3.schedule(c.slowPromise, 100, null, 4), + limiter3.schedule(c.slowPromise, 100, null, 5), + limiter3.schedule(c.slowPromise, 100, null, 6) + ]) + .then(c.last) + .then(function (results) { + c.checkDuration(300) + c.checkResultsOrder([[1], [4], [5], [2], [6], [3]]) + + assert(results.calls[0].time >= 100 && results.calls[0].time < 200) + assert(results.calls[1].time >= 100 && results.calls[1].time < 200) + assert(results.calls[2].time >= 100 && results.calls[2].time < 200) + + assert(results.calls[3].time >= 200 && results.calls[3].time < 300) + assert(results.calls[4].time >= 200 && results.calls[4].time < 300) + + assert(results.calls[5].time >= 300 && results.calls[2].time < 400) + }) + }) + + it('Should chain local and distributed limiters (partial concurrency)', function () { + c = makeTest({ maxConcurrent: 2 }) + var limiter2 = new Bottleneck({ maxConcurrent: 1 }) + var limiter3 = new Bottleneck({ maxConcurrent: 2 }) + + limiter2.chain(c.limiter) + limiter3.chain(c.limiter) + + return Promise.all([ + limiter2.schedule(c.slowPromise, 100, null, 1), + limiter2.schedule(c.slowPromise, 100, null, 2), + limiter2.schedule(c.slowPromise, 100, null, 3), + limiter3.schedule(c.slowPromise, 100, null, 4), + limiter3.schedule(c.slowPromise, 100, null, 5), + limiter3.schedule(c.slowPromise, 100, null, 6) + ]) + .then(c.last) + .then(function (results) { + c.checkDuration(300) + c.checkResultsOrder([[1], [4], [5], [2], [6], [3]]) + + assert(results.calls[0].time >= 100 && results.calls[0].time < 200) + assert(results.calls[1].time >= 100 && results.calls[1].time < 200) + + assert(results.calls[2].time >= 200 && results.calls[2].time < 300) + assert(results.calls[3].time >= 200 && results.calls[3].time < 300) + + assert(results.calls[4].time >= 300 && results.calls[4].time < 400) + assert(results.calls[5].time >= 300 && results.calls[2].time < 400) + }) + }) + + it('Should use the limiter ID to build Redis keys', function () { + c = makeTest() + var randomId = c.limiter._randomIndex() + var limiter = new Bottleneck({ id: randomId, datastore: process.env.DATASTORE, clearDatastore: true }) + + return limiter.ready() + .then(function () { + var keys = limiterKeys(limiter) + keys.forEach((key) => assert(key.indexOf(randomId) > 0)) + return deleteKeys(limiter) + }) + .then(function (deleted) { + c.mustEqual(deleted, 5) + return limiter.disconnect(false) + }) + }) + + it('Should not fail when Redis data is missing', function () { + c = makeTest() + var limiter = new Bottleneck({ datastore: process.env.DATASTORE, clearDatastore: true }) + + return limiter.running() + .then(function (running) { + c.mustEqual(running, 0) + return deleteKeys(limiter) + }) + .then(function (deleted) { + c.mustEqual(deleted, 5) + return countKeys(limiter) + }) + .then(function (count) { + c.mustEqual(count, 0) + return limiter.running() + }) + .then(function (running) { + c.mustEqual(running, 0) + return countKeys(limiter) + }) + .then(function (count) { + assert(count > 0) + return limiter.disconnect(false) + }) + }) + + it('Should drop all jobs in the Cluster when entering blocked mode', function () { + c = makeTest() + var limiter1 = new Bottleneck({ + id: 'blocked', + trackDoneStatus: true, + datastore: process.env.DATASTORE, + clearDatastore: true, + + maxConcurrent: 1, + minTime: 50, + highWater: 2, + strategy: Bottleneck.strategy.BLOCK + }) + var limiter2 + var client_num_queued_key = limiterKeys(limiter1)[5] + + return limiter1.ready() + .then(function () { + limiter2 = new Bottleneck({ + id: 'blocked', + trackDoneStatus: true, + datastore: process.env.DATASTORE, + clearDatastore: false, + }) + return limiter2.ready() + }) + .then(function () { + return Promise.all([ + limiter1.submit(c.slowJob, 100, null, 1, c.noErrVal(1)), + limiter1.submit(c.slowJob, 100, null, 2, (err) => c.mustExist(err)) + ]) + }) + .then(function () { + return Promise.all([ + limiter2.submit(c.slowJob, 100, null, 3, (err) => c.mustExist(err)), + limiter2.submit(c.slowJob, 100, null, 4, (err) => c.mustExist(err)), + limiter2.submit(c.slowJob, 100, null, 5, (err) => c.mustExist(err)) + ]) + }) + .then(function () { + return runCommand(limiter1, 'hvals', [client_num_queued_key]) + }) + .then(function (queues) { + c.mustEqual(queues, ['0', '0']) + + return Promise.all([ + c.limiter.clusterQueued(), + limiter2.clusterQueued() + ]) + }) + .then(function (queues) { + c.mustEqual(queues, [0, 0]) + + return c.wait(100) + }) + .then(function () { + var counts1 = limiter1.counts() + c.mustEqual(counts1.RECEIVED, 0) + c.mustEqual(counts1.QUEUED, 0) + c.mustEqual(counts1.RUNNING, 0) + c.mustEqual(counts1.EXECUTING, 0) + c.mustEqual(counts1.DONE, 1) + + var counts2 = limiter2.counts() + c.mustEqual(counts2.RECEIVED, 0) + c.mustEqual(counts2.QUEUED, 0) + c.mustEqual(counts2.RUNNING, 0) + c.mustEqual(counts2.EXECUTING, 0) + c.mustEqual(counts2.DONE, 0) + + return c.last() + }) + .then(function (results) { + c.checkResultsOrder([[1]]) + c.checkDuration(100) + + return Promise.all([ + limiter1.disconnect(false), + limiter2.disconnect(false) + ]) + }) + }) + + it('Should pass messages to all limiters in Cluster', function (done) { + c = makeTest({ + maxConcurrent: 1, + minTime: 100, + id: 'super-duper' + }) + var limiter1 = new Bottleneck({ + maxConcurrent: 1, + minTime: 100, + id: 'super-duper', + datastore: process.env.DATASTORE + }) + var limiter2 = new Bottleneck({ + maxConcurrent: 1, + minTime: 100, + id: 'nope', + datastore: process.env.DATASTORE + }) + var received = [] + + c.limiter.on('message', (msg) => { + received.push(1, msg) + }) + limiter1.on('message', (msg) => { + received.push(2, msg) + }) + limiter2.on('message', (msg) => { + received.push(3, msg) + }) + + Promise.all([c.limiter.ready(), limiter2.ready()]) + .then(function () { + limiter1.publish(555) + }) + + setTimeout(function () { + limiter1.disconnect() + limiter2.disconnect() + c.mustEqual(received.sort(), [1, 2, '555', '555']) + done() + }, 150) + }) + + it('Should pass messages to correct limiter after Group re-instantiations', function () { + c = makeTest() + var group = new Bottleneck.Group({ + maxConcurrent: 1, + minTime: 100, + datastore: process.env.DATASTORE + }) + var received = [] + + return new Promise(function (resolve, reject) { + var limiter = group.key('A') + + limiter.on('message', function (msg) { + received.push('1', msg) + return resolve() + }) + limiter.publish('Bonjour!') + }) + .then(function () { + return new Promise(function (resolve, reject) { + var limiter = group.key('B') + + limiter.on('message', function (msg) { + received.push('2', msg) + return resolve() + }) + limiter.publish('Comment allez-vous?') + }) + }) + .then(function () { + return group.deleteKey('A') + }) + .then(function () { + return new Promise(function (resolve, reject) { + var limiter = group.key('A') + + limiter.on('message', function (msg) { + received.push('3', msg) + return resolve() + }) + limiter.publish('Au revoir!') + }) + }) + .then(function () { + c.mustEqual(received, ['1', 'Bonjour!', '2', 'Comment allez-vous?', '3', 'Au revoir!']) + group.disconnect() + }) + }) + + it('Should have a default key TTL when using Groups', function () { + c = makeTest() + var group = new Bottleneck.Group({ + datastore: process.env.DATASTORE + }) + + return group.key('one').ready() + .then(function () { + var limiter = group.key('one') + var settings_key = limiterKeys(limiter)[0] + return runCommand(limiter, 'ttl', [settings_key]) + }) + .then(function (ttl) { + assert(ttl >= 290 && ttl <= 305) + }) + .then(function () { + return group.disconnect(false) + }) + }) + + it('Should support Groups and expire Redis keys', function () { + c = makeTest() + var group = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + minTime: 50, + timeout: 200 + }) + var limiter1 + var limiter2 + var limiter3 + + var t0 = Date.now() + var results = {} + var job = function (x) { + results[x] = Date.now() - t0 + return Promise.resolve() + } + + return c.limiter.ready() + .then(function () { + limiter1 = group.key('one') + limiter2 = group.key('two') + limiter3 = group.key('three') + + return Promise.all([limiter1.ready(), limiter2.ready(), limiter3.ready()]) + }) + .then(function () { + return Promise.all([countKeys(limiter1), countKeys(limiter2), countKeys(limiter3)]) + }) + .then(function (counts) { + c.mustEqual(counts, [5, 5, 5]) + return Promise.all([ + limiter1.schedule(job, 'a'), + limiter1.schedule(job, 'b'), + limiter1.schedule(job, 'c'), + limiter2.schedule(job, 'd'), + limiter2.schedule(job, 'e'), + limiter3.schedule(job, 'f') + ]) + }) + .then(function () { + c.mustEqual(Object.keys(results).length, 6) + assert(results.a < results.b) + assert(results.b < results.c) + assert(results.b - results.a >= 40) + assert(results.c - results.b >= 40) + + assert(results.d < results.e) + assert(results.e - results.d >= 40) + + assert(Math.abs(results.a - results.d) <= 10) + assert(Math.abs(results.d - results.f) <= 10) + assert(Math.abs(results.b - results.e) <= 10) + + return c.wait(400) + }) + .then(function () { + return Promise.all([countKeys(limiter1), countKeys(limiter2), countKeys(limiter3)]) + }) + .then(function (counts) { + c.mustEqual(counts, [0, 0, 0]) + c.mustEqual(group.keys().length, 0) + c.mustEqual(Object.keys(group.connection.limiters).length, 0) + return group.disconnect(false) + }) + + }) + + it('Should not recreate a key when running heartbeat', function () { + c = makeTest() + var group = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + maxConcurrent: 50, + minTime: 50, + timeout: 300, + heartbeatInterval: 5 + }) + var key = 'heartbeat' + + var limiter = group.key(key) + return c.pNoErrVal(limiter.schedule(c.promise, null, 1), 1) + .then(function () { + return limiter.done() + }) + .then(function (done) { + c.mustEqual(done, 1) + return c.wait(400) + }) + .then(function () { + return countKeys(limiter) + }) + .then(function (count) { + c.mustEqual(count, 0) + return group.disconnect(false) + }) + }) + + it('Should delete Redis key when manually deleting a group key', function () { + c = makeTest() + var group1 = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + maxConcurrent: 50, + minTime: 50, + timeout: 300 + }) + var group2 = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + maxConcurrent: 50, + minTime: 50, + timeout: 300 + }) + var key = 'deleted' + var limiter = group1.key(key) // only for countKeys() use + + return c.pNoErrVal(group1.key(key).schedule(c.promise, null, 1), 1) + .then(function () { + return c.pNoErrVal(group2.key(key).schedule(c.promise, null, 2), 2) + }) + .then(function () { + c.mustEqual(group1.keys().length, 1) + c.mustEqual(group2.keys().length, 1) + return group1.deleteKey(key) + }) + .then(function (deleted) { + c.mustEqual(deleted, true) + return countKeys(limiter) + }) + .then(function (count) { + c.mustEqual(count, 0) + c.mustEqual(group1.keys().length, 0) + c.mustEqual(group2.keys().length, 1) + return c.wait(200) + }) + .then(function () { + c.mustEqual(group1.keys().length, 0) + c.mustEqual(group2.keys().length, 0) + return Promise.all([ + group1.disconnect(false), + group2.disconnect(false) + ]) + }) + }) + + it('Should delete Redis keys from a group even when the local limiter is not present', function () { + c = makeTest() + var group1 = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + maxConcurrent: 50, + minTime: 50, + timeout: 300 + }) + var group2 = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + maxConcurrent: 50, + minTime: 50, + timeout: 300 + }) + var key = 'deleted-cluster-wide' + var limiter = group1.key(key) // only for countKeys() use + + return c.pNoErrVal(group1.key(key).schedule(c.promise, null, 1), 1) + .then(function () { + c.mustEqual(group1.keys().length, 1) + c.mustEqual(group2.keys().length, 0) + return group2.deleteKey(key) + }) + .then(function (deleted) { + c.mustEqual(deleted, true) + return countKeys(limiter) + }) + .then(function (count) { + c.mustEqual(count, 0) + c.mustEqual(group1.keys().length, 1) + c.mustEqual(group2.keys().length, 0) + return c.wait(200) + }) + .then(function () { + c.mustEqual(group1.keys().length, 0) + c.mustEqual(group2.keys().length, 0) + return Promise.all([ + group1.disconnect(false), + group2.disconnect(false) + ]) + }) + }) + + it('Should returns all Group keys in the cluster', async function () { + c = makeTest() + var group1 = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'same', + timeout: 3000 + }) + var group2 = new Bottleneck.Group({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'same', + timeout: 3000 + }) + var keys1 = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur'] + var keys2 = ['adipiscing', 'elit'] + var both = keys1.concat(keys2) + + await Promise.all(keys1.map((k) => group1.key(k).ready())) + await Promise.all(keys2.map((k) => group2.key(k).ready())) + + c.mustEqual(group1.keys().sort(), keys1.sort()) + c.mustEqual(group2.keys().sort(), keys2.sort()) + c.mustEqual( + (await group1.clusterKeys()).sort(), + both.sort() + ) + c.mustEqual( + (await group1.clusterKeys()).sort(), + both.sort() + ) + + var group3 = new Bottleneck.Group({ datastore: 'local' }) + c.mustEqual(await group3.clusterKeys(), []) + + await group1.disconnect(false) + await group2.disconnect(false) + }) + + it('Should queue up the least busy limiter', async function () { + c = makeTest() + var limiter1 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var limiter2 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var limiter3 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var limiter4 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var runningOrExecuting = function (limiter) { + var counts = limiter.counts() + return counts.RUNNING + counts.EXECUTING + } + + var resolve1, resolve2, resolve3, resolve4, resolve5, resolve6, resolve7 + var p1 = new Promise(function (resolve, reject) { + resolve1 = function (err, n) { resolve(n) } + }) + var p2 = new Promise(function (resolve, reject) { + resolve2 = function (err, n) { resolve(n) } + }) + var p3 = new Promise(function (resolve, reject) { + resolve3 = function (err, n) { resolve(n) } + }) + var p4 = new Promise(function (resolve, reject) { + resolve4 = function (err, n) { resolve(n) } + }) + var p5 = new Promise(function (resolve, reject) { + resolve5 = function (err, n) { resolve(n) } + }) + var p6 = new Promise(function (resolve, reject) { + resolve6 = function (err, n) { resolve(n) } + }) + var p7 = new Promise(function (resolve, reject) { + resolve7 = function (err, n) { resolve(n) } + }) + + await limiter1.schedule({id: '1'}, c.promise, null, 'A') + await limiter2.schedule({id: '2'}, c.promise, null, 'B') + await limiter3.schedule({id: '3'}, c.promise, null, 'C') + await limiter4.schedule({id: '4'}, c.promise, null, 'D') + + await limiter1.submit({id: 'A'}, c.slowJob, 50, null, 1, resolve1) + await limiter1.submit({id: 'B'}, c.slowJob, 500, null, 2, resolve2) + await limiter2.submit({id: 'C'}, c.slowJob, 550, null, 3, resolve3) + + c.mustEqual(runningOrExecuting(limiter1), 2) + c.mustEqual(runningOrExecuting(limiter2), 1) + + await limiter3.submit({id: 'D'}, c.slowJob, 50, null, 4, resolve4) + await limiter4.submit({id: 'E'}, c.slowJob, 50, null, 5, resolve5) + await limiter3.submit({id: 'F'}, c.slowJob, 50, null, 6, resolve6) + await limiter4.submit({id: 'G'}, c.slowJob, 50, null, 7, resolve7) + + c.mustEqual(limiter3.counts().QUEUED, 2) + c.mustEqual(limiter4.counts().QUEUED, 2) + + await Promise.all([p1, p2, p3, p4, p5, p6, p7]) + + c.checkResultsOrder([['A'],['B'],['C'],['D'],[1],[4],[5],[6],[7],[2],[3]]) + + await limiter1.disconnect(false) + await limiter2.disconnect(false) + await limiter3.disconnect(false) + await limiter4.disconnect(false) + }) + + it('Should pass the remaining capacity to other limiters', async function () { + c = makeTest() + var limiter1 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var limiter2 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var limiter3 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var limiter4 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'busy', + timeout: 3000, + maxConcurrent: 3, + trackDoneStatus: true + }) + var runningOrExecuting = function (limiter) { + var counts = limiter.counts() + return counts.RUNNING + counts.EXECUTING + } + var t3, t4 + + var resolve1, resolve2, resolve3, resolve4, resolve5 + var p1 = new Promise(function (resolve, reject) { + resolve1 = function (err, n) { resolve(n) } + }) + var p2 = new Promise(function (resolve, reject) { + resolve2 = function (err, n) { resolve(n) } + }) + var p3 = new Promise(function (resolve, reject) { + resolve3 = function (err, n) { t3 = Date.now(); resolve(n) } + }) + var p4 = new Promise(function (resolve, reject) { + resolve4 = function (err, n) { t4 = Date.now(); resolve(n) } + }) + var p5 = new Promise(function (resolve, reject) { + resolve5 = function (err, n) { resolve(n) } + }) + + await limiter1.schedule({id: '1'}, c.promise, null, 'A') + await limiter2.schedule({id: '2'}, c.promise, null, 'B') + await limiter3.schedule({id: '3'}, c.promise, null, 'C') + await limiter4.schedule({id: '4'}, c.promise, null, 'D') + + await limiter1.submit({id: 'A', weight: 2}, c.slowJob, 50, null, 1, resolve1) + await limiter2.submit({id: 'C'}, c.slowJob, 550, null, 2, resolve2) + + c.mustEqual(runningOrExecuting(limiter1), 1) + c.mustEqual(runningOrExecuting(limiter2), 1) + + await limiter3.submit({id: 'D'}, c.slowJob, 50, null, 3, resolve3) + await limiter4.submit({id: 'E'}, c.slowJob, 50, null, 4, resolve4) + await limiter4.submit({id: 'G'}, c.slowJob, 50, null, 5, resolve5) + + c.mustEqual(limiter3.counts().QUEUED, 1) + c.mustEqual(limiter4.counts().QUEUED, 2) + + await Promise.all([p1, p2, p3, p4, p5]) + + c.checkResultsOrder([['A'],['B'],['C'],['D'],[1],[3],[4],[5],[2]]) + + assert(Math.abs(t3 - t4) < 15) + + await limiter1.disconnect(false) + await limiter2.disconnect(false) + await limiter3.disconnect(false) + await limiter4.disconnect(false) + }) + + it('Should take the capacity and blacklist if the priority limiter is not responding', async function () { + c = makeTest() + var limiter1 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'crash', + timeout: 3000, + maxConcurrent: 1, + trackDoneStatus: true + }) + var limiter2 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'crash', + timeout: 3000, + maxConcurrent: 1, + trackDoneStatus: true + }) + var limiter3 = new Bottleneck({ + datastore: process.env.DATASTORE, + clearDatastore: true, + id: 'crash', + timeout: 3000, + maxConcurrent: 1, + trackDoneStatus: true + }) + + await limiter1.schedule({id: '1'}, c.promise, null, 'A') + await limiter2.schedule({id: '2'}, c.promise, null, 'B') + await limiter3.schedule({id: '3'}, c.promise, null, 'C') + + var resolve1, resolve2, resolve3 + var p1 = new Promise(function (resolve, reject) { + resolve1 = function (err, n) { resolve(n) } + }) + var p2 = new Promise(function (resolve, reject) { + resolve2 = function (err, n) { resolve(n) } + }) + var p3 = new Promise(function (resolve, reject) { + resolve3 = function (err, n) { resolve(n) } + }) + + await limiter1.submit({id: '4'}, c.slowJob, 100, null, 4, resolve1) + await limiter2.submit({id: '5'}, c.slowJob, 100, null, 5, resolve2) + await limiter3.submit({id: '6'}, c.slowJob, 100, null, 6, resolve3) + await limiter2.disconnect(false) + + await Promise.all([p1, p3]) + c.checkResultsOrder([['A'], ['B'], ['C'], [4], [6]]) + + await limiter1.disconnect(false) + await limiter2.disconnect(false) + await limiter3.disconnect(false) + }) + + }) +} diff --git a/node_modules/bottleneck/test/context.js b/node_modules/bottleneck/test/context.js new file mode 100644 index 0000000..8d498f3 --- /dev/null +++ b/node_modules/bottleneck/test/context.js @@ -0,0 +1,142 @@ +global.TEST = true +var Bottleneck = require('./bottleneck') +var assert = require('assert') + +module.exports = function (options={}) { + var mustEqual = function (a, b) { + var strA = JSON.stringify(a) + var strB = JSON.stringify(b) + if (strA !== strB) { + console.log(strA + ' !== ' + strB, (new Error('').stack)) + assert(strA === strB) + } + } + + var start + var calls = [] + + // set options.datastore + var setRedisClientOptions = function (options) { + options.clearDatastore = true + if (options.clientOptions == null) { + options.clientOptions = { + host: process.env.REDIS_HOST, + port: process.env.REDIS_PORT, + } + } + } + + if (options.datastore == null && process.env.DATASTORE === 'redis') { + options.datastore = 'redis' + setRedisClientOptions(options) + } else if (options.datastore == null && process.env.DATASTORE === 'ioredis') { + options.datastore = 'ioredis' + setRedisClientOptions(options) + } else { + options.datastore = 'local' + } + + var limiter = new Bottleneck(options) + // limiter.on("debug", function (str, args) { console.log(`${Date.now()-start} ${str} ${JSON.stringify(args)}`) }) + if (!options.errorEventsExpected) { + limiter.on("error", function (err) { + console.log('(CONTEXT) ERROR EVENT', err) + }) + } + limiter.ready().then(function (client) { + start = Date.now() + }) + var getResults = function () { + return { + elapsed: Date.now() - start, + callsDuration: calls.length > 0 ? calls[calls.length - 1].time : null, + calls: calls + } + } + + var context = { + job: function (err, ...result) { + var cb = result.pop() + calls.push({err: err, result: result, time: Date.now()-start}) + if (process.env.DEBUG) console.log(result, calls) + cb.apply({}, [err].concat(result)) + }, + slowJob: function (duration, err, ...result) { + setTimeout(function () { + var cb = result.pop() + calls.push({err: err, result: result, time: Date.now()-start}) + if (process.env.DEBUG) console.log(result, calls) + cb.apply({}, [err].concat(result)) + }, duration) + }, + promise: function (err, ...result) { + return new Promise(function (resolve, reject) { + if (process.env.DEBUG) console.log('In c.promise. Result: ', result) + calls.push({err: err, result: result, time: Date.now()-start}) + if (process.env.DEBUG) console.log(result, calls) + if (err === null) { + return resolve(result) + } else { + return reject(err) + } + }) + }, + slowPromise: function (duration, err, ...result) { + return new Promise(function (resolve, reject) { + setTimeout(function () { + if (process.env.DEBUG) console.log('In c.slowPromise. Result: ', result) + calls.push({err: err, result: result, time: Date.now()-start}) + if (process.env.DEBUG) console.log(result, calls) + if (err === null) { + return resolve(result) + } else { + return reject(err) + } + }, duration) + }) + }, + pNoErrVal: function (promise, ...expected) { + if (process.env.DEBUG) console.log('In c.pNoErrVal. Expected:', expected) + return promise.then(function (actual) { + mustEqual(actual, expected) + }) + }, + noErrVal: function (...expected) { + return function (err, ...actual) { + mustEqual(err, null) + mustEqual(actual, expected) + } + }, + last: function (options) { + var opt = options != null ? options : {} + return limiter.schedule(opt, function () { return Promise.resolve(getResults()) }) + .catch(function (err) { console.error("Error in context.last:", err)}) + }, + wait: function (wait) { + return new Promise(function (resolve, reject) { + setTimeout(resolve, wait) + }) + }, + limiter: limiter, + mustEqual: mustEqual, + mustExist: function (a) { assert(a != null) }, + results: getResults, + checkResultsOrder: function (order) { + mustEqual(order.length, calls.length) + for (var i = 0; i < Math.max(calls.length, order.length); i++) { + mustEqual(order[i], calls[i].result) + } + }, + checkDuration: function (shouldBe, minBound = 10) { + var results = getResults() + var min = shouldBe - minBound + var max = shouldBe + 50 + if (!(results.callsDuration > min && results.callsDuration < max)) { + console.error('Duration not around ' + shouldBe + '. Was ' + results.callsDuration) + } + assert(results.callsDuration > min && results.callsDuration < max) + } + } + + return context +} diff --git a/node_modules/bottleneck/test/general.js b/node_modules/bottleneck/test/general.js new file mode 100644 index 0000000..14aa63a --- /dev/null +++ b/node_modules/bottleneck/test/general.js @@ -0,0 +1,867 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') +var child_process = require('child_process') + +describe('General', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + if ( + process.env.DATASTORE !== 'redis' && process.env.DATASTORE !== 'ioredis' && + process.env.BUILD !== 'es5' && process.env.BUILD !== 'light' + ) { + it('Should not leak memory on instantiation', async function () { + c = makeTest() + this.timeout(8000) + const { iterate } = require('leakage') + + const result = await iterate.async(async () => { + const limiter = new Bottleneck({ datastore: 'local' }) + await limiter.ready() + return limiter.disconnect(false) + }, { iterations: 25 }) + + }) + + it('Should not leak memory running jobs', async function () { + c = makeTest() + this.timeout(12000) + const { iterate } = require('leakage') + const limiter = new Bottleneck({ datastore: 'local', maxConcurrent: 1, minTime: 10 }) + await limiter.ready() + var ctr = 0 + var i = 0 + + const result = await iterate.async(async () => { + await limiter.schedule(function (zero, one) { + i = i + zero + one + }, 0, 1) + await limiter.schedule(function (zero, one) { + i = i + zero + one + }, 0, 1) + }, { iterations: 25 }) + c.mustEqual(i, 302) + }) + } + + it('Should prompt to upgrade', function () { + c = makeTest() + try { + var limiter = new Bottleneck(1, 250) + } catch (err) { + c.mustEqual(err.message, 'Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you\'re upgrading from Bottleneck v1.') + } + }) + + it('Should allow null capacity', function () { + c = makeTest({ id: 'null', minTime: 0 }) + return c.limiter.updateSettings({ minTime: 10 }) + }) + + it('Should keep scope', async function () { + c = makeTest({ maxConcurrent: 1 }) + + class Job { + constructor() { + this.value = 5 + } + action(x) { + return this.value + x + } + } + var job = new Job() + + c.mustEqual(6, await c.limiter.schedule(() => job.action.bind(job)(1))) + c.mustEqual(7, await c.limiter.wrap(job.action.bind(job))(2)) + }) + + it('Should pass multiple arguments back even on errors when using submit()', function (done) { + c = makeTest({ maxConcurrent: 1 }) + + c.limiter.submit(c.job, new Error('welp'), 1, 2, function (err, x, y) { + c.mustEqual(err.message, 'welp') + c.mustEqual(x, 1) + c.mustEqual(y, 2) + done() + }) + }) + + it('Should expose the Events library', function (cb) { + c = makeTest() + + class Hello { + constructor() { + this.emitter = new Bottleneck.Events(this) + } + + doSomething() { + this.emitter.trigger('info', 'hello', 'world', 123) + return 5 + } + } + + const myObject = new Hello(); + myObject.on('info', (...args) => { + c.mustEqual(args, ['hello', 'world', 123]) + cb() + }) + myObject.doSomething() + c.mustEqual(myObject.emitter.listenerCount('info'), 1) + c.mustEqual(myObject.emitter.listenerCount('nothing'), 0) + + myObject.on('blah', '') + myObject.on('blah', null) + myObject.on('blah') + return myObject.emitter.trigger('blah') + }) + + describe('Counts and statuses', function () { + it('Should check() and return the queued count with and without a priority value', async function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + c.mustEqual(await c.limiter.check(), true) + + c.mustEqual(c.limiter.queued(), 0) + c.mustEqual(await c.limiter.clusterQueued(), 0) + + await c.limiter.submit({id: 1}, c.slowJob, 50, null, 1, c.noErrVal(1)) + c.mustEqual(c.limiter.queued(), 0) // It's already running + + c.mustEqual(await c.limiter.check(), false) + + await c.limiter.submit({id: 2}, c.slowJob, 50, null, 2, c.noErrVal(2)) + c.mustEqual(c.limiter.queued(), 1) + c.mustEqual(await c.limiter.clusterQueued(), 1) + c.mustEqual(c.limiter.queued(1), 0) + c.mustEqual(c.limiter.queued(5), 1) + + await c.limiter.submit({id: 3}, c.slowJob, 50, null, 3, c.noErrVal(3)) + c.mustEqual(c.limiter.queued(), 2) + c.mustEqual(await c.limiter.clusterQueued(), 2) + c.mustEqual(c.limiter.queued(1), 0) + c.mustEqual(c.limiter.queued(5), 2) + + await c.limiter.submit({id: 4}, c.slowJob, 50, null, 4, c.noErrVal(4)) + c.mustEqual(c.limiter.queued(), 3) + c.mustEqual(await c.limiter.clusterQueued(), 3) + c.mustEqual(c.limiter.queued(1), 0) + c.mustEqual(c.limiter.queued(5), 3) + + await c.limiter.submit({priority: 1, id: 5}, c.job, null, 5, c.noErrVal(5)) + c.mustEqual(c.limiter.queued(), 4) + c.mustEqual(await c.limiter.clusterQueued(), 4) + c.mustEqual(c.limiter.queued(1), 1) + c.mustEqual(c.limiter.queued(5), 3) + + var results = await c.last() + c.mustEqual(c.limiter.queued(), 0) + c.mustEqual(await c.limiter.clusterQueued(), 0) + c.checkResultsOrder([[1], [5], [2], [3], [4]]) + c.checkDuration(450) + }) + + it('Should return the running and done counts', function () { + c = makeTest({maxConcurrent: 5, minTime: 0}) + + return Promise.all([c.limiter.running(), c.limiter.done()]) + .then(function ([running, done]) { + c.mustEqual(running, 0) + c.mustEqual(done, 0) + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 1 }, c.slowPromise, 100, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({ weight: 3, id: 2 }, c.slowPromise, 200, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 3 }, c.slowPromise, 100, null, 3), 3) + + return c.limiter.schedule({ weight: 0, id: 4 }, c.promise, null) + }) + .then(function () { + return Promise.all([c.limiter.running(), c.limiter.done()]) + }) + .then(function ([running, done]) { + c.mustEqual(running, 5) + c.mustEqual(done, 0) + return c.wait(125) + }) + .then(function () { + return Promise.all([c.limiter.running(), c.limiter.done()]) + }) + .then(function ([running, done]) { + c.mustEqual(running, 3) + c.mustEqual(done, 2) + return c.wait(100) + }) + .then(function () { + return Promise.all([c.limiter.running(), c.limiter.done()]) + }) + .then(function ([running, done]) { + c.mustEqual(running, 0) + c.mustEqual(done, 5) + return c.last() + }) + .then(function (results) { + c.checkDuration(200) + c.checkResultsOrder([[], [1], [3], [2]]) + }) + }) + + it('Should refuse duplicate Job IDs', async function () { + c = makeTest({maxConcurrent: 2, minTime: 100, trackDoneStatus: true}) + + try { + await c.limiter.schedule({ id: 'a' }, c.promise, null, 1) + await c.limiter.schedule({ id: 'b' }, c.promise, null, 2) + await c.limiter.schedule({ id: 'a' }, c.promise, null, 3) + } catch (e) { + c.mustEqual(e.message, 'A job with the same id already exists (id=a)') + } + }) + + it('Should return job statuses', function () { + c = makeTest({maxConcurrent: 2, minTime: 100}) + + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 0, RUNNING: 0, EXECUTING: 0 }) + + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 1 }, c.slowPromise, 100, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 2 }, c.slowPromise, 200, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({ weight: 2, id: 3 }, c.slowPromise, 100, null, 3), 3) + c.mustEqual(c.limiter.counts(), { RECEIVED: 3, QUEUED: 0, RUNNING: 0, EXECUTING: 0 }) + + return c.wait(50) + .then(function () { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 1, RUNNING: 1, EXECUTING: 1 }) + c.mustEqual(c.limiter.jobStatus(1), 'EXECUTING') + c.mustEqual(c.limiter.jobStatus(2), 'RUNNING') + c.mustEqual(c.limiter.jobStatus(3), 'QUEUED') + + return c.last() + }) + .then(function (results) { + c.checkDuration(400) + c.checkResultsOrder([[1], [2], [3]]) + }) + }) + + it('Should return job statuses, including DONE', function () { + c = makeTest({maxConcurrent: 2, minTime: 100, trackDoneStatus: true}) + + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 0 }) + + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 1 }, c.slowPromise, 100, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 2 }, c.slowPromise, 200, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({ weight: 2, id: 3 }, c.slowPromise, 100, null, 3), 3) + c.mustEqual(c.limiter.counts(), { RECEIVED: 3, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 0 }) + + return c.wait(50) + .then(function () { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 1, RUNNING: 1, EXECUTING: 1, DONE: 0 }) + c.mustEqual(c.limiter.jobStatus(1), 'EXECUTING') + c.mustEqual(c.limiter.jobStatus(2), 'RUNNING') + c.mustEqual(c.limiter.jobStatus(3), 'QUEUED') + + return c.wait(100) + }) + .then(function () { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 1, RUNNING: 0, EXECUTING: 1, DONE: 1 }) + c.mustEqual(c.limiter.jobStatus(1), 'DONE') + c.mustEqual(c.limiter.jobStatus(2), 'EXECUTING') + c.mustEqual(c.limiter.jobStatus(3), 'QUEUED') + + return c.last() + }) + .then(function (results) { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 4 }) + c.checkDuration(400) + c.checkResultsOrder([[1], [2], [3]]) + }) + }) + + it('Should return jobs for a status', function () { + c = makeTest({maxConcurrent: 2, minTime: 100, trackDoneStatus: true}) + + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 0 }) + + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 1 }, c.slowPromise, 100, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 2 }, c.slowPromise, 200, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({ weight: 2, id: 3 }, c.slowPromise, 100, null, 3), 3) + c.mustEqual(c.limiter.counts(), { RECEIVED: 3, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 0 }) + + c.mustEqual(c.limiter.jobs(), ['1', '2', '3']) + c.mustEqual(c.limiter.jobs('RECEIVED'), ['1', '2', '3']) + + return c.wait(50) + .then(function () { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 1, RUNNING: 1, EXECUTING: 1, DONE: 0 }) + c.mustEqual(c.limiter.jobs('EXECUTING'), ['1']) + c.mustEqual(c.limiter.jobs('RUNNING'), ['2']) + c.mustEqual(c.limiter.jobs('QUEUED'), ['3']) + + return c.wait(100) + }) + .then(function () { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 1, RUNNING: 0, EXECUTING: 1, DONE: 1 }) + c.mustEqual(c.limiter.jobs('DONE'), ['1']) + c.mustEqual(c.limiter.jobs('EXECUTING'), ['2']) + c.mustEqual(c.limiter.jobs('QUEUED'), ['3']) + + return c.last() + }) + .then(function (results) { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 4 }) + c.checkDuration(400) + c.checkResultsOrder([[1], [2], [3]]) + }) + }) + + it('Should trigger events on status changes', function () { + c = makeTest({maxConcurrent: 2, minTime: 100, trackDoneStatus: true}) + var onReceived = 0 + var onQueued = 0 + var onScheduled = 0 + var onExecuting = 0 + var onDone = 0 + c.limiter.on('received', (info) => { + c.mustEqual(Object.keys(info).sort(), ['args', 'options']) + onReceived++ + }) + c.limiter.on('queued', (info) => { + c.mustEqual(Object.keys(info).sort(), ['args', 'blocked', 'options', 'reachedHWM']) + onQueued++ + }) + c.limiter.on('scheduled', (info) => { + c.mustEqual(Object.keys(info).sort(), ['args', 'options']) + onScheduled++ + }) + c.limiter.on('executing', (info) => { + c.mustEqual(Object.keys(info).sort(), ['args', 'options', 'retryCount']) + onExecuting++ + }) + c.limiter.on('done', (info) => { + c.mustEqual(Object.keys(info).sort(), ['args', 'options', 'retryCount']) + onDone++ + }) + + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 0 }) + + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 1 }, c.slowPromise, 100, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 2 }, c.slowPromise, 200, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({ weight: 2, id: 3 }, c.slowPromise, 100, null, 3), 3) + c.mustEqual(c.limiter.counts(), { RECEIVED: 3, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 0 }) + + c.mustEqual([onReceived, onQueued, onScheduled, onExecuting, onDone], [3, 0, 0, 0, 0]) + + return c.wait(50) + .then(function () { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 1, RUNNING: 1, EXECUTING: 1, DONE: 0 }) + c.mustEqual([onReceived, onQueued, onScheduled, onExecuting, onDone], [3, 3, 2, 1, 0]) + + return c.wait(100) + }) + .then(function () { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 1, RUNNING: 0, EXECUTING: 1, DONE: 1 }) + c.mustEqual(c.limiter.jobs('DONE'), ['1']) + c.mustEqual(c.limiter.jobs('EXECUTING'), ['2']) + c.mustEqual(c.limiter.jobs('QUEUED'), ['3']) + c.mustEqual([onReceived, onQueued, onScheduled, onExecuting, onDone], [3, 3, 2, 2, 1]) + + return c.last() + }) + .then(function (results) { + c.mustEqual(c.limiter.counts(), { RECEIVED: 0, QUEUED: 0, RUNNING: 0, EXECUTING: 0, DONE: 4 }) + c.mustEqual([onReceived, onQueued, onScheduled, onExecuting, onDone], [4, 4, 4, 4, 4]) + c.checkDuration(400) + c.checkResultsOrder([[1], [2], [3]]) + }) + }) + }) + + describe('Events', function () { + it('Should return itself', function () { + c = makeTest({ id: 'test-limiter' }) + + var returned = c.limiter.on('ready', function () { }) + c.mustEqual(returned.id, 'test-limiter') + }) + + it('Should fire events on empty queue', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + var calledEmpty = 0 + var calledIdle = 0 + var calledDepleted = 0 + + c.limiter.on('empty', function () { calledEmpty++ }) + c.limiter.on('idle', function () { calledIdle++ }) + c.limiter.on('depleted', function () { calledDepleted++ }) + + return c.pNoErrVal(c.limiter.schedule({id: 1}, c.slowPromise, 50, null, 1), 1) + .then(function () { + c.mustEqual(calledEmpty, 1) + c.mustEqual(calledIdle, 1) + return Promise.all([ + c.pNoErrVal(c.limiter.schedule({id: 2}, c.slowPromise, 50, null, 2), 2), + c.pNoErrVal(c.limiter.schedule({id: 3}, c.slowPromise, 50, null, 3), 3) + ]) + }) + .then(function () { + return c.limiter.submit({id: 4}, c.slowJob, 50, null, 4, null) + }) + .then(function () { + c.checkDuration(250) + c.checkResultsOrder([[1], [2], [3]]) + c.mustEqual(calledEmpty, 3) + c.mustEqual(calledIdle, 2) + c.mustEqual(calledDepleted, 0) + return c.last() + }) + }) + + it('Should fire events once', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + var calledEmptyOnce = 0 + var calledIdleOnce = 0 + var calledEmpty = 0 + var calledIdle = 0 + var calledDepleted = 0 + + c.limiter.once('empty', function () { calledEmptyOnce++ }) + c.limiter.once('idle', function () { calledIdleOnce++ }) + c.limiter.on('empty', function () { calledEmpty++ }) + c.limiter.on('idle', function () { calledIdle++ }) + c.limiter.on('depleted', function () { calledDepleted++ }) + + c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 1), 1) + + return c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2) + .then(function () { + c.mustEqual(calledEmptyOnce, 1) + c.mustEqual(calledIdleOnce, 1) + c.mustEqual(calledEmpty, 1) + c.mustEqual(calledIdle, 1) + return c.pNoErrVal(c.limiter.schedule(c.promise, null, 3), 3) + }) + .then(function () { + c.checkDuration(200) + c.checkResultsOrder([[1], [2], [3]]) + c.mustEqual(calledEmptyOnce, 1) + c.mustEqual(calledIdleOnce, 1) + c.mustEqual(calledEmpty, 2) + c.mustEqual(calledIdle, 2) + c.mustEqual(calledDepleted, 0) + }) + }) + + it('Should support faulty event listeners', function (done) { + c = makeTest({maxConcurrent: 1, minTime: 100, errorEventsExpected: true}) + var calledError = 0 + + c.limiter.on('error', function (err) { + calledError++ + if (err.message === 'Oh noes!' && calledError === 1) { + done() + } + }) + c.limiter.on('empty', function () { + throw new Error('Oh noes!') + }) + + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1) + }) + + it('Should wait for async event listeners', function (done) { + c = makeTest({maxConcurrent: 1, minTime: 100, errorEventsExpected: true}) + var calledError = 0 + + c.limiter.on('error', function (err) { + calledError++ + if (err.message === 'It broke!' && calledError === 1) { + done() + } + }) + c.limiter.on('empty', function () { + return c.slowPromise(100, null, 1, 2) + .then(function (x) { + c.mustEqual(x, [1, 2]) + return Promise.reject(new Error('It broke!')) + }) + }) + + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1) + }) + }) + + describe('High water limit', function () { + it('Should support highWater set to 0', function () { + c = makeTest({maxConcurrent: 1, minTime: 0, highWater: 0, rejectOnDrop: false}) + + var first = c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 1), 1) + c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 2), 2) + c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 3), 3) + c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 4), 4) + + return first + .then(function () { + return c.last({ weight: 0 }) + }) + .then(function (results) { + c.checkDuration(50) + c.checkResultsOrder([[1]]) + }) + }) + + it('Should support highWater set to 1', function () { + c = makeTest({maxConcurrent: 1, minTime: 0, highWater: 1, rejectOnDrop: false}) + + var first = c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 1), 1) + c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 2), 2) + c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 3), 3) + var last = c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 4), 4) + + return Promise.all([first, last]) + .then(function () { + return c.last({ weight: 0 }) + }) + .then(function (results) { + c.checkDuration(100) + c.checkResultsOrder([[1], [4]]) + }) + }) + }) + + describe('Weight', function () { + it('Should not add jobs with a weight above the maxConcurrent', function () { + c = makeTest({maxConcurrent: 2}) + + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({ weight: 2 }, c.promise, null, 2), 2) + + return c.limiter.schedule({ weight: 3 }, c.promise, null, 3) + .catch(function (err) { + c.mustEqual(err.message, 'Impossible to add a job having a weight of 3 to a limiter having a maxConcurrent setting of 2') + return c.last() + }) + .then(function (results) { + c.checkDuration(0) + c.checkResultsOrder([[1], [2]]) + }) + }) + + + it('Should support custom job weights', function () { + c = makeTest({maxConcurrent: 2}) + + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.slowPromise, 100, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({ weight: 2 }, c.slowPromise, 200, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.slowPromise, 100, null, 3), 3) + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.slowPromise, 100, null, 4), 4) + c.pNoErrVal(c.limiter.schedule({ weight: 0 }, c.slowPromise, 100, null, 5), 5) + + return c.last() + .then(function (results) { + c.checkDuration(400) + c.checkResultsOrder([[1], [2], [3], [4], [5]]) + }) + }) + + it('Should overflow at the correct rate', function () { + c = makeTest({ + maxConcurrent: 2, + reservoir: 3 + }) + + var calledDepleted = 0 + var emptyArguments = [] + c.limiter.on('depleted', function (empty) { + emptyArguments.push(empty) + calledDepleted++ + }) + + var p1 = c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 1 }, c.slowPromise, 100, null, 1), 1) + var p2 = c.pNoErrVal(c.limiter.schedule({ weight: 2, id: 2 }, c.slowPromise, 150, null, 2), 2) + var p3 = c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 3 }, c.slowPromise, 100, null, 3), 3) + var p4 = c.pNoErrVal(c.limiter.schedule({ weight: 1, id: 4 }, c.slowPromise, 100, null, 4), 4) + + return Promise.all([p1, p2]) + .then(function () { + c.mustEqual(c.limiter.queued(), 2) + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + c.mustEqual(calledDepleted, 1) + return c.limiter.incrementReservoir(1) + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 1) + return c.last({ priority: 1, weight: 0 }) + }) + .then(function (results) { + c.mustEqual(calledDepleted, 3) + c.mustEqual(c.limiter.queued(), 1) + c.checkDuration(250) + c.checkResultsOrder([[1], [2]]) + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + return c.limiter.updateSettings({ reservoir: 1 }) + }) + .then(function () { + return Promise.all([p3, p4]) + }) + .then(function () { + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + c.mustEqual(calledDepleted, 4) + c.mustEqual(emptyArguments, [false, false, false, true]) + }) + }) + }) + + describe('Expiration', function () { + it('Should cancel jobs', function () { + c = makeTest({ maxConcurrent: 2 }) + var t0 = Date.now() + + return Promise.all([ + c.pNoErrVal(c.limiter.schedule({ id: 'very-slow-no-expiration' }, c.slowPromise, 150, null, 1), 1), + + c.limiter.schedule({ expiration: 50, id: 'slow-with-expiration' }, c.slowPromise, 75, null, 2) + .then(function () { + return Promise.reject(new Error("Should have timed out.")) + }) + .catch(function (err) { + c.mustEqual(err.message, 'This job timed out after 50 ms.') + var duration = Date.now() - t0 + assert(duration > 45 && duration < 80) + + return Promise.all([c.limiter.running(), c.limiter.done()]) + }) + .then(function ([running, done]) { + c.mustEqual(running, 1) + c.mustEqual(done, 1) + }) + + ]) + .then(function () { + var duration = Date.now() - t0 + assert(duration > 145 && duration < 180) + return Promise.all([c.limiter.running(), c.limiter.done()]) + }) + .then(function ([running, done]) { + c.mustEqual(running, 0) + c.mustEqual(done, 2) + }) + }) + }) + + describe('Pubsub', function () { + it('Should pass strings', function (done) { + c = makeTest({ maxConcurrent: 2 }) + + c.limiter.on('message', function (msg) { + c.mustEqual(msg, 'hello') + done() + }) + + c.limiter.publish('hello') + }) + + it('Should pass objects', function (done) { + c = makeTest({ maxConcurrent: 2 }) + var obj = { + array: ['abc', true], + num: 235.59 + } + + c.limiter.on('message', function (msg) { + c.mustEqual(JSON.parse(msg), obj) + done() + }) + + c.limiter.publish(JSON.stringify(obj)) + }) + }) + + describe('Reservoir Refresh', function () { + it('Should auto-refresh the reservoir', function () { + c = makeTest({ + reservoir: 8, + reservoirRefreshInterval: 150, + reservoirRefreshAmount: 5, + heartbeatInterval: 75 // not for production use + }) + var calledDepleted = 0 + + c.limiter.on('depleted', function () { + calledDepleted++ + }) + + return Promise.all([ + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.promise, null, 1), 1), + c.pNoErrVal(c.limiter.schedule({ weight: 2 }, c.promise, null, 2), 2), + c.pNoErrVal(c.limiter.schedule({ weight: 3 }, c.promise, null, 3), 3), + c.pNoErrVal(c.limiter.schedule({ weight: 4 }, c.promise, null, 4), 4), + c.pNoErrVal(c.limiter.schedule({ weight: 5 }, c.promise, null, 5), 5) + ]) + .then(function () { + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + return c.last({ weight: 0, priority: 9 }) + }) + .then(function (results) { + c.checkResultsOrder([[1], [2], [3], [4], [5]]) + c.mustEqual(calledDepleted, 2) + c.checkDuration(300) + }) + }) + + it('Should allow staggered X by Y type usage', function () { + c = makeTest({ + reservoir: 2, + reservoirRefreshInterval: 150, + reservoirRefreshAmount: 2, + heartbeatInterval: 75 // not for production use + }) + + return Promise.all([ + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 3), 3), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 4), 4) + ]) + .then(function () { + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + return c.last({ weight: 0, priority: 9 }) + }) + .then(function (results) { + c.checkResultsOrder([[1], [2], [3], [4]]) + c.checkDuration(150) + }) + }) + + it('Should keep process alive until queue is empty', function (done) { + c = makeTest() + var options = { + cwd: process.cwd() + '/test/spawn', + timeout: 1000 + } + child_process.exec('node refreshKeepAlive.js', options, function (err, stdout, stderr) { + c.mustEqual(stdout, '[0][0][2][2]') + c.mustEqual(stderr, '') + done(err) + }) + }) + + }) + + describe('Reservoir Increase', function () { + it('Should auto-increase the reservoir', async function () { + c = makeTest({ + reservoir: 3, + reservoirIncreaseInterval: 150, + reservoirIncreaseAmount: 5, + heartbeatInterval: 75 // not for production use + }) + var calledDepleted = 0 + + c.limiter.on('depleted', function () { + calledDepleted++ + }) + + await Promise.all([ + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.promise, null, 1), 1), + c.pNoErrVal(c.limiter.schedule({ weight: 2 }, c.promise, null, 2), 2), + c.pNoErrVal(c.limiter.schedule({ weight: 3 }, c.promise, null, 3), 3), + c.pNoErrVal(c.limiter.schedule({ weight: 4 }, c.promise, null, 4), 4), + c.pNoErrVal(c.limiter.schedule({ weight: 5 }, c.promise, null, 5), 5) + ]) + const reservoir = await c.limiter.currentReservoir() + c.mustEqual(reservoir, 3) + + const results = await c.last({ weight: 0, priority: 9 }) + c.checkResultsOrder([[1], [2], [3], [4], [5]]) + c.mustEqual(calledDepleted, 1) + c.checkDuration(450) + }) + + it('Should auto-increase the reservoir up to a maximum', async function () { + c = makeTest({ + reservoir: 3, + reservoirIncreaseInterval: 150, + reservoirIncreaseAmount: 5, + reservoirIncreaseMaximum: 6, + heartbeatInterval: 75 // not for production use + }) + var calledDepleted = 0 + + c.limiter.on('depleted', function () { + calledDepleted++ + }) + + await Promise.all([ + c.pNoErrVal(c.limiter.schedule({ weight: 1 }, c.promise, null, 1), 1), + c.pNoErrVal(c.limiter.schedule({ weight: 2 }, c.promise, null, 2), 2), + c.pNoErrVal(c.limiter.schedule({ weight: 3 }, c.promise, null, 3), 3), + c.pNoErrVal(c.limiter.schedule({ weight: 4 }, c.promise, null, 4), 4), + c.pNoErrVal(c.limiter.schedule({ weight: 5 }, c.promise, null, 5), 5) + ]) + const reservoir = await c.limiter.currentReservoir() + c.mustEqual(reservoir, 1) + + const results = await c.last({ weight: 0, priority: 9 }) + c.checkResultsOrder([[1], [2], [3], [4], [5]]) + c.mustEqual(calledDepleted, 1) + c.checkDuration(450) + }) + + it('Should allow staggered X by Y type usage', function () { + c = makeTest({ + reservoir: 2, + reservoirIncreaseInterval: 150, + reservoirIncreaseAmount: 2, + heartbeatInterval: 75 // not for production use + }) + + return Promise.all([ + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 3), 3), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 4), 4) + ]) + .then(function () { + return c.limiter.currentReservoir() + }) + .then(function (reservoir) { + c.mustEqual(reservoir, 0) + return c.last({ weight: 0, priority: 9 }) + }) + .then(function (results) { + c.checkResultsOrder([[1], [2], [3], [4]]) + c.checkDuration(150) + }) + }) + + it('Should keep process alive until queue is empty', function (done) { + c = makeTest() + var options = { + cwd: process.cwd() + '/test/spawn', + timeout: 1000 + } + child_process.exec('node increaseKeepAlive.js', options, function (err, stdout, stderr) { + c.mustEqual(stdout, '[0][0][2][2]') + c.mustEqual(stderr, '') + done(err) + }) + }) + }) + +}) diff --git a/node_modules/bottleneck/test/group.js b/node_modules/bottleneck/test/group.js new file mode 100644 index 0000000..5c21ab6 --- /dev/null +++ b/node_modules/bottleneck/test/group.js @@ -0,0 +1,255 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') + +describe('Group', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should create limiters', function (done) { + c = makeTest() + var group = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100 + }) + + var results = [] + + var job = function (...result) { + results.push(result) + return new Promise(function (resolve, reject) { + setTimeout(function () { + return resolve() + }, 50) + }) + } + + group.key('A').schedule(job, 1, 2) + group.key('A').schedule(job, 3) + group.key('A').schedule(job, 4) + setTimeout(function () { + group.key('B').schedule(job, 5) + }, 20) + setTimeout(function () { + group.key('C').schedule(job, 6) + group.key('C').schedule(job, 7) + }, 40) + + group.key('A').submit(function (cb) { + c.mustEqual(results, [[1,2], [5], [6], [3], [7], [4]]) + cb() + done() + }, null) + }) + + it('Should set up the limiter IDs (default)', function () { + c = makeTest() + var group = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100 + }) + + c.mustEqual(group.key('A').id, 'group-key-A') + c.mustEqual(group.key('B').id, 'group-key-B') + c.mustEqual(group.key('XYZ').id, 'group-key-XYZ') + + var ids = group.keys().map(function (key) { + var limiter = group.key(key) + c.mustEqual(limiter._store.timeout, group.timeout) + return limiter.id + }) + c.mustEqual(ids.sort(), ['group-key-A', 'group-key-B', 'group-key-XYZ']) + }) + + it('Should set up the limiter IDs (custom)', function () { + c = makeTest() + var group = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100, + id: 'custom-id' + }) + + c.mustEqual(group.key('A').id, 'custom-id-A') + c.mustEqual(group.key('B').id, 'custom-id-B') + c.mustEqual(group.key('XYZ').id, 'custom-id-XYZ') + + var ids = group.keys().map(function (key) { + var limiter = group.key(key) + c.mustEqual(limiter._store.timeout, group.timeout) + return limiter.id + }) + c.mustEqual(ids.sort(), ['custom-id-A', 'custom-id-B', 'custom-id-XYZ']) + }) + + it('Should pass new limiter to \'created\' event', function () { + c = makeTest() + var group = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100 + }) + + var keys = [] + var ids = [] + var promises = [] + group.on('created', function (created, key) { + keys.push(key) + promises.push( + created.updateSettings({ id: key }) + .then(function (limiter) { + ids.push(limiter.id) + }) + ) + }) + + group.key('A') + group.key('B') + group.key('A') + group.key('B') + group.key('B') + group.key('BB') + group.key('C') + group.key('A') + + return Promise.all(promises) + .then(function () { + c.mustEqual(keys, ids) + return c.limiter.ready() + }) + + }) + + it('Should pass error on failure', function (done) { + var failureMessage = 'SOMETHING BLEW UP!!' + c = makeTest() + var group = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100 + }) + c.mustEqual(Object.keys(group.limiters), []) + + var results = [] + + var job = function (...result) { + results.push(result) + return new Promise(function (resolve, reject) { + setTimeout(function () { + return resolve() + }, 50) + }) + } + + group.key('A').schedule(job, 1, 2) + group.key('A').schedule(job, 3) + group.key('A').schedule(job, 4) + group.key('B').schedule(() => Promise.reject(new Error(failureMessage))) + .catch(function (err) { + results.push(['CAUGHT', err.message]) + }) + setTimeout(function () { + group.key('C').schedule(job, 6) + group.key('C').schedule(job, 7) + }, 40) + + + group.key('A').submit(function (cb) { + c.mustEqual(results, [[1,2], ['CAUGHT', failureMessage], [6], [3], [7], [4]]) + cb() + done() + }, null) + }) + + it('Should update its timeout', function () { + c = makeTest() + var group1 = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100 + }) + var group2 = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100, timeout: 5000 + }) + + c.mustEqual(group1.timeout, 300000) + c.mustEqual(group2.timeout, 5000) + + var p1 = group1.updateSettings({ timeout: 123 }) + var p2 = group2.updateSettings({ timeout: 456 }) + return Promise.all([p1, p2]) + .then(function () { + c.mustEqual(group1.timeout, 123) + c.mustEqual(group2.timeout, 456) + }) + }) + + it('Should update its limiter options', function () { + c = makeTest() + var group = new Bottleneck.Group({ + maxConcurrent: 1, minTime: 100 + }) + + var limiter1 = group.key('AAA') + c.mustEqual(limiter1._store.storeOptions.minTime, 100) + + group.updateSettings({ minTime: 200 }) + c.mustEqual(limiter1._store.storeOptions.minTime, 100) + + var limiter2 = group.key('BBB') + c.mustEqual(limiter2._store.storeOptions.minTime, 200) + }) + + it('Should support keys(), limiters(), deleteKey()', function () { + c = makeTest() + var group1 = new Bottleneck.Group({ + maxConcurrent: 1 + }) + var KEY_A = "AAA" + var KEY_B = "BBB" + + return Promise.all([ + c.pNoErrVal(group1.key(KEY_A).schedule(c.promise, null, 1), 1), + c.pNoErrVal(group1.key(KEY_B).schedule(c.promise, null, 2), 2) + ]) + .then(function () { + var keys = group1.keys() + var limiters = group1.limiters() + c.mustEqual(keys, [KEY_A, KEY_B]) + c.mustEqual(limiters.length, 2) + + limiters.forEach(function (limiter, i) { + c.mustEqual(limiter.key, keys[i]) + assert(limiter.limiter instanceof Bottleneck) + }) + + return group1.deleteKey(KEY_A) + }) + .then(function (deleted) { + c.mustEqual(deleted, true) + c.mustEqual(group1.keys().length, 1) + return group1.deleteKey(KEY_A) + }) + .then(function (deleted) { + c.mustEqual(deleted, false) + c.mustEqual(group1.keys().length, 1) + }) + }) + + it('Should call autocleanup', function () { + var KEY = 'test-key' + var group = new Bottleneck.Group({ + maxConcurrent: 1 + }) + group.updateSettings({ timeout: 50 }) + c = makeTest({ id: 'something', timeout: group.timeout }) + + group.instances[KEY] = c.limiter + return group.key(KEY).schedule(function () { + return Promise.resolve() + }) + .then(function () { + assert(group.instances[KEY] != null) + return new Promise(function (resolve, reject) { + setTimeout(resolve, 100) + }) + }) + .then(function () { + assert(group.instances[KEY] == null) + }) + }) + +}) diff --git a/node_modules/bottleneck/test/ioredis.js b/node_modules/bottleneck/test/ioredis.js new file mode 100644 index 0000000..3a68d84 --- /dev/null +++ b/node_modules/bottleneck/test/ioredis.js @@ -0,0 +1,135 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') +var Redis = require('ioredis') + +if (process.env.DATASTORE === 'ioredis') { + describe('ioredis-only', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should accept ioredis lib override', function () { + c = makeTest({ + maxConcurrent: 2, + Redis, + clientOptions: {}, + clusterNodes: [{ + host: process.env.REDIS_HOST, + port: process.env.REDIS_PORT + }] + }) + + c.mustEqual(c.limiter.datastore, 'ioredis') + }) + + it('Should connect in Redis Cluster mode', function () { + c = makeTest({ + maxConcurrent: 2, + clientOptions: {}, + clusterNodes: [{ + host: process.env.REDIS_HOST, + port: process.env.REDIS_PORT + }] + }) + + c.mustEqual(c.limiter.datastore, 'ioredis') + assert(c.limiter._store.connection.client.nodes().length >= 0) + }) + + it('Should connect in Redis Cluster mode with premade client', function () { + var client = new Redis.Cluster('') + var connection = new Bottleneck.IORedisConnection({ client }) + c = makeTest({ + maxConcurrent: 2, + clientOptions: {}, + clusterNodes: [{ + host: process.env.REDIS_HOST, + port: process.env.REDIS_PORT + }] + }) + + c.mustEqual(c.limiter.datastore, 'ioredis') + assert(c.limiter._store.connection.client.nodes().length >= 0) + connection.disconnect(false) + }) + + it('Should accept existing connections', function () { + var connection = new Bottleneck.IORedisConnection() + connection.id = 'super-connection' + c = makeTest({ + minTime: 50, + connection + }) + + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2) + + return c.last() + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(50) + c.mustEqual(c.limiter.connection.id, 'super-connection') + c.mustEqual(c.limiter.datastore, 'ioredis') + + return c.limiter.disconnect() + }) + .then(function () { + // Shared connections should not be disconnected by the limiter + c.mustEqual(c.limiter.clients().client.status, 'ready') + return connection.disconnect() + }) + }) + + it('Should accept existing redis clients', function () { + var client = new Redis() + client.id = 'super-client' + + var connection = new Bottleneck.IORedisConnection({ client }) + connection.id = 'super-connection' + c = makeTest({ + minTime: 50, + connection + }) + + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2) + + return c.last() + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(50) + c.mustEqual(c.limiter.clients().client.id, 'super-client') + c.mustEqual(c.limiter.connection.id, 'super-connection') + c.mustEqual(c.limiter.datastore, 'ioredis') + + return c.limiter.disconnect() + }) + .then(function () { + // Shared connections should not be disconnected by the limiter + c.mustEqual(c.limiter.clients().client.status, 'ready') + return connection.disconnect() + }) + }) + + it('Should trigger error events on the shared connection', function (done) { + var connection = new Bottleneck.IORedisConnection({ + clientOptions: { + port: 1 + } + }) + connection.on('error', function (err) { + c.mustEqual(c.limiter.datastore, 'ioredis') + connection.disconnect() + done() + }) + + c = makeTest({ connection }) + c.limiter.on('error', function (err) { + done(err) + }) + }) + }) +} diff --git a/node_modules/bottleneck/test/node_redis.js b/node_modules/bottleneck/test/node_redis.js new file mode 100644 index 0000000..cd204d3 --- /dev/null +++ b/node_modules/bottleneck/test/node_redis.js @@ -0,0 +1,100 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') +var Redis = require('redis') + +if (process.env.DATASTORE === 'redis') { + describe('node_redis-only', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should accept node_redis lib override', function () { + c = makeTest({ + maxConcurrent: 2, + Redis, + clientOptions: {} + }) + + c.mustEqual(c.limiter.datastore, 'redis') + }) + + it('Should accept existing connections', function () { + var connection = new Bottleneck.RedisConnection() + connection.id = 'super-connection' + c = makeTest({ + minTime: 50, + connection + }) + + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2) + + return c.last() + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(50) + c.mustEqual(c.limiter.connection.id, 'super-connection') + c.mustEqual(c.limiter.datastore, 'redis') + + return c.limiter.disconnect() + }) + .then(function () { + // Shared connections should not be disconnected by the limiter + c.mustEqual(c.limiter.clients().client.ready, true) + return connection.disconnect() + }) + }) + + it('Should accept existing redis clients', function () { + var client = Redis.createClient() + client.id = 'super-client' + + var connection = new Bottleneck.RedisConnection({ client }) + connection.id = 'super-connection' + c = makeTest({ + minTime: 50, + connection + }) + + c.pNoErrVal(c.limiter.schedule(c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2) + + return c.last() + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(50) + c.mustEqual(c.limiter.clients().client.id, 'super-client') + c.mustEqual(c.limiter.connection.id, 'super-connection') + c.mustEqual(c.limiter.datastore, 'redis') + + return c.limiter.disconnect() + }) + .then(function () { + // Shared connections should not be disconnected by the limiter + c.mustEqual(c.limiter.clients().client.ready, true) + return connection.disconnect() + }) + }) + + it('Should trigger error events on the shared connection', function (done) { + var connection = new Bottleneck.RedisConnection({ + clientOptions: { + port: 1 + } + }) + connection.on('error', function (err) { + c.mustEqual(c.limiter.datastore, 'redis') + connection.disconnect() + done() + }) + + c = makeTest({ connection }) + c.limiter.on('error', function (err) { + done(err) + }) + }) + }) +} diff --git a/node_modules/bottleneck/test/priority.js b/node_modules/bottleneck/test/priority.js new file mode 100644 index 0000000..f89b85f --- /dev/null +++ b/node_modules/bottleneck/test/priority.js @@ -0,0 +1,184 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') + +describe('Priority', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should do basic ordering', function () { + c = makeTest({maxConcurrent: 1, minTime: 100, rejectOnDrop: false}) + + return Promise.all([ + c.pNoErrVal(c.limiter.schedule(c.slowPromise, 50, null, 1), 1), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 2), 2), + c.pNoErrVal(c.limiter.schedule({priority: 1}, c.promise, null, 5, 6), 5, 6), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 3), 3), + c.pNoErrVal(c.limiter.schedule(c.promise, null, 4), 4) + ]) + .then(function () { + return c.last() + }) + .then(function (results) { + c.checkResultsOrder([[1], [5,6], [2] ,[3], [4]]) + c.checkDuration(400) + }) + }) + + it('Should support LEAK', function () { + c = makeTest({ + maxConcurrent: 1, + minTime: 100, + highWater: 3, + strategy: Bottleneck.strategy.LEAK, + rejectOnDrop: false + }) + + var called = false + c.limiter.on('dropped', function (dropped) { + c.mustExist(dropped.task) + c.mustExist(dropped.args) + c.mustExist(dropped.promise) + called = true + }) + + c.limiter.submit(c.slowJob, 50, null, 1, c.noErrVal(1)) + c.limiter.submit(c.job, null, 2, c.noErrVal(2)) + c.limiter.submit(c.job, null, 3, c.noErrVal(3)) + c.limiter.submit(c.job, null, 4, c.noErrVal(4)) + c.limiter.submit({priority: 2}, c.job, null, 5, c.noErrVal(5)) + c.limiter.submit({priority: 1}, c.job, null, 6, c.noErrVal(6)) + c.limiter.submit({priority: 9}, c.job, null, 7, c.noErrVal(7)) + + return c.last({ weight: 0 }) + .then(function (results) { + c.checkDuration(200) + c.checkResultsOrder([[1], [6], [5]]) + c.mustEqual(called, true) + }) + }) + + it('Should support OVERFLOW', function () { + c = makeTest({ + maxConcurrent: 1, + minTime: 100, + highWater: 2, + strategy: Bottleneck.strategy.OVERFLOW, + rejectOnDrop: false + }) + var called = false + c.limiter.on('dropped', function (dropped) { + c.mustExist(dropped.task) + c.mustExist(dropped.args) + c.mustExist(dropped.promise) + called = true + }) + + c.limiter.submit(c.slowJob, 50, null, 1, c.noErrVal(1)) + c.limiter.submit(c.job, null, 2, c.noErrVal(2)) + c.limiter.submit(c.job, null, 3, c.noErrVal(3)) + c.limiter.submit(c.job, null, 4, c.noErrVal(4)) + c.limiter.submit({priority: 2}, c.job, null, 5, c.noErrVal(5)) + c.limiter.submit({priority: 1}, c.job, null, 6, c.noErrVal(6)) + + return c.limiter.submit({priority: 9}, c.job, null, 7, c.noErrVal(7)) + .then(function () { + return c.limiter.updateSettings({ highWater: null }) + }) + .then(c.last) + .then(function (results) { + c.checkDuration(200) + c.checkResultsOrder([[1], [2], [3]]) + c.mustEqual(called, true) + }) + }) + + it('Should support OVERFLOW_PRIORITY', function () { + c = makeTest({ + maxConcurrent: 1, + minTime: 100, + highWater: 2, + strategy: Bottleneck.strategy.OVERFLOW_PRIORITY, + rejectOnDrop: false + }) + var called = false + c.limiter.on('dropped', function (dropped) { + c.mustExist(dropped.task) + c.mustExist(dropped.args) + c.mustExist(dropped.promise) + called = true + }) + + c.limiter.submit(c.slowJob, 50, null, 1, c.noErrVal(1)) + c.limiter.submit(c.job, null, 2, c.noErrVal(2)) + c.limiter.submit(c.job, null, 3, c.noErrVal(3)) + c.limiter.submit(c.job, null, 4, c.noErrVal(4)) + c.limiter.submit({priority: 2}, c.job, null, 5, c.noErrVal(5)) + c.limiter.submit({priority: 2}, c.job, null, 6, c.noErrVal(6)) + + return c.limiter.submit({priority: 2}, c.job, null, 7, c.noErrVal(7)) + .then(function () { + return c.limiter.updateSettings({highWater: null}) + }) + .then(c.last) + .then(function (results) { + c.checkDuration(200) + c.checkResultsOrder([[1], [5], [6]]) + c.mustEqual(called, true) + }) + }) + + it('Should support BLOCK', function (done) { + c = makeTest({ + maxConcurrent: 1, + minTime: 100, + highWater: 2, + trackDoneStatus: true, + strategy: Bottleneck.strategy.BLOCK + }) + var called = 0 + + c.limiter.on('dropped', function (dropped) { + c.mustExist(dropped.task) + c.mustExist(dropped.args) + c.mustExist(dropped.promise) + called++ + if (called === 3) { + c.limiter.updateSettings({ highWater: null }) + .then(function () { + return c.limiter.schedule(c.job, null, 8) + }) + .catch(function (err) { + assert(err instanceof Bottleneck.BottleneckError) + c.mustEqual(err.message, 'This job has been dropped by Bottleneck') + c.limiter.removeAllListeners('error') + done() + }) + } + }) + + c.limiter.submit(c.slowJob, 20, null, 1, c.noErrVal(1)) + c.limiter.submit(c.slowJob, 20, null, 2, (err) => c.mustExist(err)) + c.limiter.submit(c.slowJob, 20, null, 3, (err) => c.mustExist(err)) + c.limiter.submit(c.slowJob, 20, null, 4, (err) => c.mustExist(err)) + }) + + it('Should have the right priority', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + c.pNoErrVal(c.limiter.schedule({priority: 6}, c.slowPromise, 50, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({priority: 5}, c.promise, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({priority: 4}, c.promise, null, 3), 3) + c.pNoErrVal(c.limiter.schedule({priority: 3}, c.promise, null, 4), 4) + + return c.last() + .then(function (results) { + c.checkDuration(300) + c.checkResultsOrder([[1], [4], [3], [2]]) + }) + }) + +}) diff --git a/node_modules/bottleneck/test/promises.js b/node_modules/bottleneck/test/promises.js new file mode 100644 index 0000000..b20022f --- /dev/null +++ b/node_modules/bottleneck/test/promises.js @@ -0,0 +1,202 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') + +describe('Promises', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should support promises', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + c.limiter.submit(c.job, null, 1, 9, c.noErrVal(1, 9)) + c.limiter.submit(c.job, null, 2, c.noErrVal(2)) + c.limiter.submit(c.job, null, 3, c.noErrVal(3)) + c.pNoErrVal(c.limiter.schedule(c.promise, null, 4, 5), 4, 5) + + return c.last() + .then(function (results) { + c.checkResultsOrder([[1,9], [2], [3], [4,5]]) + c.checkDuration(300) + }) + }) + + it('Should pass error on failure', function () { + var failureMessage = 'failed' + c = makeTest({maxConcurrent: 1, minTime: 100}) + + return c.limiter.schedule(c.promise, new Error(failureMessage)) + .catch(function (err) { + c.mustEqual(err.message, failureMessage) + }) + }) + + it('Should allow non-Promise returns', function () { + c = makeTest() + var str = 'This is a string' + + return c.limiter.schedule(() => str) + .then(function (x) { + c.mustEqual(x, str) + }) + }) + + it('Should get rejected when rejectOnDrop is true', function () { + c = makeTest({ + maxConcurrent: 1, + minTime: 0, + highWater: 1, + strategy: Bottleneck.strategy.OVERFLOW, + rejectOnDrop: true + }) + var dropped = 0 + var caught = 0 + var p1 + var p2 + + c.limiter.on('dropped', function () { + dropped++ + }) + + p1 = c.pNoErrVal(c.limiter.schedule({id: 1}, c.slowPromise, 50, null, 1), 1) + p2 = c.pNoErrVal(c.limiter.schedule({id: 2}, c.slowPromise, 50, null, 2), 2) + + return c.limiter.schedule({id: 3}, c.slowPromise, 50, null, 3) + .catch(function (err) { + c.mustEqual(err.message, 'This job has been dropped by Bottleneck') + assert(err instanceof Bottleneck.BottleneckError) + caught++ + return Promise.all([p1, p2]) + }) + .then(c.last) + .then(function (results) { + c.checkResultsOrder([[1], [2]]) + c.checkDuration(100) + c.mustEqual(dropped, 1) + c.mustEqual(caught, 1) + }) + }) + + it('Should automatically wrap an exception in a rejected promise - schedule()', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + return c.limiter.schedule(() => { + throw new Error('I will reject') + }) + .then(() => assert(false)) + .catch(err => { + assert(err.message === 'I will reject'); + }) + }) + + describe('Wrap', function () { + it('Should wrap', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + c.limiter.submit(c.job, null, 1, c.noErrVal(1)) + c.limiter.submit(c.job, null, 2, c.noErrVal(2)) + c.limiter.submit(c.job, null, 3, c.noErrVal(3)) + + var wrapped = c.limiter.wrap(c.promise) + c.pNoErrVal(wrapped(null, 4), 4) + + return c.last() + .then(function (results) { + c.checkResultsOrder([[1], [2], [3], [4]]) + c.checkDuration(300) + }) + }) + + it('Should automatically wrap a returned value in a resolved promise', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + fn = c.limiter.wrap(() => { return 7 }); + + return fn().then(result => { + assert(result === 7); + }) + }) + + it('Should automatically wrap an exception in a rejected promise', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + fn = c.limiter.wrap(() => { throw new Error('I will reject') }); + + return fn().then(() => assert(false)).catch(error => { + assert(error.message === 'I will reject'); + }) + }) + + it('Should inherit the original target for wrapped methods', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + var object = { + fn: c.limiter.wrap(function () { return this }) + } + + return object.fn().then(result => { + assert(result === object) + }) + }) + + it('Should inherit the original target on prototype methods', function () { + c = makeTest({maxConcurrent: 1, minTime: 100}) + + class Animal { + constructor(name) { this.name = name } + getName() { return this.name } + } + + Animal.prototype.getName = c.limiter.wrap(Animal.prototype.getName) + let elephant = new Animal('Dumbo') + + return elephant.getName().then(result => { + assert(result === 'Dumbo') + }) + }) + + it('Should pass errors back', function () { + var failureMessage = 'BLEW UP!!!' + c = makeTest({maxConcurrent: 1, minTime: 100}) + + var wrapped = c.limiter.wrap(c.promise) + c.pNoErrVal(wrapped(null, 1), 1) + c.pNoErrVal(wrapped(null, 2), 2) + + return wrapped(new Error(failureMessage), 3) + .catch(function (err) { + c.mustEqual(err.message, failureMessage) + return c.last() + }) + .then(function (results) { + c.checkResultsOrder([[1], [2], [3]]) + c.checkDuration(200) + }) + }) + + it('Should allow passing options', function () { + var failureMessage = 'BLEW UP!!!' + c = makeTest({maxConcurrent: 1, minTime: 50}) + + var wrapped = c.limiter.wrap(c.promise) + c.pNoErrVal(wrapped(null, 1), 1) + c.pNoErrVal(wrapped(null, 2), 2) + c.pNoErrVal(wrapped(null, 3), 3) + c.pNoErrVal(wrapped(null, 4), 4) + c.pNoErrVal(wrapped.withOptions({ priority: 1 }, null, 5), 5) + + return wrapped.withOptions({ priority: 1 }, new Error(failureMessage), 6) + .catch(function (err) { + c.mustEqual(err.message, failureMessage) + return c.last() + }) + .then(function (results) { + c.checkResultsOrder([[1], [2], [5], [6], [3], [4]]) + c.checkDuration(250) + }) + }) + }) +}) diff --git a/node_modules/bottleneck/test/retries.js b/node_modules/bottleneck/test/retries.js new file mode 100644 index 0000000..7570516 --- /dev/null +++ b/node_modules/bottleneck/test/retries.js @@ -0,0 +1,237 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') +var child_process = require('child_process') + +describe('Retries', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should retry when requested by the user (sync)', async function () { + c = makeTest({ trackDoneStatus: true }) + var failedEvents = 0 + var retryEvents = 0 + + c.limiter.on('failed', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + c.mustEqual(info.retryCount, failedEvents) + failedEvents++ + return 50 + }) + + c.limiter.on('retry', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + retryEvents++ + }) + + var times = 0 + const job = function () { + times++ + if (times <= 2) { + return Promise.reject(new Error('boom')) + } + return Promise.resolve('Success!') + } + + c.mustEqual(await c.limiter.schedule(job), 'Success!') + const results = await c.results() + assert(results.elapsed > 90 && results.elapsed < 130) + c.mustEqual(failedEvents, 2) + c.mustEqual(retryEvents, 2) + c.mustEqual(c.limiter.counts().EXECUTING, 0) + c.mustEqual(c.limiter.counts().DONE, 1) + }) + + it('Should retry when requested by the user (async)', async function () { + c = makeTest({ trackDoneStatus: true }) + var failedEvents = 0 + var retryEvents = 0 + + c.limiter.on('failed', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + c.mustEqual(info.retryCount, failedEvents) + failedEvents++ + return Promise.resolve(50) + }) + + c.limiter.on('retry', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + retryEvents++ + }) + + var times = 0 + const job = function () { + times++ + if (times <= 2) { + return Promise.reject(new Error('boom')) + } + return Promise.resolve('Success!') + } + + c.mustEqual(await c.limiter.schedule(job), 'Success!') + const results = await c.results() + assert(results.elapsed > 90 && results.elapsed < 130) + c.mustEqual(failedEvents, 2) + c.mustEqual(retryEvents, 2) + c.mustEqual(c.limiter.counts().EXECUTING, 0) + c.mustEqual(c.limiter.counts().DONE, 1) + }) + + it('Should not retry when user returns an error (sync)', async function () { + c = makeTest({ errorEventsExpected: true, trackDoneStatus: true }) + var failedEvents = 0 + var retryEvents = 0 + var errorEvents = 0 + var caught = false + + c.limiter.on('failed', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + c.mustEqual(info.retryCount, failedEvents) + failedEvents++ + throw new Error('Nope') + }) + + c.limiter.on('retry', function (error, info) { + retryEvents++ + }) + + c.limiter.on('error', function (error, info) { + c.mustEqual(error.message, 'Nope') + errorEvents++ + }) + + const job = function () { + return Promise.reject(new Error('boom')) + } + + try { + await c.limiter.schedule(job) + throw new Error('Should not reach') + } catch (error) { + c.mustEqual(error.message, 'boom') + caught = true + } + c.mustEqual(failedEvents, 1) + c.mustEqual(retryEvents, 0) + c.mustEqual(errorEvents, 1) + c.mustEqual(caught, true) + c.mustEqual(c.limiter.counts().EXECUTING, 0) + c.mustEqual(c.limiter.counts().DONE, 1) + }) + + it('Should not retry when user returns an error (async)', async function () { + c = makeTest({ errorEventsExpected: true, trackDoneStatus: true }) + var failedEvents = 0 + var retryEvents = 0 + var errorEvents = 0 + var caught = false + + c.limiter.on('failed', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + c.mustEqual(info.retryCount, failedEvents) + failedEvents++ + return Promise.reject(new Error('Nope')) + }) + + c.limiter.on('retry', function (error, info) { + retryEvents++ + }) + + c.limiter.on('error', function (error, info) { + c.mustEqual(error.message, 'Nope') + errorEvents++ + }) + + const job = function () { + return Promise.reject(new Error('boom')) + } + + try { + await c.limiter.schedule(job) + throw new Error('Should not reach') + } catch (error) { + c.mustEqual(error.message, 'boom') + caught = true + } + c.mustEqual(failedEvents, 1) + c.mustEqual(retryEvents, 0) + c.mustEqual(errorEvents, 1) + c.mustEqual(caught, true) + c.mustEqual(c.limiter.counts().EXECUTING, 0) + c.mustEqual(c.limiter.counts().DONE, 1) + }) + + it('Should not retry when user returns null (sync)', async function () { + c = makeTest({ trackDoneStatus: true }) + var failedEvents = 0 + var retryEvents = 0 + var caught = false + + c.limiter.on('failed', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + c.mustEqual(info.retryCount, failedEvents) + failedEvents++ + return null + }) + + c.limiter.on('retry', function (error, info) { + retryEvents++ + }) + + const job = function () { + return Promise.reject(new Error('boom')) + } + + try { + await c.limiter.schedule(job) + throw new Error('Should not reach') + } catch (error) { + c.mustEqual(error.message, 'boom') + caught = true + } + c.mustEqual(failedEvents, 1) + c.mustEqual(retryEvents, 0) + c.mustEqual(caught, true) + c.mustEqual(c.limiter.counts().EXECUTING, 0) + c.mustEqual(c.limiter.counts().DONE, 1) + }) + + it('Should not retry when user returns null (async)', async function () { + c = makeTest({ trackDoneStatus: true }) + var failedEvents = 0 + var retryEvents = 0 + var caught = false + + c.limiter.on('failed', function (error, info) { + c.mustEqual(c.limiter.counts().EXECUTING, 1) + c.mustEqual(info.retryCount, failedEvents) + failedEvents++ + return Promise.resolve(null) + }) + + c.limiter.on('retry', function (error, info) { + retryEvents++ + }) + + const job = function () { + return Promise.reject(new Error('boom')) + } + + try { + await c.limiter.schedule(job) + throw new Error('Should not reach') + } catch (error) { + c.mustEqual(error.message, 'boom') + caught = true + } + c.mustEqual(failedEvents, 1) + c.mustEqual(retryEvents, 0) + c.mustEqual(caught, true) + c.mustEqual(c.limiter.counts().EXECUTING, 0) + c.mustEqual(c.limiter.counts().DONE, 1) + }) + +}) diff --git a/node_modules/bottleneck/test/spawn/increaseKeepAlive.js b/node_modules/bottleneck/test/spawn/increaseKeepAlive.js new file mode 100644 index 0000000..4bea612 --- /dev/null +++ b/node_modules/bottleneck/test/spawn/increaseKeepAlive.js @@ -0,0 +1,17 @@ +var Bottleneck = require('../bottleneck.js') +var now = Date.now() + +var limiter = new Bottleneck({ + reservoir: 2, + reservoirIncreaseAmount: 2, + reservoirIncreaseInterval: 200 +}) +var f1 = () => { + var secDiff = Math.floor((Date.now() - now) / 100) + return Promise.resolve(`[${secDiff}]`) +} + +limiter.schedule(f1).then((x) => process.stdout.write(x)) +limiter.schedule(f1).then((x) => process.stdout.write(x)) +limiter.schedule(f1).then((x) => process.stdout.write(x)) +limiter.schedule(f1).then((x) => process.stdout.write(x)) diff --git a/node_modules/bottleneck/test/spawn/refreshKeepAlive.js b/node_modules/bottleneck/test/spawn/refreshKeepAlive.js new file mode 100644 index 0000000..deb0992 --- /dev/null +++ b/node_modules/bottleneck/test/spawn/refreshKeepAlive.js @@ -0,0 +1,17 @@ +var Bottleneck = require('../bottleneck.js') +var now = Date.now() + +var limiter = new Bottleneck({ + reservoir: 2, + reservoirRefreshAmount: 2, + reservoirRefreshInterval: 200 +}) +var f1 = () => { + var secDiff = Math.floor((Date.now() - now) / 100) + return Promise.resolve(`[${secDiff}]`) +} + +limiter.schedule(f1).then((x) => process.stdout.write(x)) +limiter.schedule(f1).then((x) => process.stdout.write(x)) +limiter.schedule(f1).then((x) => process.stdout.write(x)) +limiter.schedule(f1).then((x) => process.stdout.write(x)) diff --git a/node_modules/bottleneck/test/states.js b/node_modules/bottleneck/test/states.js new file mode 100644 index 0000000..c65ed77 --- /dev/null +++ b/node_modules/bottleneck/test/states.js @@ -0,0 +1,103 @@ +var States = require('../lib/States') +var assert = require('assert') +var c = require('./context')({datastore: 'local'}) +var Bottleneck = require('./bottleneck') + +describe('States', function () { + + it('Should be created and be empty', function () { + var states = new States(["A", "B", "C"]) + c.mustEqual(states.statusCounts(), { A: 0, B: 0, C: 0 }) + }) + + it('Should start new series', function () { + var states = new States(["A", "B", "C"]) + + states.start('x') + states.start('y') + + c.mustEqual(states.statusCounts(), { A: 2, B: 0, C: 0 }) + }) + + it('Should increment', function () { + var states = new States(["A", "B", "C"]) + + states.start('x') + states.start('y') + states.next('x') + states.next('y') + states.next('x') + c.mustEqual(states.statusCounts(), { A: 0, B: 1, C: 1 }) + + states.next('z') + c.mustEqual(states.statusCounts(), { A: 0, B: 1, C: 1 }) + + states.next('x') + c.mustEqual(states.statusCounts(), { A: 0, B: 1, C: 0 }) + + states.next('x') + c.mustEqual(states.statusCounts(), { A: 0, B: 1, C: 0 }) + + states.next('y') + states.next('y') + c.mustEqual(states.statusCounts(), { A: 0, B: 0, C: 0 }) + }) + + it('Should remove', function () { + var states = new States(["A", "B", "C"]) + + states.start('x') + states.start('y') + states.next('x') + states.next('y') + states.next('x') + c.mustEqual(states.statusCounts(), { A: 0, B: 1, C: 1 }) + + states.remove('x') + c.mustEqual(states.statusCounts(), { A: 0, B: 1, C: 0 }) + + states.remove('y') + c.mustEqual(states.statusCounts(), { A: 0, B: 0, C: 0 }) + }) + + it('Should return current status', function () { + var states = new States(["A", "B", "C"]) + + states.start('x') + states.start('y') + states.next('x') + states.next('y') + states.next('x') + c.mustEqual(states.statusCounts(), { A: 0, B: 1, C: 1 }) + + c.mustEqual(states.jobStatus('x'), 'C') + c.mustEqual(states.jobStatus('y'), 'B') + c.mustEqual(states.jobStatus('z'), null) + }) + + it('Should return job ids for a status', function (done) { + var states = new States(["A", "B", "C"]) + + states.start('x') + states.start('y') + states.start('z') + states.next('x') + states.next('y') + states.next('x') + states.next('z') + c.mustEqual(states.statusCounts(), { A: 0, B: 2, C: 1 }) + + c.mustEqual(states.statusJobs().sort(), ['x', 'y', 'z']) + c.mustEqual(states.statusJobs('A'), []) + c.mustEqual(states.statusJobs('B').sort(), ['y', 'z']) + c.mustEqual(states.statusJobs('C'), ['x']) + try { + states.statusJobs('Z') + } catch (err) { + if (process.env.BUILD !== 'es5' && process.env.BUILD !== 'light') { + assert(err instanceof Bottleneck.BottleneckError) + } + done() + } + }) +}) diff --git a/node_modules/bottleneck/test/stop.js b/node_modules/bottleneck/test/stop.js new file mode 100644 index 0000000..2300e4f --- /dev/null +++ b/node_modules/bottleneck/test/stop.js @@ -0,0 +1,208 @@ +var makeTest = require('./context') +var Bottleneck = require('./bottleneck') +var assert = require('assert') + +describe('Stop', function () { + var c + + afterEach(function () { + return c.limiter.disconnect(false) + }) + + it('Should stop and drop the queue', function (done) { + c = makeTest({ + maxConcurrent: 2, + minTime: 100, + trackDoneStatus: true + }) + var submitFailed = false + var queuedDropped = false + var scheduledDropped = false + var dropped = 0 + + c.limiter.on('dropped', function () { + dropped++ + }) + + c.pNoErrVal(c.limiter.schedule({id: '0'}, c.promise, null, 0), 0) + + c.pNoErrVal(c.limiter.schedule({id: '1'}, c.slowPromise, 100, null, 1), 1) + + c.limiter.schedule({id: '2'}, c.promise, null, 2) + .catch(function (err) { + c.mustEqual(err.message, 'Dropped!') + scheduledDropped = true + }) + + c.limiter.schedule({id: '3'}, c.promise, null, 3) + .catch(function (err) { + c.mustEqual(err.message, 'Dropped!') + queuedDropped = true + }) + + setTimeout(function () { + var counts = c.limiter.counts() + c.mustEqual(counts.RECEIVED, 0) + c.mustEqual(counts.QUEUED, 1) + c.mustEqual(counts.RUNNING, 1) + c.mustEqual(counts.EXECUTING, 1) + c.mustEqual(counts.DONE, 1) + + c.limiter.stop({ + enqueueErrorMessage: 'Stopped!', + dropErrorMessage: 'Dropped!' + }) + .then(function () { + counts = c.limiter.counts() + c.mustEqual(submitFailed, true) + c.mustEqual(scheduledDropped, true) + c.mustEqual(queuedDropped, true) + c.mustEqual(dropped, 2) + c.mustEqual(counts.RECEIVED, 0) + c.mustEqual(counts.QUEUED, 0) + c.mustEqual(counts.RUNNING, 0) + c.mustEqual(counts.EXECUTING, 0) + c.mustEqual(counts.DONE, 2) + + c.checkResultsOrder([[0], [1]]) + done() + }) + + c.limiter.schedule(() => Promise.resolve(true)) + .catch(function (err) { + c.mustEqual(err.message, 'Stopped!') + submitFailed = true + }) + + }, 125) + }) + + it('Should stop and let the queue finish', function (done) { + c = makeTest({ + maxConcurrent: 1, + minTime: 100, + trackDoneStatus: true + }) + var submitFailed = false + var dropped = 0 + + c.limiter.on('dropped', function () { + dropped++ + }) + + c.pNoErrVal(c.limiter.schedule({id: '1'}, c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({id: '2'}, c.promise, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({id: '3'}, c.slowPromise, 100, null, 3), 3) + + setTimeout(function () { + var counts = c.limiter.counts() + c.mustEqual(counts.RECEIVED, 0) + c.mustEqual(counts.QUEUED, 1) + c.mustEqual(counts.RUNNING, 1) + c.mustEqual(counts.EXECUTING, 0) + c.mustEqual(counts.DONE, 1) + + c.limiter.stop({ + enqueueErrorMessage: 'Stopped!', + dropWaitingJobs: false + }) + .then(function () { + counts = c.limiter.counts() + c.mustEqual(submitFailed, true) + c.mustEqual(dropped, 0) + c.mustEqual(counts.RECEIVED, 0) + c.mustEqual(counts.QUEUED, 0) + c.mustEqual(counts.RUNNING, 0) + c.mustEqual(counts.EXECUTING, 0) + c.mustEqual(counts.DONE, 4) + + c.checkResultsOrder([[1], [2], [3]]) + done() + }) + + c.limiter.schedule(() => Promise.resolve(true)) + .catch(function (err) { + c.mustEqual(err.message, 'Stopped!') + submitFailed = true + }) + + }, 75) + }) + + it('Should still resolve when rejectOnDrop is false', function (done) { + c = makeTest({ + maxConcurrent: 1, + minTime: 100, + rejectOnDrop: false + }) + + c.pNoErrVal(c.limiter.schedule({id: '1'}, c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({id: '2'}, c.promise, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({id: '3'}, c.slowPromise, 100, null, 3), 3) + + c.limiter.stop() + .then(function () { + return c.limiter.stop() + }) + .then(function () { + done(new Error("Should not be here")) + }) + .catch(function (err) { + c.mustEqual(err.message, "stop() has already been called") + done() + }) + }) + + it('Should not allow calling stop() twice when dropWaitingJobs=true', function (done) { + c = makeTest({ + maxConcurrent: 1, + minTime: 100 + }) + var failed = 0 + var handler = function (err) { + c.mustEqual(err.message, "This limiter has been stopped.") + failed++ + } + + c.pNoErrVal(c.limiter.schedule({id: '1'}, c.promise, null, 1), 1).catch(handler) + c.pNoErrVal(c.limiter.schedule({id: '2'}, c.promise, null, 2), 2).catch(handler) + c.pNoErrVal(c.limiter.schedule({id: '3'}, c.slowPromise, 100, null, 3), 3).catch(handler) + + c.limiter.stop({ dropWaitingJobs: true }) + .then(function () { + return c.limiter.stop({ dropWaitingJobs: true }) + }) + .then(function () { + done(new Error("Should not be here")) + }) + .catch(function (err) { + c.mustEqual(err.message, "stop() has already been called") + c.mustEqual(failed, 3) + done() + }) + }) + + it('Should not allow calling stop() twice when dropWaitingJobs=false', function (done) { + c = makeTest({ + maxConcurrent: 1, + minTime: 100 + }) + + c.pNoErrVal(c.limiter.schedule({id: '1'}, c.promise, null, 1), 1) + c.pNoErrVal(c.limiter.schedule({id: '2'}, c.promise, null, 2), 2) + c.pNoErrVal(c.limiter.schedule({id: '3'}, c.slowPromise, 100, null, 3), 3) + + c.limiter.stop({ dropWaitingJobs: false }) + .then(function () { + return c.limiter.stop({ dropWaitingJobs: false }) + }) + .then(function () { + done(new Error("Should not be here")) + }) + .catch(function (err) { + c.mustEqual(err.message, "stop() has already been called") + done() + }) + }) + +}) diff --git a/node_modules/brace-expansion/LICENSE b/node_modules/brace-expansion/LICENSE new file mode 100644 index 0000000..de32266 --- /dev/null +++ b/node_modules/brace-expansion/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/brace-expansion/README.md b/node_modules/brace-expansion/README.md new file mode 100644 index 0000000..6b4e0e1 --- /dev/null +++ b/node_modules/brace-expansion/README.md @@ -0,0 +1,129 @@ +# brace-expansion + +[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html), +as known from sh/bash, in JavaScript. + +[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion) +[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion) +[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/) + +[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion) + +## Example + +```js +var expand = require('brace-expansion'); + +expand('file-{a,b,c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('-v{,,}') +// => ['-v', '-v', '-v'] + +expand('file{0..2}.jpg') +// => ['file0.jpg', 'file1.jpg', 'file2.jpg'] + +expand('file-{a..c}.jpg') +// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg'] + +expand('file{2..0}.jpg') +// => ['file2.jpg', 'file1.jpg', 'file0.jpg'] + +expand('file{0..4..2}.jpg') +// => ['file0.jpg', 'file2.jpg', 'file4.jpg'] + +expand('file-{a..e..2}.jpg') +// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg'] + +expand('file{00..10..5}.jpg') +// => ['file00.jpg', 'file05.jpg', 'file10.jpg'] + +expand('{{A..C},{a..c}}') +// => ['A', 'B', 'C', 'a', 'b', 'c'] + +expand('ppp{,config,oe{,conf}}') +// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf'] +``` + +## API + +```js +var expand = require('brace-expansion'); +``` + +### var expanded = expand(str) + +Return an array of all possible and valid expansions of `str`. If none are +found, `[str]` is returned. + +Valid expansions are: + +```js +/^(.*,)+(.+)?$/ +// {a,b,...} +``` + +A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +A numeric sequence from `x` to `y` inclusive, with optional increment. +If `x` or `y` start with a leading `0`, all the numbers will be padded +to have equal length. Negative numbers and backwards iteration work too. + +```js +/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/ +// {x..y[..incr]} +``` + +An alphabetic sequence from `x` to `y` inclusive, with optional increment. +`x` and `y` must be exactly one character, and if given, `incr` must be a +number. + +For compatibility reasons, the string `${` is not eligible for brace expansion. + +## Installation + +With [npm](https://npmjs.org) do: + +```bash +npm install brace-expansion +``` + +## Contributors + +- [Julian Gruber](https://github.com/juliangruber) +- [Isaac Z. Schlueter](https://github.com/isaacs) + +## Sponsors + +This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)! + +Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)! + +## License + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/brace-expansion/index.js b/node_modules/brace-expansion/index.js new file mode 100644 index 0000000..0478be8 --- /dev/null +++ b/node_modules/brace-expansion/index.js @@ -0,0 +1,201 @@ +var concatMap = require('concat-map'); +var balanced = require('balanced-match'); + +module.exports = expandTop; + +var escSlash = '\0SLASH'+Math.random()+'\0'; +var escOpen = '\0OPEN'+Math.random()+'\0'; +var escClose = '\0CLOSE'+Math.random()+'\0'; +var escComma = '\0COMMA'+Math.random()+'\0'; +var escPeriod = '\0PERIOD'+Math.random()+'\0'; + +function numeric(str) { + return parseInt(str, 10) == str + ? parseInt(str, 10) + : str.charCodeAt(0); +} + +function escapeBraces(str) { + return str.split('\\\\').join(escSlash) + .split('\\{').join(escOpen) + .split('\\}').join(escClose) + .split('\\,').join(escComma) + .split('\\.').join(escPeriod); +} + +function unescapeBraces(str) { + return str.split(escSlash).join('\\') + .split(escOpen).join('{') + .split(escClose).join('}') + .split(escComma).join(',') + .split(escPeriod).join('.'); +} + + +// Basically just str.split(","), but handling cases +// where we have nested braced sections, which should be +// treated as individual members, like {a,{b,c},d} +function parseCommaParts(str) { + if (!str) + return ['']; + + var parts = []; + var m = balanced('{', '}', str); + + if (!m) + return str.split(','); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(','); + + p[p.length-1] += '{' + body + '}'; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length-1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; +} + +function expandTop(str) { + if (!str) + return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === '{}') { + str = '\\{\\}' + str.substr(2); + } + + return expand(escapeBraces(str), true).map(unescapeBraces); +} + +function identity(e) { + return e; +} + +function embrace(str) { + return '{' + str + '}'; +} +function isPadded(el) { + return /^-?0\d/.test(el); +} + +function lte(i, y) { + return i <= y; +} +function gte(i, y) { + return i >= y; +} + +function expand(str, isTop) { + var expansions = []; + + var m = balanced('{', '}', str); + if (!m || /\$$/.test(m.pre)) return [str]; + + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(',') >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + '{' + m.body + escClose + m.post; + return expand(str); + } + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, false) + : ['']; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + } + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length + ? expand(m.post, false) + : ['']; + + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length) + var incr = n.length == 3 + ? Math.abs(numeric(n[2])) + : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === '\\') + c = ''; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join('0'); + if (i < 0) + c = '-' + z + c.slice(1); + else + c = z + c; + } + } + } + N.push(c); + } + } else { + N = concatMap(n, function(el) { return expand(el, false) }); + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) + expansions.push(expansion); + } + } + + return expansions; +} + diff --git a/node_modules/brace-expansion/package.json b/node_modules/brace-expansion/package.json new file mode 100644 index 0000000..a18faa8 --- /dev/null +++ b/node_modules/brace-expansion/package.json @@ -0,0 +1,47 @@ +{ + "name": "brace-expansion", + "description": "Brace expansion as known from sh/bash", + "version": "1.1.11", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/brace-expansion.git" + }, + "homepage": "https://github.com/juliangruber/brace-expansion", + "main": "index.js", + "scripts": { + "test": "tape test/*.js", + "gentest": "bash test/generate.sh", + "bench": "matcha test/perf/bench.js" + }, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "devDependencies": { + "matcha": "^0.7.0", + "tape": "^4.6.0" + }, + "keywords": [], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/8..latest", + "firefox/20..latest", + "firefox/nightly", + "chrome/25..latest", + "chrome/canary", + "opera/12..latest", + "opera/next", + "safari/5.1..latest", + "ipad/6.0..latest", + "iphone/6.0..latest", + "android-browser/4.2..latest" + ] + } +} diff --git a/node_modules/btoa-lite/.npmignore b/node_modules/btoa-lite/.npmignore new file mode 100644 index 0000000..50c7458 --- /dev/null +++ b/node_modules/btoa-lite/.npmignore @@ -0,0 +1,6 @@ +node_modules +*.log +.DS_Store +bundle.js +test +test.js diff --git a/node_modules/btoa-lite/LICENSE.md b/node_modules/btoa-lite/LICENSE.md new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/btoa-lite/LICENSE.md @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/btoa-lite/README.md b/node_modules/btoa-lite/README.md new file mode 100644 index 0000000..e36492e --- /dev/null +++ b/node_modules/btoa-lite/README.md @@ -0,0 +1,37 @@ +# btoa-lite +![](http://img.shields.io/badge/stability-stable-orange.svg?style=flat) +![](http://img.shields.io/npm/v/btoa-lite.svg?style=flat) +![](http://img.shields.io/npm/dm/btoa-lite.svg?style=flat) +![](http://img.shields.io/npm/l/btoa-lite.svg?style=flat) + +Smallest/simplest possible means of using btoa with both Node and browserify. + +In the browser, encoding base64 strings is done using: + +``` javascript +var encoded = btoa(decoded) +``` + +However in Node, it's done like so: + +``` javascript +var encoded = new Buffer(decoded).toString('base64') +``` + +You can easily check if `Buffer` exists and switch between the approaches +accordingly, but using `Buffer` anywhere in your browser source will pull +in browserify's `Buffer` shim which is pretty hefty. This package uses +the `main` and `browser` fields in its `package.json` to perform this +check at build time and avoid pulling `Buffer` in unnecessarily. + +## Usage + +[![NPM](https://nodei.co/npm/btoa-lite.png)](https://nodei.co/npm/btoa-lite/) + +### `encoded = btoa(decoded)` + +Returns the base64-encoded value of a string. + +## License + +MIT. See [LICENSE.md](http://github.com/hughsk/btoa-lite/blob/master/LICENSE.md) for details. diff --git a/node_modules/btoa-lite/btoa-browser.js b/node_modules/btoa-lite/btoa-browser.js new file mode 100644 index 0000000..1b3acdb --- /dev/null +++ b/node_modules/btoa-lite/btoa-browser.js @@ -0,0 +1,3 @@ +module.exports = function _btoa(str) { + return btoa(str) +} diff --git a/node_modules/btoa-lite/btoa-node.js b/node_modules/btoa-lite/btoa-node.js new file mode 100644 index 0000000..0278470 --- /dev/null +++ b/node_modules/btoa-lite/btoa-node.js @@ -0,0 +1,3 @@ +module.exports = function btoa(str) { + return new Buffer(str).toString('base64') +} diff --git a/node_modules/btoa-lite/package.json b/node_modules/btoa-lite/package.json new file mode 100644 index 0000000..3141a09 --- /dev/null +++ b/node_modules/btoa-lite/package.json @@ -0,0 +1,41 @@ +{ + "name": "btoa-lite", + "version": "1.0.0", + "description": "Smallest/simplest possible means of using btoa with both Node and browserify", + "main": "btoa-node.js", + "browser": "btoa-browser.js", + "license": "MIT", + "scripts": { + "test": "npm run test-node && npm run test-browser", + "test-node": "node test | tap-spec", + "test-browser": "browserify test | smokestack | tap-spec" + }, + "author": { + "name": "Hugh Kennedy", + "email": "hughskennedy@gmail.com", + "url": "http://hughsk.io/" + }, + "dependencies": {}, + "devDependencies": { + "browserify": "^10.2.4", + "smokestack": "^3.3.0", + "tap-spec": "^4.0.0", + "tape": "^4.0.0" + }, + "repository": { + "type": "git", + "url": "git://github.com/hughsk/btoa-lite.git" + }, + "keywords": [ + "btoa", + "base64", + "isomorphic", + "browser", + "node", + "shared" + ], + "homepage": "https://github.com/hughsk/btoa-lite", + "bugs": { + "url": "https://github.com/hughsk/btoa-lite/issues" + } +} diff --git a/node_modules/concat-map/.travis.yml b/node_modules/concat-map/.travis.yml new file mode 100644 index 0000000..f1d0f13 --- /dev/null +++ b/node_modules/concat-map/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.4 + - 0.6 diff --git a/node_modules/concat-map/LICENSE b/node_modules/concat-map/LICENSE new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/concat-map/LICENSE @@ -0,0 +1,18 @@ +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/concat-map/README.markdown b/node_modules/concat-map/README.markdown new file mode 100644 index 0000000..408f70a --- /dev/null +++ b/node_modules/concat-map/README.markdown @@ -0,0 +1,62 @@ +concat-map +========== + +Concatenative mapdashery. + +[![browser support](http://ci.testling.com/substack/node-concat-map.png)](http://ci.testling.com/substack/node-concat-map) + +[![build status](https://secure.travis-ci.org/substack/node-concat-map.png)](http://travis-ci.org/substack/node-concat-map) + +example +======= + +``` js +var concatMap = require('concat-map'); +var xs = [ 1, 2, 3, 4, 5, 6 ]; +var ys = concatMap(xs, function (x) { + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; +}); +console.dir(ys); +``` + +*** + +``` +[ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ] +``` + +methods +======= + +``` js +var concatMap = require('concat-map') +``` + +concatMap(xs, fn) +----------------- + +Return an array of concatenated elements by calling `fn(x, i)` for each element +`x` and each index `i` in the array `xs`. + +When `fn(x, i)` returns an array, its result will be concatenated with the +result array. If `fn(x, i)` returns anything else, that value will be pushed +onto the end of the result array. + +install +======= + +With [npm](http://npmjs.org) do: + +``` +npm install concat-map +``` + +license +======= + +MIT + +notes +===== + +This module was written while sitting high above the ground in a tree. diff --git a/node_modules/concat-map/example/map.js b/node_modules/concat-map/example/map.js new file mode 100644 index 0000000..3365621 --- /dev/null +++ b/node_modules/concat-map/example/map.js @@ -0,0 +1,6 @@ +var concatMap = require('../'); +var xs = [ 1, 2, 3, 4, 5, 6 ]; +var ys = concatMap(xs, function (x) { + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; +}); +console.dir(ys); diff --git a/node_modules/concat-map/index.js b/node_modules/concat-map/index.js new file mode 100644 index 0000000..b29a781 --- /dev/null +++ b/node_modules/concat-map/index.js @@ -0,0 +1,13 @@ +module.exports = function (xs, fn) { + var res = []; + for (var i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + if (isArray(x)) res.push.apply(res, x); + else res.push(x); + } + return res; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; diff --git a/node_modules/concat-map/package.json b/node_modules/concat-map/package.json new file mode 100644 index 0000000..d3640e6 --- /dev/null +++ b/node_modules/concat-map/package.json @@ -0,0 +1,43 @@ +{ + "name" : "concat-map", + "description" : "concatenative mapdashery", + "version" : "0.0.1", + "repository" : { + "type" : "git", + "url" : "git://github.com/substack/node-concat-map.git" + }, + "main" : "index.js", + "keywords" : [ + "concat", + "concatMap", + "map", + "functional", + "higher-order" + ], + "directories" : { + "example" : "example", + "test" : "test" + }, + "scripts" : { + "test" : "tape test/*.js" + }, + "devDependencies" : { + "tape" : "~2.4.0" + }, + "license" : "MIT", + "author" : { + "name" : "James Halliday", + "email" : "mail@substack.net", + "url" : "http://substack.net" + }, + "testling" : { + "files" : "test/*.js", + "browsers" : { + "ie" : [ 6, 7, 8, 9 ], + "ff" : [ 3.5, 10, 15.0 ], + "chrome" : [ 10, 22 ], + "safari" : [ 5.1 ], + "opera" : [ 12 ] + } + } +} diff --git a/node_modules/concat-map/test/map.js b/node_modules/concat-map/test/map.js new file mode 100644 index 0000000..fdbd702 --- /dev/null +++ b/node_modules/concat-map/test/map.js @@ -0,0 +1,39 @@ +var concatMap = require('../'); +var test = require('tape'); + +test('empty or not', function (t) { + var xs = [ 1, 2, 3, 4, 5, 6 ]; + var ixes = []; + var ys = concatMap(xs, function (x, ix) { + ixes.push(ix); + return x % 2 ? [ x - 0.1, x, x + 0.1 ] : []; + }); + t.same(ys, [ 0.9, 1, 1.1, 2.9, 3, 3.1, 4.9, 5, 5.1 ]); + t.same(ixes, [ 0, 1, 2, 3, 4, 5 ]); + t.end(); +}); + +test('always something', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function (x) { + return x === 'b' ? [ 'B', 'B', 'B' ] : [ x ]; + }); + t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); + t.end(); +}); + +test('scalars', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function (x) { + return x === 'b' ? [ 'B', 'B', 'B' ] : x; + }); + t.same(ys, [ 'a', 'B', 'B', 'B', 'c', 'd' ]); + t.end(); +}); + +test('undefs', function (t) { + var xs = [ 'a', 'b', 'c', 'd' ]; + var ys = concatMap(xs, function () {}); + t.same(ys, [ undefined, undefined, undefined, undefined ]); + t.end(); +}); diff --git a/node_modules/cross-spawn/CHANGELOG.md b/node_modules/cross-spawn/CHANGELOG.md new file mode 100644 index 0000000..ded9620 --- /dev/null +++ b/node_modules/cross-spawn/CHANGELOG.md @@ -0,0 +1,100 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +
+## [6.0.5](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.4...v6.0.5) (2018-03-02) + + +### Bug Fixes + +* avoid using deprecated Buffer constructor ([#94](https://github.com/moxystudio/node-cross-spawn/issues/94)) ([d5770df](https://github.com/moxystudio/node-cross-spawn/commit/d5770df)), closes [/nodejs.org/api/deprecations.html#deprecations_dep0005](https://github.com//nodejs.org/api/deprecations.html/issues/deprecations_dep0005) + + + + +## [6.0.4](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.3...v6.0.4) (2018-01-31) + + +### Bug Fixes + +* fix paths being incorrectly normalized on unix ([06ee3c6](https://github.com/moxystudio/node-cross-spawn/commit/06ee3c6)), closes [#90](https://github.com/moxystudio/node-cross-spawn/issues/90) + + + + +## [6.0.3](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.2...v6.0.3) (2018-01-23) + + + + +## [6.0.2](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.1...v6.0.2) (2018-01-23) + + + + +## [6.0.1](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.0...v6.0.1) (2018-01-23) + + + + +# [6.0.0](https://github.com/moxystudio/node-cross-spawn/compare/5.1.0...6.0.0) (2018-01-23) + + +### Bug Fixes + +* fix certain arguments not being correctly escaped or causing batch syntax error ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)), closes [#82](https://github.com/moxystudio/node-cross-spawn/issues/82) [#51](https://github.com/moxystudio/node-cross-spawn/issues/51) +* fix commands as posix relatixe paths not working correctly, e.g.: `./my-command` ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) +* fix `options` argument being mutated ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) +* fix commands resolution when PATH was actually Path ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) + + +### Features + +* improve compliance with node's ENOENT errors ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) +* improve detection of node's shell option support ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) + + +### Chores + +* upgrade tooling +* upgrate project to es6 (node v4) + + +### BREAKING CHANGES + +* remove support for older nodejs versions, only `node >= 4` is supported + + + +## [5.1.0](https://github.com/moxystudio/node-cross-spawn/compare/5.0.1...5.1.0) (2017-02-26) + + +### Bug Fixes + +* fix `options.shell` support for NodeJS [v4.8](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V4.md#4.8.0) + + + +## [5.0.1](https://github.com/moxystudio/node-cross-spawn/compare/5.0.0...5.0.1) (2016-11-04) + + +### Bug Fixes + +* fix `options.shell` support for NodeJS v7 + + + +# [5.0.0](https://github.com/moxystudio/node-cross-spawn/compare/4.0.2...5.0.0) (2016-10-30) + + +## Features + +* add support for `options.shell` +* improve parsing of shebangs by using [`shebang-command`](https://github.com/kevva/shebang-command) module + + +## Chores + +* refactor some code to make it more clear +* update README caveats diff --git a/node_modules/cross-spawn/LICENSE b/node_modules/cross-spawn/LICENSE new file mode 100644 index 0000000..8407b9a --- /dev/null +++ b/node_modules/cross-spawn/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Made With MOXY Lda + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/cross-spawn/README.md b/node_modules/cross-spawn/README.md new file mode 100644 index 0000000..e895cd7 --- /dev/null +++ b/node_modules/cross-spawn/README.md @@ -0,0 +1,94 @@ +# cross-spawn + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Build status][appveyor-image]][appveyor-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url] [![Greenkeeper badge][greenkeeper-image]][greenkeeper-url] + +[npm-url]:https://npmjs.org/package/cross-spawn +[downloads-image]:http://img.shields.io/npm/dm/cross-spawn.svg +[npm-image]:http://img.shields.io/npm/v/cross-spawn.svg +[travis-url]:https://travis-ci.org/moxystudio/node-cross-spawn +[travis-image]:http://img.shields.io/travis/moxystudio/node-cross-spawn/master.svg +[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn +[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn/master.svg +[codecov-url]:https://codecov.io/gh/moxystudio/node-cross-spawn +[codecov-image]:https://img.shields.io/codecov/c/github/moxystudio/node-cross-spawn/master.svg +[david-dm-url]:https://david-dm.org/moxystudio/node-cross-spawn +[david-dm-image]:https://img.shields.io/david/moxystudio/node-cross-spawn.svg +[david-dm-dev-url]:https://david-dm.org/moxystudio/node-cross-spawn?type=dev +[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/node-cross-spawn.svg +[greenkeeper-image]:https://badges.greenkeeper.io/moxystudio/node-cross-spawn.svg +[greenkeeper-url]:https://greenkeeper.io/ + +A cross platform solution to node's spawn and spawnSync. + + +## Installation + +`$ npm install cross-spawn` + + +## Why + +Node has issues when using spawn on Windows: + +- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318) +- It does not support [shebangs](https://en.wikipedia.org/wiki/Shebang_(Unix)) +- Has problems running commands with [spaces](https://github.com/nodejs/node/issues/7367) +- Has problems running commands with posix relative paths (e.g.: `./my-folder/my-executable`) +- Has an [issue](https://github.com/moxystudio/node-cross-spawn/issues/82) with command shims (files in `node_modules/.bin/`), where arguments with quotes and parenthesis would result in [invalid syntax error](https://github.com/moxystudio/node-cross-spawn/blob/e77b8f22a416db46b6196767bcd35601d7e11d54/test/index.test.js#L149) +- No `options.shell` support on node `` where `` must not contain any arguments. +If you would like to have the shebang support improved, feel free to contribute via a pull-request. + +Remember to always test your code on Windows! + + +## Tests + +`$ npm test` +`$ npm test -- --watch` during development + +## License + +Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php). diff --git a/node_modules/cross-spawn/index.js b/node_modules/cross-spawn/index.js new file mode 100644 index 0000000..5509742 --- /dev/null +++ b/node_modules/cross-spawn/index.js @@ -0,0 +1,39 @@ +'use strict'; + +const cp = require('child_process'); +const parse = require('./lib/parse'); +const enoent = require('./lib/enoent'); + +function spawn(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); + + // Spawn the child process + const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); + + // Hook into child process "exit" event to emit an error if the command + // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + enoent.hookChildProcess(spawned, parsed); + + return spawned; +} + +function spawnSync(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); + + // Spawn the child process + const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); + + // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); + + return result; +} + +module.exports = spawn; +module.exports.spawn = spawn; +module.exports.sync = spawnSync; + +module.exports._parse = parse; +module.exports._enoent = enoent; diff --git a/node_modules/cross-spawn/lib/enoent.js b/node_modules/cross-spawn/lib/enoent.js new file mode 100644 index 0000000..14df9b6 --- /dev/null +++ b/node_modules/cross-spawn/lib/enoent.js @@ -0,0 +1,59 @@ +'use strict'; + +const isWin = process.platform === 'win32'; + +function notFoundError(original, syscall) { + return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { + code: 'ENOENT', + errno: 'ENOENT', + syscall: `${syscall} ${original.command}`, + path: original.command, + spawnargs: original.args, + }); +} + +function hookChildProcess(cp, parsed) { + if (!isWin) { + return; + } + + const originalEmit = cp.emit; + + cp.emit = function (name, arg1) { + // If emitting "exit" event and exit code is 1, we need to check if + // the command exists and emit an "error" instead + // See https://github.com/IndigoUnited/node-cross-spawn/issues/16 + if (name === 'exit') { + const err = verifyENOENT(arg1, parsed, 'spawn'); + + if (err) { + return originalEmit.call(cp, 'error', err); + } + } + + return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params + }; +} + +function verifyENOENT(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawn'); + } + + return null; +} + +function verifyENOENTSync(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawnSync'); + } + + return null; +} + +module.exports = { + hookChildProcess, + verifyENOENT, + verifyENOENTSync, + notFoundError, +}; diff --git a/node_modules/cross-spawn/lib/parse.js b/node_modules/cross-spawn/lib/parse.js new file mode 100644 index 0000000..962827a --- /dev/null +++ b/node_modules/cross-spawn/lib/parse.js @@ -0,0 +1,125 @@ +'use strict'; + +const path = require('path'); +const niceTry = require('nice-try'); +const resolveCommand = require('./util/resolveCommand'); +const escape = require('./util/escape'); +const readShebang = require('./util/readShebang'); +const semver = require('semver'); + +const isWin = process.platform === 'win32'; +const isExecutableRegExp = /\.(?:com|exe)$/i; +const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; + +// `options.shell` is supported in Node ^4.8.0, ^5.7.0 and >= 6.0.0 +const supportsShellOption = niceTry(() => semver.satisfies(process.version, '^4.8.0 || ^5.7.0 || >= 6.0.0', true)) || false; + +function detectShebang(parsed) { + parsed.file = resolveCommand(parsed); + + const shebang = parsed.file && readShebang(parsed.file); + + if (shebang) { + parsed.args.unshift(parsed.file); + parsed.command = shebang; + + return resolveCommand(parsed); + } + + return parsed.file; +} + +function parseNonShell(parsed) { + if (!isWin) { + return parsed; + } + + // Detect & add support for shebangs + const commandFile = detectShebang(parsed); + + // We don't need a shell if the command filename is an executable + const needsShell = !isExecutableRegExp.test(commandFile); + + // If a shell is required, use cmd.exe and take care of escaping everything correctly + // Note that `forceShell` is an hidden option used only in tests + if (parsed.options.forceShell || needsShell) { + // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/` + // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument + // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called, + // we need to double escape them + const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); + + // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar) + // This is necessary otherwise it will always fail with ENOENT in those cases + parsed.command = path.normalize(parsed.command); + + // Escape command & arguments + parsed.command = escape.command(parsed.command); + parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars)); + + const shellCommand = [parsed.command].concat(parsed.args).join(' '); + + parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; + parsed.command = process.env.comspec || 'cmd.exe'; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } + + return parsed; +} + +function parseShell(parsed) { + // If node supports the shell option, there's no need to mimic its behavior + if (supportsShellOption) { + return parsed; + } + + // Mimic node shell option + // See https://github.com/nodejs/node/blob/b9f6a2dc059a1062776133f3d4fd848c4da7d150/lib/child_process.js#L335 + const shellCommand = [parsed.command].concat(parsed.args).join(' '); + + if (isWin) { + parsed.command = typeof parsed.options.shell === 'string' ? parsed.options.shell : process.env.comspec || 'cmd.exe'; + parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } else { + if (typeof parsed.options.shell === 'string') { + parsed.command = parsed.options.shell; + } else if (process.platform === 'android') { + parsed.command = '/system/bin/sh'; + } else { + parsed.command = '/bin/sh'; + } + + parsed.args = ['-c', shellCommand]; + } + + return parsed; +} + +function parse(command, args, options) { + // Normalize arguments, similar to nodejs + if (args && !Array.isArray(args)) { + options = args; + args = null; + } + + args = args ? args.slice(0) : []; // Clone array to avoid changing the original + options = Object.assign({}, options); // Clone object to avoid changing the original + + // Build our parsed object + const parsed = { + command, + args, + options, + file: undefined, + original: { + command, + args, + }, + }; + + // Delegate further parsing to shell or non-shell + return options.shell ? parseShell(parsed) : parseNonShell(parsed); +} + +module.exports = parse; diff --git a/node_modules/cross-spawn/lib/util/escape.js b/node_modules/cross-spawn/lib/util/escape.js new file mode 100644 index 0000000..b0bb84c --- /dev/null +++ b/node_modules/cross-spawn/lib/util/escape.js @@ -0,0 +1,45 @@ +'use strict'; + +// See http://www.robvanderwoude.com/escapechars.php +const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; + +function escapeCommand(arg) { + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); + + return arg; +} + +function escapeArgument(arg, doubleEscapeMetaChars) { + // Convert to string + arg = `${arg}`; + + // Algorithm below is based on https://qntm.org/cmd + + // Sequence of backslashes followed by a double quote: + // double up all the backslashes and escape the double quote + arg = arg.replace(/(\\*)"/g, '$1$1\\"'); + + // Sequence of backslashes followed by the end of the string + // (which will become a double quote later): + // double up all the backslashes + arg = arg.replace(/(\\*)$/, '$1$1'); + + // All other backslashes occur literally + + // Quote the whole thing: + arg = `"${arg}"`; + + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); + + // Double escape meta chars if necessary + if (doubleEscapeMetaChars) { + arg = arg.replace(metaCharsRegExp, '^$1'); + } + + return arg; +} + +module.exports.command = escapeCommand; +module.exports.argument = escapeArgument; diff --git a/node_modules/cross-spawn/lib/util/readShebang.js b/node_modules/cross-spawn/lib/util/readShebang.js new file mode 100644 index 0000000..bd4f128 --- /dev/null +++ b/node_modules/cross-spawn/lib/util/readShebang.js @@ -0,0 +1,32 @@ +'use strict'; + +const fs = require('fs'); +const shebangCommand = require('shebang-command'); + +function readShebang(command) { + // Read the first 150 bytes from the file + const size = 150; + let buffer; + + if (Buffer.alloc) { + // Node.js v4.5+ / v5.10+ + buffer = Buffer.alloc(size); + } else { + // Old Node.js API + buffer = new Buffer(size); + buffer.fill(0); // zero-fill + } + + let fd; + + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, size, 0); + fs.closeSync(fd); + } catch (e) { /* Empty */ } + + // Attempt to extract shebang (null is returned if not a shebang) + return shebangCommand(buffer.toString()); +} + +module.exports = readShebang; diff --git a/node_modules/cross-spawn/lib/util/resolveCommand.js b/node_modules/cross-spawn/lib/util/resolveCommand.js new file mode 100644 index 0000000..2fd5ad2 --- /dev/null +++ b/node_modules/cross-spawn/lib/util/resolveCommand.js @@ -0,0 +1,47 @@ +'use strict'; + +const path = require('path'); +const which = require('which'); +const pathKey = require('path-key')(); + +function resolveCommandAttempt(parsed, withoutPathExt) { + const cwd = process.cwd(); + const hasCustomCwd = parsed.options.cwd != null; + + // If a custom `cwd` was specified, we need to change the process cwd + // because `which` will do stat calls but does not support a custom cwd + if (hasCustomCwd) { + try { + process.chdir(parsed.options.cwd); + } catch (err) { + /* Empty */ + } + } + + let resolved; + + try { + resolved = which.sync(parsed.command, { + path: (parsed.options.env || process.env)[pathKey], + pathExt: withoutPathExt ? path.delimiter : undefined, + }); + } catch (e) { + /* Empty */ + } finally { + process.chdir(cwd); + } + + // If we successfully resolved, ensure that an absolute path is returned + // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it + if (resolved) { + resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); + } + + return resolved; +} + +function resolveCommand(parsed) { + return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); +} + +module.exports = resolveCommand; diff --git a/node_modules/cross-spawn/package.json b/node_modules/cross-spawn/package.json new file mode 100644 index 0000000..1a69be8 --- /dev/null +++ b/node_modules/cross-spawn/package.json @@ -0,0 +1,76 @@ +{ + "name": "cross-spawn", + "version": "6.0.5", + "description": "Cross platform child_process#spawn and child_process#spawnSync", + "keywords": [ + "spawn", + "spawnSync", + "windows", + "cross-platform", + "path-ext", + "shebang", + "cmd", + "execute" + ], + "author": "André Cruz ", + "homepage": "https://github.com/moxystudio/node-cross-spawn", + "repository": { + "type": "git", + "url": "git@github.com:moxystudio/node-cross-spawn.git" + }, + "license": "MIT", + "main": "index.js", + "files": [ + "lib" + ], + "scripts": { + "lint": "eslint .", + "test": "jest --env node --coverage", + "prerelease": "npm t && npm run lint", + "release": "standard-version", + "precommit": "lint-staged", + "commitmsg": "commitlint -e $GIT_PARAMS" + }, + "standard-version": { + "scripts": { + "posttag": "git push --follow-tags origin master && npm publish" + } + }, + "lint-staged": { + "*.js": [ + "eslint --fix", + "git add" + ] + }, + "commitlint": { + "extends": [ + "@commitlint/config-conventional" + ] + }, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "devDependencies": { + "@commitlint/cli": "^6.0.0", + "@commitlint/config-conventional": "^6.0.2", + "babel-core": "^6.26.0", + "babel-jest": "^22.1.0", + "babel-preset-moxy": "^2.2.1", + "eslint": "^4.3.0", + "eslint-config-moxy": "^5.0.0", + "husky": "^0.14.3", + "jest": "^22.0.0", + "lint-staged": "^7.0.0", + "mkdirp": "^0.5.1", + "regenerator-runtime": "^0.11.1", + "rimraf": "^2.6.2", + "standard-version": "^4.2.0" + }, + "engines": { + "node": ">=4.8" + } +} diff --git a/node_modules/deprecation/LICENSE b/node_modules/deprecation/LICENSE new file mode 100644 index 0000000..1683b58 --- /dev/null +++ b/node_modules/deprecation/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Gregor Martynus and contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/deprecation/README.md b/node_modules/deprecation/README.md new file mode 100644 index 0000000..648809d --- /dev/null +++ b/node_modules/deprecation/README.md @@ -0,0 +1,77 @@ +# deprecation + +> Log a deprecation message with stack + +![build](https://action-badges.now.sh/gr2m/deprecation) + +## Usage + + + + + + +
+Browsers + + +Load `deprecation` directly from [cdn.pika.dev](https://cdn.pika.dev) + +```html + +``` + +
+Node + + +Install with `npm install deprecation` + +```js +const { Deprecation } = require("deprecation"); +// or: import { Deprecation } from "deprecation"; +``` + +
+ +```js +function foo() { + bar(); +} + +function bar() { + baz(); +} + +function baz() { + console.warn(new Deprecation("[my-lib] foo() is deprecated, use bar()")); +} + +foo(); +// { Deprecation: [my-lib] foo() is deprecated, use bar() +// at baz (/path/to/file.js:12:15) +// at bar (/path/to/file.js:8:3) +// at foo (/path/to/file.js:4:3) +``` + +To log a deprecation message only once, you can use the [once](https://www.npmjs.com/package/once) module. + +```js +const Deprecation = require("deprecation"); +const once = require("once"); + +const deprecateFoo = once(console.warn); + +function foo() { + deprecateFoo(new Deprecation("[my-lib] foo() is deprecated, use bar()")); +} + +foo(); +foo(); // logs nothing +``` + +## License + +[ISC](LICENSE) diff --git a/node_modules/deprecation/dist-node/index.js b/node_modules/deprecation/dist-node/index.js new file mode 100644 index 0000000..9da1775 --- /dev/null +++ b/node_modules/deprecation/dist-node/index.js @@ -0,0 +1,20 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +exports.Deprecation = Deprecation; diff --git a/node_modules/deprecation/dist-src/index.js b/node_modules/deprecation/dist-src/index.js new file mode 100644 index 0000000..7950fdc --- /dev/null +++ b/node_modules/deprecation/dist-src/index.js @@ -0,0 +1,14 @@ +export class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} \ No newline at end of file diff --git a/node_modules/deprecation/dist-types/index.d.ts b/node_modules/deprecation/dist-types/index.d.ts new file mode 100644 index 0000000..e3ae7ad --- /dev/null +++ b/node_modules/deprecation/dist-types/index.d.ts @@ -0,0 +1,3 @@ +export class Deprecation extends Error { + name: "Deprecation"; +} diff --git a/node_modules/deprecation/dist-web/index.js b/node_modules/deprecation/dist-web/index.js new file mode 100644 index 0000000..c6bbda7 --- /dev/null +++ b/node_modules/deprecation/dist-web/index.js @@ -0,0 +1,16 @@ +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +export { Deprecation }; diff --git a/node_modules/deprecation/package.json b/node_modules/deprecation/package.json new file mode 100644 index 0000000..a45fd51 --- /dev/null +++ b/node_modules/deprecation/package.json @@ -0,0 +1,34 @@ +{ + "name": "deprecation", + "description": "Log a deprecation message with stack", + "version": "2.3.1", + "license": "ISC", + "files": [ + "dist-*/", + "bin/" + ], + "esnext": "dist-src/index.js", + "main": "dist-node/index.js", + "module": "dist-web/index.js", + "types": "dist-types/index.d.ts", + "pika": true, + "sideEffects": false, + "keywords": [ + "deprecate", + "deprecated", + "deprecation" + ], + "repository": { + "type": "git", + "url": "https://github.com/gr2m/deprecation.git" + }, + "dependencies": {}, + "devDependencies": { + "@pika/pack": "^0.3.7", + "@pika/plugin-build-node": "^0.4.0", + "@pika/plugin-build-types": "^0.4.0", + "@pika/plugin-build-web": "^0.4.0", + "@pika/plugin-standard-pkg": "^0.4.0", + "semantic-release": "^15.13.3" + } +} diff --git a/node_modules/end-of-stream/LICENSE b/node_modules/end-of-stream/LICENSE new file mode 100644 index 0000000..757562e --- /dev/null +++ b/node_modules/end-of-stream/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Mathias Buus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/end-of-stream/README.md b/node_modules/end-of-stream/README.md new file mode 100644 index 0000000..f2560c9 --- /dev/null +++ b/node_modules/end-of-stream/README.md @@ -0,0 +1,52 @@ +# end-of-stream + +A node module that calls a callback when a readable/writable/duplex stream has completed or failed. + + npm install end-of-stream + +## Usage + +Simply pass a stream and a callback to the `eos`. +Both legacy streams, streams2 and stream3 are supported. + +``` js +var eos = require('end-of-stream'); + +eos(readableStream, function(err) { + // this will be set to the stream instance + if (err) return console.log('stream had an error or closed early'); + console.log('stream has ended', this === readableStream); +}); + +eos(writableStream, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has finished', this === writableStream); +}); + +eos(duplexStream, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has ended and finished', this === duplexStream); +}); + +eos(duplexStream, {readable:false}, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has finished but might still be readable'); +}); + +eos(duplexStream, {writable:false}, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has ended but might still be writable'); +}); + +eos(readableStream, {error:false}, function(err) { + // do not treat emit('error', err) as a end-of-stream +}); +``` + +## License + +MIT + +## Related + +`end-of-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. diff --git a/node_modules/end-of-stream/index.js b/node_modules/end-of-stream/index.js new file mode 100644 index 0000000..be426c2 --- /dev/null +++ b/node_modules/end-of-stream/index.js @@ -0,0 +1,87 @@ +var once = require('once'); + +var noop = function() {}; + +var isRequest = function(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +}; + +var isChildProcess = function(stream) { + return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +}; + +var eos = function(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + + callback = once(callback || noop); + + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + + var onlegacyfinish = function() { + if (!stream.writable) onfinish(); + }; + + var onfinish = function() { + writable = false; + if (!readable) callback.call(stream); + }; + + var onend = function() { + readable = false; + if (!writable) callback.call(stream); + }; + + var onexit = function(exitCode) { + callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); + }; + + var onerror = function(err) { + callback.call(stream, err); + }; + + var onclose = function() { + if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close')); + if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close')); + }; + + var onrequest = function() { + stream.req.on('finish', onfinish); + }; + + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest(); + else stream.on('request', onrequest); + } else if (writable && !ws) { // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + + if (isChildProcess(stream)) stream.on('exit', onexit); + + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + + return function() { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('exit', onexit); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +}; + +module.exports = eos; diff --git a/node_modules/end-of-stream/package.json b/node_modules/end-of-stream/package.json new file mode 100644 index 0000000..8d19493 --- /dev/null +++ b/node_modules/end-of-stream/package.json @@ -0,0 +1,34 @@ +{ + "name": "end-of-stream", + "version": "1.4.1", + "description": "Call a callback when a readable/writable/duplex stream has completed or failed.", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/end-of-stream.git" + }, + "dependencies": { + "once": "^1.4.0" + }, + "scripts": { + "test": "node test.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "stream", + "streams", + "callback", + "finish", + "close", + "end", + "wait" + ], + "bugs": { + "url": "https://github.com/mafintosh/end-of-stream/issues" + }, + "homepage": "https://github.com/mafintosh/end-of-stream", + "main": "index.js", + "author": "Mathias Buus ", + "license": "MIT" +} diff --git a/node_modules/execa/index.js b/node_modules/execa/index.js new file mode 100644 index 0000000..aad9ac8 --- /dev/null +++ b/node_modules/execa/index.js @@ -0,0 +1,361 @@ +'use strict'; +const path = require('path'); +const childProcess = require('child_process'); +const crossSpawn = require('cross-spawn'); +const stripEof = require('strip-eof'); +const npmRunPath = require('npm-run-path'); +const isStream = require('is-stream'); +const _getStream = require('get-stream'); +const pFinally = require('p-finally'); +const onExit = require('signal-exit'); +const errname = require('./lib/errname'); +const stdio = require('./lib/stdio'); + +const TEN_MEGABYTES = 1000 * 1000 * 10; + +function handleArgs(cmd, args, opts) { + let parsed; + + opts = Object.assign({ + extendEnv: true, + env: {} + }, opts); + + if (opts.extendEnv) { + opts.env = Object.assign({}, process.env, opts.env); + } + + if (opts.__winShell === true) { + delete opts.__winShell; + parsed = { + command: cmd, + args, + options: opts, + file: cmd, + original: { + cmd, + args + } + }; + } else { + parsed = crossSpawn._parse(cmd, args, opts); + } + + opts = Object.assign({ + maxBuffer: TEN_MEGABYTES, + buffer: true, + stripEof: true, + preferLocal: true, + localDir: parsed.options.cwd || process.cwd(), + encoding: 'utf8', + reject: true, + cleanup: true + }, parsed.options); + + opts.stdio = stdio(opts); + + if (opts.preferLocal) { + opts.env = npmRunPath.env(Object.assign({}, opts, {cwd: opts.localDir})); + } + + if (opts.detached) { + // #115 + opts.cleanup = false; + } + + if (process.platform === 'win32' && path.basename(parsed.command) === 'cmd.exe') { + // #116 + parsed.args.unshift('/q'); + } + + return { + cmd: parsed.command, + args: parsed.args, + opts, + parsed + }; +} + +function handleInput(spawned, input) { + if (input === null || input === undefined) { + return; + } + + if (isStream(input)) { + input.pipe(spawned.stdin); + } else { + spawned.stdin.end(input); + } +} + +function handleOutput(opts, val) { + if (val && opts.stripEof) { + val = stripEof(val); + } + + return val; +} + +function handleShell(fn, cmd, opts) { + let file = '/bin/sh'; + let args = ['-c', cmd]; + + opts = Object.assign({}, opts); + + if (process.platform === 'win32') { + opts.__winShell = true; + file = process.env.comspec || 'cmd.exe'; + args = ['/s', '/c', `"${cmd}"`]; + opts.windowsVerbatimArguments = true; + } + + if (opts.shell) { + file = opts.shell; + delete opts.shell; + } + + return fn(file, args, opts); +} + +function getStream(process, stream, {encoding, buffer, maxBuffer}) { + if (!process[stream]) { + return null; + } + + let ret; + + if (!buffer) { + // TODO: Use `ret = util.promisify(stream.finished)(process[stream]);` when targeting Node.js 10 + ret = new Promise((resolve, reject) => { + process[stream] + .once('end', resolve) + .once('error', reject); + }); + } else if (encoding) { + ret = _getStream(process[stream], { + encoding, + maxBuffer + }); + } else { + ret = _getStream.buffer(process[stream], {maxBuffer}); + } + + return ret.catch(err => { + err.stream = stream; + err.message = `${stream} ${err.message}`; + throw err; + }); +} + +function makeError(result, options) { + const {stdout, stderr} = result; + + let err = result.error; + const {code, signal} = result; + + const {parsed, joinedCmd} = options; + const timedOut = options.timedOut || false; + + if (!err) { + let output = ''; + + if (Array.isArray(parsed.opts.stdio)) { + if (parsed.opts.stdio[2] !== 'inherit') { + output += output.length > 0 ? stderr : `\n${stderr}`; + } + + if (parsed.opts.stdio[1] !== 'inherit') { + output += `\n${stdout}`; + } + } else if (parsed.opts.stdio !== 'inherit') { + output = `\n${stderr}${stdout}`; + } + + err = new Error(`Command failed: ${joinedCmd}${output}`); + err.code = code < 0 ? errname(code) : code; + } + + err.stdout = stdout; + err.stderr = stderr; + err.failed = true; + err.signal = signal || null; + err.cmd = joinedCmd; + err.timedOut = timedOut; + + return err; +} + +function joinCmd(cmd, args) { + let joinedCmd = cmd; + + if (Array.isArray(args) && args.length > 0) { + joinedCmd += ' ' + args.join(' '); + } + + return joinedCmd; +} + +module.exports = (cmd, args, opts) => { + const parsed = handleArgs(cmd, args, opts); + const {encoding, buffer, maxBuffer} = parsed.opts; + const joinedCmd = joinCmd(cmd, args); + + let spawned; + try { + spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts); + } catch (err) { + return Promise.reject(err); + } + + let removeExitHandler; + if (parsed.opts.cleanup) { + removeExitHandler = onExit(() => { + spawned.kill(); + }); + } + + let timeoutId = null; + let timedOut = false; + + const cleanup = () => { + if (timeoutId) { + clearTimeout(timeoutId); + timeoutId = null; + } + + if (removeExitHandler) { + removeExitHandler(); + } + }; + + if (parsed.opts.timeout > 0) { + timeoutId = setTimeout(() => { + timeoutId = null; + timedOut = true; + spawned.kill(parsed.opts.killSignal); + }, parsed.opts.timeout); + } + + const processDone = new Promise(resolve => { + spawned.on('exit', (code, signal) => { + cleanup(); + resolve({code, signal}); + }); + + spawned.on('error', err => { + cleanup(); + resolve({error: err}); + }); + + if (spawned.stdin) { + spawned.stdin.on('error', err => { + cleanup(); + resolve({error: err}); + }); + } + }); + + function destroy() { + if (spawned.stdout) { + spawned.stdout.destroy(); + } + + if (spawned.stderr) { + spawned.stderr.destroy(); + } + } + + const handlePromise = () => pFinally(Promise.all([ + processDone, + getStream(spawned, 'stdout', {encoding, buffer, maxBuffer}), + getStream(spawned, 'stderr', {encoding, buffer, maxBuffer}) + ]).then(arr => { + const result = arr[0]; + result.stdout = arr[1]; + result.stderr = arr[2]; + + if (result.error || result.code !== 0 || result.signal !== null) { + const err = makeError(result, { + joinedCmd, + parsed, + timedOut + }); + + // TODO: missing some timeout logic for killed + // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203 + // err.killed = spawned.killed || killed; + err.killed = err.killed || spawned.killed; + + if (!parsed.opts.reject) { + return err; + } + + throw err; + } + + return { + stdout: handleOutput(parsed.opts, result.stdout), + stderr: handleOutput(parsed.opts, result.stderr), + code: 0, + failed: false, + killed: false, + signal: null, + cmd: joinedCmd, + timedOut: false + }; + }), destroy); + + crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); + + handleInput(spawned, parsed.opts.input); + + spawned.then = (onfulfilled, onrejected) => handlePromise().then(onfulfilled, onrejected); + spawned.catch = onrejected => handlePromise().catch(onrejected); + + return spawned; +}; + +// TODO: set `stderr: 'ignore'` when that option is implemented +module.exports.stdout = (...args) => module.exports(...args).then(x => x.stdout); + +// TODO: set `stdout: 'ignore'` when that option is implemented +module.exports.stderr = (...args) => module.exports(...args).then(x => x.stderr); + +module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts); + +module.exports.sync = (cmd, args, opts) => { + const parsed = handleArgs(cmd, args, opts); + const joinedCmd = joinCmd(cmd, args); + + if (isStream(parsed.opts.input)) { + throw new TypeError('The `input` option cannot be a stream in sync mode'); + } + + const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts); + result.code = result.status; + + if (result.error || result.status !== 0 || result.signal !== null) { + const err = makeError(result, { + joinedCmd, + parsed + }); + + if (!parsed.opts.reject) { + return err; + } + + throw err; + } + + return { + stdout: handleOutput(parsed.opts, result.stdout), + stderr: handleOutput(parsed.opts, result.stderr), + code: 0, + failed: false, + signal: null, + cmd: joinedCmd, + timedOut: false + }; +}; + +module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts); diff --git a/node_modules/execa/lib/errname.js b/node_modules/execa/lib/errname.js new file mode 100644 index 0000000..e367837 --- /dev/null +++ b/node_modules/execa/lib/errname.js @@ -0,0 +1,39 @@ +'use strict'; +// Older verions of Node.js might not have `util.getSystemErrorName()`. +// In that case, fall back to a deprecated internal. +const util = require('util'); + +let uv; + +if (typeof util.getSystemErrorName === 'function') { + module.exports = util.getSystemErrorName; +} else { + try { + uv = process.binding('uv'); + + if (typeof uv.errname !== 'function') { + throw new TypeError('uv.errname is not a function'); + } + } catch (err) { + console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err); + uv = null; + } + + module.exports = code => errname(uv, code); +} + +// Used for testing the fallback behavior +module.exports.__test__ = errname; + +function errname(uv, code) { + if (uv) { + return uv.errname(code); + } + + if (!(code < 0)) { + throw new Error('err >= 0'); + } + + return `Unknown system error ${code}`; +} + diff --git a/node_modules/execa/lib/stdio.js b/node_modules/execa/lib/stdio.js new file mode 100644 index 0000000..a82d468 --- /dev/null +++ b/node_modules/execa/lib/stdio.js @@ -0,0 +1,41 @@ +'use strict'; +const alias = ['stdin', 'stdout', 'stderr']; + +const hasAlias = opts => alias.some(x => Boolean(opts[x])); + +module.exports = opts => { + if (!opts) { + return null; + } + + if (opts.stdio && hasAlias(opts)) { + throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`); + } + + if (typeof opts.stdio === 'string') { + return opts.stdio; + } + + const stdio = opts.stdio || []; + + if (!Array.isArray(stdio)) { + throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); + } + + const result = []; + const len = Math.max(stdio.length, alias.length); + + for (let i = 0; i < len; i++) { + let value = null; + + if (stdio[i] !== undefined) { + value = stdio[i]; + } else if (opts[alias[i]] !== undefined) { + value = opts[alias[i]]; + } + + result[i] = value; + } + + return result; +}; diff --git a/node_modules/execa/license b/node_modules/execa/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/execa/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/execa/package.json b/node_modules/execa/package.json new file mode 100644 index 0000000..ad98225 --- /dev/null +++ b/node_modules/execa/package.json @@ -0,0 +1,69 @@ +{ + "name": "execa", + "version": "1.0.0", + "description": "A better `child_process`", + "license": "MIT", + "repository": "sindresorhus/execa", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "files": [ + "index.js", + "lib" + ], + "keywords": [ + "exec", + "child", + "process", + "execute", + "fork", + "execfile", + "spawn", + "file", + "shell", + "bin", + "binary", + "binaries", + "npm", + "path", + "local" + ], + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "devDependencies": { + "ava": "*", + "cat-names": "^1.0.2", + "coveralls": "^3.0.1", + "delay": "^3.0.0", + "is-running": "^2.0.0", + "nyc": "^13.0.1", + "tempfile": "^2.0.0", + "xo": "*" + }, + "nyc": { + "reporter": [ + "text", + "lcov" + ], + "exclude": [ + "**/fixtures/**", + "**/test.js", + "**/test/**" + ] + } +} diff --git a/node_modules/execa/readme.md b/node_modules/execa/readme.md new file mode 100644 index 0000000..f3f533d --- /dev/null +++ b/node_modules/execa/readme.md @@ -0,0 +1,327 @@ +# execa [![Build Status: Linux](https://travis-ci.org/sindresorhus/execa.svg?branch=master)](https://travis-ci.org/sindresorhus/execa) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/x5ajamxtjtt93cqv/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/execa/branch/master) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/execa/badge.svg?branch=master)](https://coveralls.io/github/sindresorhus/execa?branch=master) + +> A better [`child_process`](https://nodejs.org/api/child_process.html) + + +## Why + +- Promise interface. +- [Strips EOF](https://github.com/sindresorhus/strip-eof) from the output so you don't have to `stdout.trim()`. +- Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform. +- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why) +- Higher max buffer. 10 MB instead of 200 KB. +- [Executes locally installed binaries by name.](#preferlocal) +- [Cleans up spawned processes when the parent process dies.](#cleanup) + + +## Install + +``` +$ npm install execa +``` + + + + + + +## Usage + +```js +const execa = require('execa'); + +(async () => { + const {stdout} = await execa('echo', ['unicorns']); + console.log(stdout); + //=> 'unicorns' +})(); +``` + +Additional examples: + +```js +const execa = require('execa'); + +(async () => { + // Pipe the child process stdout to the current stdout + execa('echo', ['unicorns']).stdout.pipe(process.stdout); + + + // Run a shell command + const {stdout} = await execa.shell('echo unicorns'); + //=> 'unicorns' + + + // Catching an error + try { + await execa.shell('exit 3'); + } catch (error) { + console.log(error); + /* + { + message: 'Command failed: /bin/sh -c exit 3' + killed: false, + code: 3, + signal: null, + cmd: '/bin/sh -c exit 3', + stdout: '', + stderr: '', + timedOut: false + } + */ + } +})(); + +// Catching an error with a sync method +try { + execa.shellSync('exit 3'); +} catch (error) { + console.log(error); + /* + { + message: 'Command failed: /bin/sh -c exit 3' + code: 3, + signal: null, + cmd: '/bin/sh -c exit 3', + stdout: '', + stderr: '', + timedOut: false + } + */ +} +``` + + +## API + +### execa(file, [arguments], [options]) + +Execute a file. + +Think of this as a mix of `child_process.execFile` and `child_process.spawn`. + +Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. + +### execa.stdout(file, [arguments], [options]) + +Same as `execa()`, but returns only `stdout`. + +### execa.stderr(file, [arguments], [options]) + +Same as `execa()`, but returns only `stderr`. + +### execa.shell(command, [options]) + +Execute a command through the system shell. Prefer `execa()` whenever possible, as it's both faster and safer. + +Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess). + +The `child_process` instance is enhanced to also be promise for a result object with `stdout` and `stderr` properties. + +### execa.sync(file, [arguments], [options]) + +Execute a file synchronously. + +Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options). + +This method throws an `Error` if the command fails. + +### execa.shellSync(file, [options]) + +Execute a command synchronously through the system shell. + +Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options). + +### options + +Type: `Object` + +#### cwd + +Type: `string`
+Default: `process.cwd()` + +Current working directory of the child process. + +#### env + +Type: `Object`
+Default: `process.env` + +Environment key-value pairs. Extends automatically from `process.env`. Set `extendEnv` to `false` if you don't want this. + +#### extendEnv + +Type: `boolean`
+Default: `true` + +Set to `false` if you don't want to extend the environment variables when providing the `env` property. + +#### argv0 + +Type: `string` + +Explicitly set the value of `argv[0]` sent to the child process. This will be set to `command` or `file` if not specified. + +#### stdio + +Type: `string[]` `string`
+Default: `pipe` + +Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration. + +#### detached + +Type: `boolean` + +Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached). + +#### uid + +Type: `number` + +Sets the user identity of the process. + +#### gid + +Type: `number` + +Sets the group identity of the process. + +#### shell + +Type: `boolean` `string`
+Default: `false` + +If `true`, runs `command` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows. + +#### stripEof + +Type: `boolean`
+Default: `true` + +[Strip EOF](https://github.com/sindresorhus/strip-eof) (last newline) from the output. + +#### preferLocal + +Type: `boolean`
+Default: `true` + +Prefer locally installed binaries when looking for a binary to execute.
+If you `$ npm install foo`, you can then `execa('foo')`. + +#### localDir + +Type: `string`
+Default: `process.cwd()` + +Preferred path to find locally installed binaries in (use with `preferLocal`). + +#### input + +Type: `string` `Buffer` `stream.Readable` + +Write some input to the `stdin` of your binary.
+Streams are not allowed when using the synchronous methods. + +#### reject + +Type: `boolean`
+Default: `true` + +Setting this to `false` resolves the promise with the error instead of rejecting it. + +#### cleanup + +Type: `boolean`
+Default: `true` + +Keep track of the spawned process and `kill` it when the parent process exits. + +#### encoding + +Type: `string`
+Default: `utf8` + +Specify the character encoding used to decode the `stdout` and `stderr` output. + +#### timeout + +Type: `number`
+Default: `0` + +If timeout is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than timeout milliseconds. + +#### buffer + +Type: `boolean`
+Default: `true` + +Buffer the output from the spawned process. When buffering is disabled you must consume the output of the `stdout` and `stderr` streams because the promise will not be resolved/rejected until they have completed. + +#### maxBuffer + +Type: `number`
+Default: `10000000` (10MB) + +Largest amount of data in bytes allowed on `stdout` or `stderr`. + +#### killSignal + +Type: `string` `number`
+Default: `SIGTERM` + +Signal value to be used when the spawned process will be killed. + +#### stdin + +Type: `string` `number` `Stream` `undefined` `null`
+Default: `pipe` + +Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). + +#### stdout + +Type: `string` `number` `Stream` `undefined` `null`
+Default: `pipe` + +Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). + +#### stderr + +Type: `string` `number` `Stream` `undefined` `null`
+Default: `pipe` + +Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). + +#### windowsVerbatimArguments + +Type: `boolean`
+Default: `false` + +If `true`, no quoting or escaping of arguments is done on Windows. Ignored on other platforms. This is set to `true` automatically when the `shell` option is `true`. + + +## Tips + +### Save and pipe output from a child process + +Let's say you want to show the output of a child process in real-time while also saving it to a variable. + +```js +const execa = require('execa'); +const getStream = require('get-stream'); + +const stream = execa('echo', ['foo']).stdout; + +stream.pipe(process.stdout); + +getStream(stream).then(value => { + console.log('child output:', value); +}); +``` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/fs.realpath/LICENSE b/node_modules/fs.realpath/LICENSE new file mode 100644 index 0000000..5bd884c --- /dev/null +++ b/node_modules/fs.realpath/LICENSE @@ -0,0 +1,43 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---- + +This library bundles a version of the `fs.realpath` and `fs.realpathSync` +methods from Node.js v0.10 under the terms of the Node.js MIT license. + +Node's license follows, also included at the header of `old.js` which contains +the licensed code: + + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. diff --git a/node_modules/fs.realpath/README.md b/node_modules/fs.realpath/README.md new file mode 100644 index 0000000..a42ceac --- /dev/null +++ b/node_modules/fs.realpath/README.md @@ -0,0 +1,33 @@ +# fs.realpath + +A backwards-compatible fs.realpath for Node v6 and above + +In Node v6, the JavaScript implementation of fs.realpath was replaced +with a faster (but less resilient) native implementation. That raises +new and platform-specific errors and cannot handle long or excessively +symlink-looping paths. + +This module handles those cases by detecting the new errors and +falling back to the JavaScript implementation. On versions of Node +prior to v6, it has no effect. + +## USAGE + +```js +var rp = require('fs.realpath') + +// async version +rp.realpath(someLongAndLoopingPath, function (er, real) { + // the ELOOP was handled, but it was a bit slower +}) + +// sync version +var real = rp.realpathSync(someLongAndLoopingPath) + +// monkeypatch at your own risk! +// This replaces the fs.realpath/fs.realpathSync builtins +rp.monkeypatch() + +// un-do the monkeypatching +rp.unmonkeypatch() +``` diff --git a/node_modules/fs.realpath/index.js b/node_modules/fs.realpath/index.js new file mode 100644 index 0000000..b09c7c7 --- /dev/null +++ b/node_modules/fs.realpath/index.js @@ -0,0 +1,66 @@ +module.exports = realpath +realpath.realpath = realpath +realpath.sync = realpathSync +realpath.realpathSync = realpathSync +realpath.monkeypatch = monkeypatch +realpath.unmonkeypatch = unmonkeypatch + +var fs = require('fs') +var origRealpath = fs.realpath +var origRealpathSync = fs.realpathSync + +var version = process.version +var ok = /^v[0-5]\./.test(version) +var old = require('./old.js') + +function newError (er) { + return er && er.syscall === 'realpath' && ( + er.code === 'ELOOP' || + er.code === 'ENOMEM' || + er.code === 'ENAMETOOLONG' + ) +} + +function realpath (p, cache, cb) { + if (ok) { + return origRealpath(p, cache, cb) + } + + if (typeof cache === 'function') { + cb = cache + cache = null + } + origRealpath(p, cache, function (er, result) { + if (newError(er)) { + old.realpath(p, cache, cb) + } else { + cb(er, result) + } + }) +} + +function realpathSync (p, cache) { + if (ok) { + return origRealpathSync(p, cache) + } + + try { + return origRealpathSync(p, cache) + } catch (er) { + if (newError(er)) { + return old.realpathSync(p, cache) + } else { + throw er + } + } +} + +function monkeypatch () { + fs.realpath = realpath + fs.realpathSync = realpathSync +} + +function unmonkeypatch () { + fs.realpath = origRealpath + fs.realpathSync = origRealpathSync +} diff --git a/node_modules/fs.realpath/old.js b/node_modules/fs.realpath/old.js new file mode 100644 index 0000000..b40305e --- /dev/null +++ b/node_modules/fs.realpath/old.js @@ -0,0 +1,303 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +var pathModule = require('path'); +var isWindows = process.platform === 'win32'; +var fs = require('fs'); + +// JavaScript implementation of realpath, ported from node pre-v6 + +var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + +function rethrow() { + // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and + // is fairly slow to generate. + var callback; + if (DEBUG) { + var backtrace = new Error; + callback = debugCallback; + } else + callback = missingCallback; + + return callback; + + function debugCallback(err) { + if (err) { + backtrace.message = err.message; + err = backtrace; + missingCallback(err); + } + } + + function missingCallback(err) { + if (err) { + if (process.throwDeprecation) + throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs + else if (!process.noDeprecation) { + var msg = 'fs: missing callback ' + (err.stack || err.message); + if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + } + } + } +} + +function maybeCallback(cb) { + return typeof cb === 'function' ? cb : rethrow(); +} + +var normalize = pathModule.normalize; + +// Regexp that finds the next partion of a (partial) path +// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] +if (isWindows) { + var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; +} else { + var nextPartRe = /(.*?)(?:[\/]+|$)/g; +} + +// Regex to find the device root, including trailing slash. E.g. 'c:\\'. +if (isWindows) { + var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; +} else { + var splitRootRe = /^[\/]*/; +} + +exports.realpathSync = function realpathSync(p, cache) { + // make p is absolute + p = pathModule.resolve(p); + + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return cache[p]; + } + + var original = p, + seenLinks = {}, + knownHard = {}; + + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; + + start(); + + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; + + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstatSync(base); + knownHard[base] = true; + } + } + + // walk down the path, swapping out linked pathparts for their real + // values + // NB: p.length changes. + while (pos < p.length) { + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + continue; + } + + var resolvedLink; + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // some known symbolic link. no need to stat again. + resolvedLink = cache[base]; + } else { + var stat = fs.lstatSync(base); + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + continue; + } + + // read the link if it wasn't read before + // dev/ino always return 0 on windows, so skip the check. + var linkTarget = null; + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + linkTarget = seenLinks[id]; + } + } + if (linkTarget === null) { + fs.statSync(base); + linkTarget = fs.readlinkSync(base); + } + resolvedLink = pathModule.resolve(previous, linkTarget); + // track this, if given a cache. + if (cache) cache[base] = resolvedLink; + if (!isWindows) seenLinks[id] = linkTarget; + } + + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } + + if (cache) cache[original] = p; + + return p; +}; + + +exports.realpath = function realpath(p, cache, cb) { + if (typeof cb !== 'function') { + cb = maybeCallback(cache); + cache = null; + } + + // make p is absolute + p = pathModule.resolve(p); + + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return process.nextTick(cb.bind(null, null, cache[p])); + } + + var original = p, + seenLinks = {}, + knownHard = {}; + + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; + + start(); + + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; + + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstat(base, function(err) { + if (err) return cb(err); + knownHard[base] = true; + LOOP(); + }); + } else { + process.nextTick(LOOP); + } + } + + // walk down the path, swapping out linked pathparts for their real + // values + function LOOP() { + // stop if scanned past end of path + if (pos >= p.length) { + if (cache) cache[original] = p; + return cb(null, p); + } + + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + return process.nextTick(LOOP); + } + + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // known symbolic link. no need to stat again. + return gotResolvedLink(cache[base]); + } + + return fs.lstat(base, gotStat); + } + + function gotStat(err, stat) { + if (err) return cb(err); + + // if not a symlink, skip to the next path part + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + return process.nextTick(LOOP); + } + + // stat & read the link if not read before + // call gotTarget as soon as the link target is known + // dev/ino always return 0 on windows, so skip the check. + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + return gotTarget(null, seenLinks[id], base); + } + } + fs.stat(base, function(err) { + if (err) return cb(err); + + fs.readlink(base, function(err, target) { + if (!isWindows) seenLinks[id] = target; + gotTarget(err, target); + }); + }); + } + + function gotTarget(err, target, base) { + if (err) return cb(err); + + var resolvedLink = pathModule.resolve(previous, target); + if (cache) cache[base] = resolvedLink; + gotResolvedLink(resolvedLink); + } + + function gotResolvedLink(resolvedLink) { + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } +}; diff --git a/node_modules/fs.realpath/package.json b/node_modules/fs.realpath/package.json new file mode 100644 index 0000000..3edc57d --- /dev/null +++ b/node_modules/fs.realpath/package.json @@ -0,0 +1,26 @@ +{ + "name": "fs.realpath", + "version": "1.0.0", + "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "scripts": { + "test": "tap test/*.js --cov" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/fs.realpath.git" + }, + "keywords": [ + "realpath", + "fs", + "polyfill" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "files": [ + "old.js", + "index.js" + ] +} diff --git a/node_modules/get-stream/buffer-stream.js b/node_modules/get-stream/buffer-stream.js new file mode 100644 index 0000000..4121c8e --- /dev/null +++ b/node_modules/get-stream/buffer-stream.js @@ -0,0 +1,51 @@ +'use strict'; +const {PassThrough} = require('stream'); + +module.exports = options => { + options = Object.assign({}, options); + + const {array} = options; + let {encoding} = options; + const buffer = encoding === 'buffer'; + let objectMode = false; + + if (array) { + objectMode = !(encoding || buffer); + } else { + encoding = encoding || 'utf8'; + } + + if (buffer) { + encoding = null; + } + + let len = 0; + const ret = []; + const stream = new PassThrough({objectMode}); + + if (encoding) { + stream.setEncoding(encoding); + } + + stream.on('data', chunk => { + ret.push(chunk); + + if (objectMode) { + len = ret.length; + } else { + len += chunk.length; + } + }); + + stream.getBufferedValue = () => { + if (array) { + return ret; + } + + return buffer ? Buffer.concat(ret, len) : ret.join(''); + }; + + stream.getBufferedLength = () => len; + + return stream; +}; diff --git a/node_modules/get-stream/index.js b/node_modules/get-stream/index.js new file mode 100644 index 0000000..7e5584a --- /dev/null +++ b/node_modules/get-stream/index.js @@ -0,0 +1,50 @@ +'use strict'; +const pump = require('pump'); +const bufferStream = require('./buffer-stream'); + +class MaxBufferError extends Error { + constructor() { + super('maxBuffer exceeded'); + this.name = 'MaxBufferError'; + } +} + +function getStream(inputStream, options) { + if (!inputStream) { + return Promise.reject(new Error('Expected a stream')); + } + + options = Object.assign({maxBuffer: Infinity}, options); + + const {maxBuffer} = options; + + let stream; + return new Promise((resolve, reject) => { + const rejectPromise = error => { + if (error) { // A null check + error.bufferedData = stream.getBufferedValue(); + } + reject(error); + }; + + stream = pump(inputStream, bufferStream(options), error => { + if (error) { + rejectPromise(error); + return; + } + + resolve(); + }); + + stream.on('data', () => { + if (stream.getBufferedLength() > maxBuffer) { + rejectPromise(new MaxBufferError()); + } + }); + }).then(() => stream.getBufferedValue()); +} + +module.exports = getStream; +module.exports.buffer = (stream, options) => getStream(stream, Object.assign({}, options, {encoding: 'buffer'})); +module.exports.array = (stream, options) => getStream(stream, Object.assign({}, options, {array: true})); +module.exports.MaxBufferError = MaxBufferError; diff --git a/node_modules/get-stream/license b/node_modules/get-stream/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/get-stream/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/get-stream/package.json b/node_modules/get-stream/package.json new file mode 100644 index 0000000..619651c --- /dev/null +++ b/node_modules/get-stream/package.json @@ -0,0 +1,46 @@ +{ + "name": "get-stream", + "version": "4.1.0", + "description": "Get a stream as a string, buffer, or array", + "license": "MIT", + "repository": "sindresorhus/get-stream", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js", + "buffer-stream.js" + ], + "keywords": [ + "get", + "stream", + "promise", + "concat", + "string", + "text", + "buffer", + "read", + "data", + "consume", + "readable", + "readablestream", + "array", + "object" + ], + "dependencies": { + "pump": "^3.0.0" + }, + "devDependencies": { + "ava": "*", + "into-stream": "^3.0.0", + "xo": "*" + } +} diff --git a/node_modules/get-stream/readme.md b/node_modules/get-stream/readme.md new file mode 100644 index 0000000..b87a4d3 --- /dev/null +++ b/node_modules/get-stream/readme.md @@ -0,0 +1,123 @@ +# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream) + +> Get a stream as a string, buffer, or array + + +## Install + +``` +$ npm install get-stream +``` + + +## Usage + +```js +const fs = require('fs'); +const getStream = require('get-stream'); + +(async () => { + const stream = fs.createReadStream('unicorn.txt'); + + console.log(await getStream(stream)); + /* + ,,))))))));, + __)))))))))))))), + \|/ -\(((((''''((((((((. + -*-==//////(('' . `)))))), + /|\ ))| o ;-. '((((( ,(, + ( `| / ) ;))))' ,_))^;(~ + | | | ,))((((_ _____------~~~-. %,;(;(>';'~ + o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~ + ; ''''```` `: `:::|\,__,%% );`'; ~ + | _ ) / `:|`----' `-' + ______/\/~ | / / + /~;;.____/;;' / ___--,-( `;;;/ + / // _;______;'------~~~~~ /;;/\ / + // | | / ; \;;,\ + (<_ | ; /',/-----' _> + \_| ||_ //~;~~~~~~~~~ + `\_| (,~~ + \~\ + ~~ + */ +})(); +``` + + +## API + +The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode. + +### getStream(stream, [options]) + +Get the `stream` as a string. + +#### options + +Type: `Object` + +##### encoding + +Type: `string`
+Default: `utf8` + +[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream. + +##### maxBuffer + +Type: `number`
+Default: `Infinity` + +Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected with a `getStream.MaxBufferError` error. + +### getStream.buffer(stream, [options]) + +Get the `stream` as a buffer. + +It honors the `maxBuffer` option as above, but it refers to byte length rather than string length. + +### getStream.array(stream, [options]) + +Get the `stream` as an array of values. + +It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen: + +- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes). + +- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array. + +- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array. + + +## Errors + +If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error. + +```js +(async () => { + try { + await getStream(streamThatErrorsAtTheEnd('unicorn')); + } catch (error) { + console.log(error.bufferedData); + //=> 'unicorn' + } +})() +``` + + +## FAQ + +### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)? + +This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package. + + +## Related + +- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/glob/LICENSE b/node_modules/glob/LICENSE new file mode 100644 index 0000000..42ca266 --- /dev/null +++ b/node_modules/glob/LICENSE @@ -0,0 +1,21 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +## Glob Logo + +Glob's logo created by Tanya Brassie , licensed +under a Creative Commons Attribution-ShareAlike 4.0 International License +https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md new file mode 100644 index 0000000..0916a48 --- /dev/null +++ b/node_modules/glob/README.md @@ -0,0 +1,375 @@ +# Glob + +Match files using the patterns the shell uses, like stars and stuff. + +[![Build Status](https://travis-ci.org/isaacs/node-glob.svg?branch=master)](https://travis-ci.org/isaacs/node-glob/) [![Build Status](https://ci.appveyor.com/api/projects/status/kd7f3yftf7unxlsx?svg=true)](https://ci.appveyor.com/project/isaacs/node-glob) [![Coverage Status](https://coveralls.io/repos/isaacs/node-glob/badge.svg?branch=master&service=github)](https://coveralls.io/github/isaacs/node-glob?branch=master) + +This is a glob implementation in JavaScript. It uses the `minimatch` +library to do its matching. + +![](logo/glob.png) + +## Usage + +Install with npm + +``` +npm i glob +``` + +```javascript +var glob = require("glob") + +// options is optional +glob("**/*.js", options, function (er, files) { + // files is an array of filenames. + // If the `nonull` option is set, and nothing + // was found, then files is ["**/*.js"] + // er is an error object or null. +}) +``` + +## Glob Primer + +"Globs" are the patterns you type when you do stuff like `ls *.js` on +the command line, or put `build/*` in a `.gitignore` file. + +Before parsing the path part patterns, braced sections are expanded +into a set. Braced sections start with `{` and end with `}`, with any +number of comma-delimited sections within. Braced sections may contain +slash characters, so `a{/b/c,bcd}` would expand into `a/b/c` and `abcd`. + +The following characters have special magic meaning when used in a +path portion: + +* `*` Matches 0 or more characters in a single path portion +* `?` Matches 1 character +* `[...]` Matches a range of characters, similar to a RegExp range. + If the first character of the range is `!` or `^` then it matches + any character not in the range. +* `!(pattern|pattern|pattern)` Matches anything that does not match + any of the patterns provided. +* `?(pattern|pattern|pattern)` Matches zero or one occurrence of the + patterns provided. +* `+(pattern|pattern|pattern)` Matches one or more occurrences of the + patterns provided. +* `*(a|b|c)` Matches zero or more occurrences of the patterns provided +* `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns + provided +* `**` If a "globstar" is alone in a path portion, then it matches + zero or more directories and subdirectories searching for matches. + It does not crawl symlinked directories. + +### Dots + +If a file or directory path portion has a `.` as the first character, +then it will not match any glob pattern unless that pattern's +corresponding path part also has a `.` as its first character. + +For example, the pattern `a/.*/c` would match the file at `a/.b/c`. +However the pattern `a/*/c` would not, because `*` does not start with +a dot character. + +You can make glob treat dots as normal characters by setting +`dot:true` in the options. + +### Basename Matching + +If you set `matchBase:true` in the options, and the pattern has no +slashes in it, then it will seek for any file anywhere in the tree +with a matching basename. For example, `*.js` would match +`test/simple/basic.js`. + +### Empty Sets + +If no matching files are found, then an empty array is returned. This +differs from the shell, where the pattern itself is returned. For +example: + + $ echo a*s*d*f + a*s*d*f + +To get the bash-style behavior, set the `nonull:true` in the options. + +### See Also: + +* `man sh` +* `man bash` (Search for "Pattern Matching") +* `man 3 fnmatch` +* `man 5 gitignore` +* [minimatch documentation](https://github.com/isaacs/minimatch) + +## glob.hasMagic(pattern, [options]) + +Returns `true` if there are any special characters in the pattern, and +`false` otherwise. + +Note that the options affect the results. If `noext:true` is set in +the options object, then `+(a|b)` will not be considered a magic +pattern. If the pattern has a brace expansion, like `a/{b/c,x/y}` +then that is considered magical, unless `nobrace:true` is set in the +options. + +## glob(pattern, [options], cb) + +* `pattern` `{String}` Pattern to be matched +* `options` `{Object}` +* `cb` `{Function}` + * `err` `{Error | null}` + * `matches` `{Array}` filenames found matching the pattern + +Perform an asynchronous glob search. + +## glob.sync(pattern, [options]) + +* `pattern` `{String}` Pattern to be matched +* `options` `{Object}` +* return: `{Array}` filenames found matching the pattern + +Perform a synchronous glob search. + +## Class: glob.Glob + +Create a Glob object by instantiating the `glob.Glob` class. + +```javascript +var Glob = require("glob").Glob +var mg = new Glob(pattern, options, cb) +``` + +It's an EventEmitter, and starts walking the filesystem to find matches +immediately. + +### new glob.Glob(pattern, [options], [cb]) + +* `pattern` `{String}` pattern to search for +* `options` `{Object}` +* `cb` `{Function}` Called when an error occurs, or matches are found + * `err` `{Error | null}` + * `matches` `{Array}` filenames found matching the pattern + +Note that if the `sync` flag is set in the options, then matches will +be immediately available on the `g.found` member. + +### Properties + +* `minimatch` The minimatch object that the glob uses. +* `options` The options object passed in. +* `aborted` Boolean which is set to true when calling `abort()`. There + is no way at this time to continue a glob search after aborting, but + you can re-use the statCache to avoid having to duplicate syscalls. +* `cache` Convenience object. Each field has the following possible + values: + * `false` - Path does not exist + * `true` - Path exists + * `'FILE'` - Path exists, and is not a directory + * `'DIR'` - Path exists, and is a directory + * `[file, entries, ...]` - Path exists, is a directory, and the + array value is the results of `fs.readdir` +* `statCache` Cache of `fs.stat` results, to prevent statting the same + path multiple times. +* `symlinks` A record of which paths are symbolic links, which is + relevant in resolving `**` patterns. +* `realpathCache` An optional object which is passed to `fs.realpath` + to minimize unnecessary syscalls. It is stored on the instantiated + Glob object, and may be re-used. + +### Events + +* `end` When the matching is finished, this is emitted with all the + matches found. If the `nonull` option is set, and no match was found, + then the `matches` list contains the original pattern. The matches + are sorted, unless the `nosort` flag is set. +* `match` Every time a match is found, this is emitted with the specific + thing that matched. It is not deduplicated or resolved to a realpath. +* `error` Emitted when an unexpected error is encountered, or whenever + any fs error occurs if `options.strict` is set. +* `abort` When `abort()` is called, this event is raised. + +### Methods + +* `pause` Temporarily stop the search +* `resume` Resume the search +* `abort` Stop the search forever + +### Options + +All the options that can be passed to Minimatch can also be passed to +Glob to change pattern matching behavior. Also, some have been added, +or have glob-specific ramifications. + +All options are false by default, unless otherwise noted. + +All options are added to the Glob object, as well. + +If you are running many `glob` operations, you can pass a Glob object +as the `options` argument to a subsequent operation to shortcut some +`stat` and `readdir` calls. At the very least, you may pass in shared +`symlinks`, `statCache`, `realpathCache`, and `cache` options, so that +parallel glob operations will be sped up by sharing information about +the filesystem. + +* `cwd` The current working directory in which to search. Defaults + to `process.cwd()`. +* `root` The place where patterns starting with `/` will be mounted + onto. Defaults to `path.resolve(options.cwd, "/")` (`/` on Unix + systems, and `C:\` or some such on Windows.) +* `dot` Include `.dot` files in normal matches and `globstar` matches. + Note that an explicit dot in a portion of the pattern will always + match dot files. +* `nomount` By default, a pattern starting with a forward-slash will be + "mounted" onto the root setting, so that a valid filesystem path is + returned. Set this flag to disable that behavior. +* `mark` Add a `/` character to directory matches. Note that this + requires additional stat calls. +* `nosort` Don't sort the results. +* `stat` Set to true to stat *all* results. This reduces performance + somewhat, and is completely unnecessary, unless `readdir` is presumed + to be an untrustworthy indicator of file existence. +* `silent` When an unusual error is encountered when attempting to + read a directory, a warning will be printed to stderr. Set the + `silent` option to true to suppress these warnings. +* `strict` When an unusual error is encountered when attempting to + read a directory, the process will just continue on in search of + other matches. Set the `strict` option to raise an error in these + cases. +* `cache` See `cache` property above. Pass in a previously generated + cache object to save some fs calls. +* `statCache` A cache of results of filesystem information, to prevent + unnecessary stat calls. While it should not normally be necessary + to set this, you may pass the statCache from one glob() call to the + options object of another, if you know that the filesystem will not + change between calls. (See "Race Conditions" below.) +* `symlinks` A cache of known symbolic links. You may pass in a + previously generated `symlinks` object to save `lstat` calls when + resolving `**` matches. +* `sync` DEPRECATED: use `glob.sync(pattern, opts)` instead. +* `nounique` In some cases, brace-expanded patterns can result in the + same file showing up multiple times in the result set. By default, + this implementation prevents duplicates in the result set. Set this + flag to disable that behavior. +* `nonull` Set to never return an empty set, instead returning a set + containing the pattern itself. This is the default in glob(3). +* `debug` Set to enable debug logging in minimatch and glob. +* `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets. +* `noglobstar` Do not match `**` against multiple filenames. (Ie, + treat it as a normal `*` instead.) +* `noext` Do not match `+(a|b)` "extglob" patterns. +* `nocase` Perform a case-insensitive match. Note: on + case-insensitive filesystems, non-magic patterns will match by + default, since `stat` and `readdir` will not raise errors. +* `matchBase` Perform a basename-only match if the pattern does not + contain any slash characters. That is, `*.js` would be treated as + equivalent to `**/*.js`, matching all js files in all directories. +* `nodir` Do not match directories, only files. (Note: to match + *only* directories, simply put a `/` at the end of the pattern.) +* `ignore` Add a pattern or an array of glob patterns to exclude matches. + Note: `ignore` patterns are *always* in `dot:true` mode, regardless + of any other settings. +* `follow` Follow symlinked directories when expanding `**` patterns. + Note that this can result in a lot of duplicate references in the + presence of cyclic links. +* `realpath` Set to true to call `fs.realpath` on all of the results. + In the case of a symlink that cannot be resolved, the full absolute + path to the matched entry is returned (though it will usually be a + broken symlink) +* `absolute` Set to true to always receive absolute paths for matched + files. Unlike `realpath`, this also affects the values returned in + the `match` event. + +## Comparisons to other fnmatch/glob implementations + +While strict compliance with the existing standards is a worthwhile +goal, some discrepancies exist between node-glob and other +implementations, and are intentional. + +The double-star character `**` is supported by default, unless the +`noglobstar` flag is set. This is supported in the manner of bsdglob +and bash 4.3, where `**` only has special significance if it is the only +thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but +`a/**b` will not. + +Note that symlinked directories are not crawled as part of a `**`, +though their contents may match against subsequent portions of the +pattern. This prevents infinite loops and duplicates and the like. + +If an escaped pattern has no matches, and the `nonull` flag is set, +then glob returns the pattern as-provided, rather than +interpreting the character escapes. For example, +`glob.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than +`"*a?"`. This is akin to setting the `nullglob` option in bash, except +that it does not resolve escaped pattern characters. + +If brace expansion is not disabled, then it is performed before any +other interpretation of the glob pattern. Thus, a pattern like +`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded +**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are +checked for validity. Since those two are valid, matching proceeds. + +### Comments and Negation + +Previously, this module let you mark a pattern as a "comment" if it +started with a `#` character, or a "negated" pattern if it started +with a `!` character. + +These options were deprecated in version 5, and removed in version 6. + +To specify things that should not match, use the `ignore` option. + +## Windows + +**Please only use forward-slashes in glob expressions.** + +Though windows uses either `/` or `\` as its path separator, only `/` +characters are used by this glob implementation. You must use +forward-slashes **only** in glob expressions. Back-slashes will always +be interpreted as escape characters, not path separators. + +Results from absolute patterns such as `/foo/*` are mounted onto the +root setting using `path.join`. On windows, this will by default result +in `/foo/*` matching `C:\foo\bar.txt`. + +## Race Conditions + +Glob searching, by its very nature, is susceptible to race conditions, +since it relies on directory walking and such. + +As a result, it is possible that a file that exists when glob looks for +it may have been deleted or modified by the time it returns the result. + +As part of its internal implementation, this program caches all stat +and readdir calls that it makes, in order to cut down on system +overhead. However, this also makes it even more susceptible to races, +especially if the cache or statCache objects are reused between glob +calls. + +Users are thus advised not to use a glob result as a guarantee of +filesystem state in the face of rapid changes. For the vast majority +of operations, this is never a problem. + +## Glob Logo +Glob's logo was created by [Tanya Brassie](http://tanyabrassie.com/). Logo files can be found [here](https://github.com/isaacs/node-glob/tree/master/logo). + +The logo is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/). + +## Contributing + +Any change to behavior (including bugfixes) must come with a test. + +Patches that fail tests or reduce performance will be rejected. + +``` +# to run tests +npm test + +# to re-generate test fixtures +npm run test-regen + +# to benchmark against bash/zsh +npm run bench + +# to profile javascript +npm run prof +``` + +![](oh-my-glob.gif) diff --git a/node_modules/glob/changelog.md b/node_modules/glob/changelog.md new file mode 100644 index 0000000..4163677 --- /dev/null +++ b/node_modules/glob/changelog.md @@ -0,0 +1,67 @@ +## 7.0 + +- Raise error if `options.cwd` is specified, and not a directory + +## 6.0 + +- Remove comment and negation pattern support +- Ignore patterns are always in `dot:true` mode + +## 5.0 + +- Deprecate comment and negation patterns +- Fix regression in `mark` and `nodir` options from making all cache + keys absolute path. +- Abort if `fs.readdir` returns an error that's unexpected +- Don't emit `match` events for ignored items +- Treat ENOTSUP like ENOTDIR in readdir + +## 4.5 + +- Add `options.follow` to always follow directory symlinks in globstar +- Add `options.realpath` to call `fs.realpath` on all results +- Always cache based on absolute path + +## 4.4 + +- Add `options.ignore` +- Fix handling of broken symlinks + +## 4.3 + +- Bump minimatch to 2.x +- Pass all tests on Windows + +## 4.2 + +- Add `glob.hasMagic` function +- Add `options.nodir` flag + +## 4.1 + +- Refactor sync and async implementations for performance +- Throw if callback provided to sync glob function +- Treat symbolic links in globstar results the same as Bash 4.3 + +## 4.0 + +- Use `^` for dependency versions (bumped major because this breaks + older npm versions) +- Ensure callbacks are only ever called once +- switch to ISC license + +## 3.x + +- Rewrite in JavaScript +- Add support for setting root, cwd, and windows support +- Cache many fs calls +- Add globstar support +- emit match events + +## 2.x + +- Use `glob.h` and `fnmatch.h` from NetBSD + +## 1.x + +- `glob.h` static binding. diff --git a/node_modules/glob/common.js b/node_modules/glob/common.js new file mode 100644 index 0000000..66651bb --- /dev/null +++ b/node_modules/glob/common.js @@ -0,0 +1,240 @@ +exports.alphasort = alphasort +exports.alphasorti = alphasorti +exports.setopts = setopts +exports.ownProp = ownProp +exports.makeAbs = makeAbs +exports.finish = finish +exports.mark = mark +exports.isIgnored = isIgnored +exports.childrenIgnored = childrenIgnored + +function ownProp (obj, field) { + return Object.prototype.hasOwnProperty.call(obj, field) +} + +var path = require("path") +var minimatch = require("minimatch") +var isAbsolute = require("path-is-absolute") +var Minimatch = minimatch.Minimatch + +function alphasorti (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()) +} + +function alphasort (a, b) { + return a.localeCompare(b) +} + +function setupIgnores (self, options) { + self.ignore = options.ignore || [] + + if (!Array.isArray(self.ignore)) + self.ignore = [self.ignore] + + if (self.ignore.length) { + self.ignore = self.ignore.map(ignoreMap) + } +} + +// ignore patterns are always in dot:true mode. +function ignoreMap (pattern) { + var gmatcher = null + if (pattern.slice(-3) === '/**') { + var gpattern = pattern.replace(/(\/\*\*)+$/, '') + gmatcher = new Minimatch(gpattern, { dot: true }) + } + + return { + matcher: new Minimatch(pattern, { dot: true }), + gmatcher: gmatcher + } +} + +function setopts (self, pattern, options) { + if (!options) + options = {} + + // base-matching: just use globstar for that. + if (options.matchBase && -1 === pattern.indexOf("/")) { + if (options.noglobstar) { + throw new Error("base matching requires globstar") + } + pattern = "**/" + pattern + } + + self.silent = !!options.silent + self.pattern = pattern + self.strict = options.strict !== false + self.realpath = !!options.realpath + self.realpathCache = options.realpathCache || Object.create(null) + self.follow = !!options.follow + self.dot = !!options.dot + self.mark = !!options.mark + self.nodir = !!options.nodir + if (self.nodir) + self.mark = true + self.sync = !!options.sync + self.nounique = !!options.nounique + self.nonull = !!options.nonull + self.nosort = !!options.nosort + self.nocase = !!options.nocase + self.stat = !!options.stat + self.noprocess = !!options.noprocess + self.absolute = !!options.absolute + + self.maxLength = options.maxLength || Infinity + self.cache = options.cache || Object.create(null) + self.statCache = options.statCache || Object.create(null) + self.symlinks = options.symlinks || Object.create(null) + + setupIgnores(self, options) + + self.changedCwd = false + var cwd = process.cwd() + if (!ownProp(options, "cwd")) + self.cwd = cwd + else { + self.cwd = path.resolve(options.cwd) + self.changedCwd = self.cwd !== cwd + } + + self.root = options.root || path.resolve(self.cwd, "/") + self.root = path.resolve(self.root) + if (process.platform === "win32") + self.root = self.root.replace(/\\/g, "/") + + // TODO: is an absolute `cwd` supposed to be resolved against `root`? + // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test') + self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd) + if (process.platform === "win32") + self.cwdAbs = self.cwdAbs.replace(/\\/g, "/") + self.nomount = !!options.nomount + + // disable comments and negation in Minimatch. + // Note that they are not supported in Glob itself anyway. + options.nonegate = true + options.nocomment = true + + self.minimatch = new Minimatch(pattern, options) + self.options = self.minimatch.options +} + +function finish (self) { + var nou = self.nounique + var all = nou ? [] : Object.create(null) + + for (var i = 0, l = self.matches.length; i < l; i ++) { + var matches = self.matches[i] + if (!matches || Object.keys(matches).length === 0) { + if (self.nonull) { + // do like the shell, and spit out the literal glob + var literal = self.minimatch.globSet[i] + if (nou) + all.push(literal) + else + all[literal] = true + } + } else { + // had matches + var m = Object.keys(matches) + if (nou) + all.push.apply(all, m) + else + m.forEach(function (m) { + all[m] = true + }) + } + } + + if (!nou) + all = Object.keys(all) + + if (!self.nosort) + all = all.sort(self.nocase ? alphasorti : alphasort) + + // at *some* point we statted all of these + if (self.mark) { + for (var i = 0; i < all.length; i++) { + all[i] = self._mark(all[i]) + } + if (self.nodir) { + all = all.filter(function (e) { + var notDir = !(/\/$/.test(e)) + var c = self.cache[e] || self.cache[makeAbs(self, e)] + if (notDir && c) + notDir = c !== 'DIR' && !Array.isArray(c) + return notDir + }) + } + } + + if (self.ignore.length) + all = all.filter(function(m) { + return !isIgnored(self, m) + }) + + self.found = all +} + +function mark (self, p) { + var abs = makeAbs(self, p) + var c = self.cache[abs] + var m = p + if (c) { + var isDir = c === 'DIR' || Array.isArray(c) + var slash = p.slice(-1) === '/' + + if (isDir && !slash) + m += '/' + else if (!isDir && slash) + m = m.slice(0, -1) + + if (m !== p) { + var mabs = makeAbs(self, m) + self.statCache[mabs] = self.statCache[abs] + self.cache[mabs] = self.cache[abs] + } + } + + return m +} + +// lotta situps... +function makeAbs (self, f) { + var abs = f + if (f.charAt(0) === '/') { + abs = path.join(self.root, f) + } else if (isAbsolute(f) || f === '') { + abs = f + } else if (self.changedCwd) { + abs = path.resolve(self.cwd, f) + } else { + abs = path.resolve(f) + } + + if (process.platform === 'win32') + abs = abs.replace(/\\/g, '/') + + return abs +} + + +// Return true, if pattern ends with globstar '**', for the accompanying parent directory. +// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents +function isIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path)) + }) +} + +function childrenIgnored (self, path) { + if (!self.ignore.length) + return false + + return self.ignore.some(function(item) { + return !!(item.gmatcher && item.gmatcher.match(path)) + }) +} diff --git a/node_modules/glob/glob.js b/node_modules/glob/glob.js new file mode 100644 index 0000000..58dec0f --- /dev/null +++ b/node_modules/glob/glob.js @@ -0,0 +1,790 @@ +// Approach: +// +// 1. Get the minimatch set +// 2. For each pattern in the set, PROCESS(pattern, false) +// 3. Store matches per-set, then uniq them +// +// PROCESS(pattern, inGlobStar) +// Get the first [n] items from pattern that are all strings +// Join these together. This is PREFIX. +// If there is no more remaining, then stat(PREFIX) and +// add to matches if it succeeds. END. +// +// If inGlobStar and PREFIX is symlink and points to dir +// set ENTRIES = [] +// else readdir(PREFIX) as ENTRIES +// If fail, END +// +// with ENTRIES +// If pattern[n] is GLOBSTAR +// // handle the case where the globstar match is empty +// // by pruning it out, and testing the resulting pattern +// PROCESS(pattern[0..n] + pattern[n+1 .. $], false) +// // handle other cases. +// for ENTRY in ENTRIES (not dotfiles) +// // attach globstar + tail onto the entry +// // Mark that this entry is a globstar match +// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true) +// +// else // not globstar +// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot) +// Test ENTRY against pattern[n] +// If fails, continue +// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $]) +// +// Caveat: +// Cache all stats and readdirs results to minimize syscall. Since all +// we ever care about is existence and directory-ness, we can just keep +// `true` for files, and [children,...] for directories, or `false` for +// things that don't exist. + +module.exports = glob + +var fs = require('fs') +var rp = require('fs.realpath') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var inherits = require('inherits') +var EE = require('events').EventEmitter +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var globSync = require('./sync.js') +var common = require('./common.js') +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var inflight = require('inflight') +var util = require('util') +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored + +var once = require('once') + +function glob (pattern, options, cb) { + if (typeof options === 'function') cb = options, options = {} + if (!options) options = {} + + if (options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return globSync(pattern, options) + } + + return new Glob(pattern, options, cb) +} + +glob.sync = globSync +var GlobSync = glob.GlobSync = globSync.GlobSync + +// old api surface +glob.glob = glob + +function extend (origin, add) { + if (add === null || typeof add !== 'object') { + return origin + } + + var keys = Object.keys(add) + var i = keys.length + while (i--) { + origin[keys[i]] = add[keys[i]] + } + return origin +} + +glob.hasMagic = function (pattern, options_) { + var options = extend({}, options_) + options.noprocess = true + + var g = new Glob(pattern, options) + var set = g.minimatch.set + + if (!pattern) + return false + + if (set.length > 1) + return true + + for (var j = 0; j < set[0].length; j++) { + if (typeof set[0][j] !== 'string') + return true + } + + return false +} + +glob.Glob = Glob +inherits(Glob, EE) +function Glob (pattern, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + + if (options && options.sync) { + if (cb) + throw new TypeError('callback provided to sync glob') + return new GlobSync(pattern, options) + } + + if (!(this instanceof Glob)) + return new Glob(pattern, options, cb) + + setopts(this, pattern, options) + this._didRealPath = false + + // process each pattern in the minimatch set + var n = this.minimatch.set.length + + // The matches are stored as {: true,...} so that + // duplicates are automagically pruned. + // Later, we do an Object.keys() on these. + // Keep them as a list so we can fill in when nonull is set. + this.matches = new Array(n) + + if (typeof cb === 'function') { + cb = once(cb) + this.on('error', cb) + this.on('end', function (matches) { + cb(null, matches) + }) + } + + var self = this + this._processing = 0 + + this._emitQueue = [] + this._processQueue = [] + this.paused = false + + if (this.noprocess) + return this + + if (n === 0) + return done() + + var sync = true + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false, done) + } + sync = false + + function done () { + --self._processing + if (self._processing <= 0) { + if (sync) { + process.nextTick(function () { + self._finish() + }) + } else { + self._finish() + } + } + } +} + +Glob.prototype._finish = function () { + assert(this instanceof Glob) + if (this.aborted) + return + + if (this.realpath && !this._didRealpath) + return this._realpath() + + common.finish(this) + this.emit('end', this.found) +} + +Glob.prototype._realpath = function () { + if (this._didRealpath) + return + + this._didRealpath = true + + var n = this.matches.length + if (n === 0) + return this._finish() + + var self = this + for (var i = 0; i < this.matches.length; i++) + this._realpathSet(i, next) + + function next () { + if (--n === 0) + self._finish() + } +} + +Glob.prototype._realpathSet = function (index, cb) { + var matchset = this.matches[index] + if (!matchset) + return cb() + + var found = Object.keys(matchset) + var self = this + var n = found.length + + if (n === 0) + return cb() + + var set = this.matches[index] = Object.create(null) + found.forEach(function (p, i) { + // If there's a problem with the stat, then it means that + // one or more of the links in the realpath couldn't be + // resolved. just return the abs value in that case. + p = self._makeAbs(p) + rp.realpath(p, self.realpathCache, function (er, real) { + if (!er) + set[real] = true + else if (er.syscall === 'stat') + set[p] = true + else + self.emit('error', er) // srsly wtf right here + + if (--n === 0) { + self.matches[index] = set + cb() + } + }) + }) +} + +Glob.prototype._mark = function (p) { + return common.mark(this, p) +} + +Glob.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} + +Glob.prototype.abort = function () { + this.aborted = true + this.emit('abort') +} + +Glob.prototype.pause = function () { + if (!this.paused) { + this.paused = true + this.emit('pause') + } +} + +Glob.prototype.resume = function () { + if (this.paused) { + this.emit('resume') + this.paused = false + if (this._emitQueue.length) { + var eq = this._emitQueue.slice(0) + this._emitQueue.length = 0 + for (var i = 0; i < eq.length; i ++) { + var e = eq[i] + this._emitMatch(e[0], e[1]) + } + } + if (this._processQueue.length) { + var pq = this._processQueue.slice(0) + this._processQueue.length = 0 + for (var i = 0; i < pq.length; i ++) { + var p = pq[i] + this._processing-- + this._process(p[0], p[1], p[2], p[3]) + } + } + } +} + +Glob.prototype._process = function (pattern, index, inGlobStar, cb) { + assert(this instanceof Glob) + assert(typeof cb === 'function') + + if (this.aborted) + return + + this._processing++ + if (this.paused) { + this._processQueue.push([pattern, index, inGlobStar, cb]) + return + } + + //console.error('PROCESS %d', this._processing, pattern) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // see if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index, cb) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip _processing + if (childrenIgnored(this, read)) + return cb() + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb) +} + +Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + +Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return cb() + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries) + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return cb() + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return cb() + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) { + if (prefix !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + this._process([e].concat(remain), index, inGlobStar, cb) + } + cb() +} + +Glob.prototype._emitMatch = function (index, e) { + if (this.aborted) + return + + if (isIgnored(this, e)) + return + + if (this.paused) { + this._emitQueue.push([index, e]) + return + } + + var abs = isAbsolute(e) ? e : this._makeAbs(e) + + if (this.mark) + e = this._mark(e) + + if (this.absolute) + e = abs + + if (this.matches[index][e]) + return + + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return + } + + this.matches[index][e] = true + + var st = this.statCache[abs] + if (st) + this.emit('stat', e, st) + + this.emit('match', e) +} + +Glob.prototype._readdirInGlobStar = function (abs, cb) { + if (this.aborted) + return + + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false, cb) + + var lstatkey = 'lstat\0' + abs + var self = this + var lstatcb = inflight(lstatkey, lstatcb_) + + if (lstatcb) + fs.lstat(abs, lstatcb) + + function lstatcb_ (er, lstat) { + if (er && er.code === 'ENOENT') + return cb() + + var isSym = lstat && lstat.isSymbolicLink() + self.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) { + self.cache[abs] = 'FILE' + cb() + } else + self._readdir(abs, false, cb) + } +} + +Glob.prototype._readdir = function (abs, inGlobStar, cb) { + if (this.aborted) + return + + cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb) + if (!cb) + return + + //console.error('RD %j %j', +inGlobStar, abs) + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs, cb) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return cb() + + if (Array.isArray(c)) + return cb(null, c) + } + + var self = this + fs.readdir(abs, readdirCb(this, abs, cb)) +} + +function readdirCb (self, abs, cb) { + return function (er, entries) { + if (er) + self._readdirError(abs, er, cb) + else + self._readdirEntries(abs, entries, cb) + } +} + +Glob.prototype._readdirEntries = function (abs, entries, cb) { + if (this.aborted) + return + + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + return cb(null, entries) +} + +Glob.prototype._readdirError = function (f, er, cb) { + if (this.aborted) + return + + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f) + this.cache[abs] = 'FILE' + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd) + error.path = this.cwd + error.code = er.code + this.emit('error', error) + this.abort() + } + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) { + this.emit('error', er) + // If the error is handled, then we abort + // if not, we threw out of here + this.abort() + } + if (!this.silent) + console.error('glob error', er) + break + } + + return cb() +} + +Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) { + var self = this + this._readdir(abs, inGlobStar, function (er, entries) { + self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb) + }) +} + + +Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) { + //console.error('pgs2', prefix, remain[0], entries) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return cb() + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false, cb) + + var isSym = this.symlinks[abs] + var len = entries.length + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return cb() + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true, cb) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true, cb) + } + + cb() +} + +Glob.prototype._processSimple = function (prefix, index, cb) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var self = this + this._stat(prefix, function (er, exists) { + self._processSimple2(prefix, index, er, exists, cb) + }) +} +Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) { + + //console.error('ps2', prefix, exists) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return cb() + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this._emitMatch(index, prefix) + cb() +} + +// Returns either 'DIR', 'FILE', or false +Glob.prototype._stat = function (f, cb) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return cb() + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return cb(null, c) + + if (needDir && c === 'FILE') + return cb() + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (stat !== undefined) { + if (stat === false) + return cb(null, stat) + else { + var type = stat.isDirectory() ? 'DIR' : 'FILE' + if (needDir && type === 'FILE') + return cb() + else + return cb(null, type, stat) + } + } + + var self = this + var statcb = inflight('stat\0' + abs, lstatcb_) + if (statcb) + fs.lstat(abs, statcb) + + function lstatcb_ (er, lstat) { + if (lstat && lstat.isSymbolicLink()) { + // If it's a symlink, then treat it as the target, unless + // the target does not exist, then treat it as a file. + return fs.stat(abs, function (er, stat) { + if (er) + self._stat2(f, abs, null, lstat, cb) + else + self._stat2(f, abs, er, stat, cb) + }) + } else { + self._stat2(f, abs, er, lstat, cb) + } + } +} + +Glob.prototype._stat2 = function (f, abs, er, stat, cb) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false + return cb() + } + + var needDir = f.slice(-1) === '/' + this.statCache[abs] = stat + + if (abs.slice(-1) === '/' && stat && !stat.isDirectory()) + return cb(null, false, stat) + + var c = true + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE' + this.cache[abs] = this.cache[abs] || c + + if (needDir && c === 'FILE') + return cb() + + return cb(null, c, stat) +} diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json new file mode 100644 index 0000000..6477c30 --- /dev/null +++ b/node_modules/glob/package.json @@ -0,0 +1,46 @@ +{ + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "name": "glob", + "description": "a little globber", + "version": "7.1.6", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/node-glob.git" + }, + "main": "glob.js", + "files": [ + "glob.js", + "sync.js", + "common.js" + ], + "engines": { + "node": "*" + }, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "devDependencies": { + "mkdirp": "0", + "rimraf": "^2.2.8", + "tap": "^12.0.1", + "tick": "0.0.6" + }, + "scripts": { + "prepublish": "npm run benchclean", + "profclean": "rm -f v8.log profile.txt", + "test": "tap test/*.js --cov", + "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js", + "bench": "bash benchmark.sh", + "prof": "bash prof.sh && cat profile.txt", + "benchclean": "node benchclean.js" + }, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } +} diff --git a/node_modules/glob/sync.js b/node_modules/glob/sync.js new file mode 100644 index 0000000..c952134 --- /dev/null +++ b/node_modules/glob/sync.js @@ -0,0 +1,486 @@ +module.exports = globSync +globSync.GlobSync = GlobSync + +var fs = require('fs') +var rp = require('fs.realpath') +var minimatch = require('minimatch') +var Minimatch = minimatch.Minimatch +var Glob = require('./glob.js').Glob +var util = require('util') +var path = require('path') +var assert = require('assert') +var isAbsolute = require('path-is-absolute') +var common = require('./common.js') +var alphasort = common.alphasort +var alphasorti = common.alphasorti +var setopts = common.setopts +var ownProp = common.ownProp +var childrenIgnored = common.childrenIgnored +var isIgnored = common.isIgnored + +function globSync (pattern, options) { + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + return new GlobSync(pattern, options).found +} + +function GlobSync (pattern, options) { + if (!pattern) + throw new Error('must provide pattern') + + if (typeof options === 'function' || arguments.length === 3) + throw new TypeError('callback provided to sync glob\n'+ + 'See: https://github.com/isaacs/node-glob/issues/167') + + if (!(this instanceof GlobSync)) + return new GlobSync(pattern, options) + + setopts(this, pattern, options) + + if (this.noprocess) + return this + + var n = this.minimatch.set.length + this.matches = new Array(n) + for (var i = 0; i < n; i ++) { + this._process(this.minimatch.set[i], i, false) + } + this._finish() +} + +GlobSync.prototype._finish = function () { + assert(this instanceof GlobSync) + if (this.realpath) { + var self = this + this.matches.forEach(function (matchset, index) { + var set = self.matches[index] = Object.create(null) + for (var p in matchset) { + try { + p = self._makeAbs(p) + var real = rp.realpathSync(p, self.realpathCache) + set[real] = true + } catch (er) { + if (er.syscall === 'stat') + set[self._makeAbs(p)] = true + else + throw er + } + } + }) + } + common.finish(this) +} + + +GlobSync.prototype._process = function (pattern, index, inGlobStar) { + assert(this instanceof GlobSync) + + // Get the first [n] parts of pattern that are all strings. + var n = 0 + while (typeof pattern[n] === 'string') { + n ++ + } + // now n is the index of the first one that is *not* a string. + + // See if there's anything else + var prefix + switch (n) { + // if not, then this is rather simple + case pattern.length: + this._processSimple(pattern.join('/'), index) + return + + case 0: + // pattern *starts* with some non-trivial item. + // going to readdir(cwd), but not include the prefix in matches. + prefix = null + break + + default: + // pattern has some string bits in the front. + // whatever it starts with, whether that's 'absolute' like /foo/bar, + // or 'relative' like '../baz' + prefix = pattern.slice(0, n).join('/') + break + } + + var remain = pattern.slice(n) + + // get the list of entries. + var read + if (prefix === null) + read = '.' + else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + if (!prefix || !isAbsolute(prefix)) + prefix = '/' + prefix + read = prefix + } else + read = prefix + + var abs = this._makeAbs(read) + + //if ignored, skip processing + if (childrenIgnored(this, read)) + return + + var isGlobStar = remain[0] === minimatch.GLOBSTAR + if (isGlobStar) + this._processGlobStar(prefix, read, abs, remain, index, inGlobStar) + else + this._processReaddir(prefix, read, abs, remain, index, inGlobStar) +} + + +GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) { + var entries = this._readdir(abs, inGlobStar) + + // if the abs isn't a dir, then nothing can match! + if (!entries) + return + + // It will only match dot entries if it starts with a dot, or if + // dot is set. Stuff like @(.foo|.bar) isn't allowed. + var pn = remain[0] + var negate = !!this.minimatch.negate + var rawGlob = pn._glob + var dotOk = this.dot || rawGlob.charAt(0) === '.' + + var matchedEntries = [] + for (var i = 0; i < entries.length; i++) { + var e = entries[i] + if (e.charAt(0) !== '.' || dotOk) { + var m + if (negate && !prefix) { + m = !e.match(pn) + } else { + m = e.match(pn) + } + if (m) + matchedEntries.push(e) + } + } + + var len = matchedEntries.length + // If there are no matched entries, then nothing matches. + if (len === 0) + return + + // if this is the last remaining pattern bit, then no need for + // an additional stat *unless* the user has specified mark or + // stat explicitly. We know they exist, since readdir returned + // them. + + if (remain.length === 1 && !this.mark && !this.stat) { + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + if (prefix) { + if (prefix.slice(-1) !== '/') + e = prefix + '/' + e + else + e = prefix + e + } + + if (e.charAt(0) === '/' && !this.nomount) { + e = path.join(this.root, e) + } + this._emitMatch(index, e) + } + // This was the last one, and no stats were needed + return + } + + // now test all matched entries as stand-ins for that part + // of the pattern. + remain.shift() + for (var i = 0; i < len; i ++) { + var e = matchedEntries[i] + var newPattern + if (prefix) + newPattern = [prefix, e] + else + newPattern = [e] + this._process(newPattern.concat(remain), index, inGlobStar) + } +} + + +GlobSync.prototype._emitMatch = function (index, e) { + if (isIgnored(this, e)) + return + + var abs = this._makeAbs(e) + + if (this.mark) + e = this._mark(e) + + if (this.absolute) { + e = abs + } + + if (this.matches[index][e]) + return + + if (this.nodir) { + var c = this.cache[abs] + if (c === 'DIR' || Array.isArray(c)) + return + } + + this.matches[index][e] = true + + if (this.stat) + this._stat(e) +} + + +GlobSync.prototype._readdirInGlobStar = function (abs) { + // follow all symlinked directories forever + // just proceed as if this is a non-globstar situation + if (this.follow) + return this._readdir(abs, false) + + var entries + var lstat + var stat + try { + lstat = fs.lstatSync(abs) + } catch (er) { + if (er.code === 'ENOENT') { + // lstat failed, doesn't exist + return null + } + } + + var isSym = lstat && lstat.isSymbolicLink() + this.symlinks[abs] = isSym + + // If it's not a symlink or a dir, then it's definitely a regular file. + // don't bother doing a readdir in that case. + if (!isSym && lstat && !lstat.isDirectory()) + this.cache[abs] = 'FILE' + else + entries = this._readdir(abs, false) + + return entries +} + +GlobSync.prototype._readdir = function (abs, inGlobStar) { + var entries + + if (inGlobStar && !ownProp(this.symlinks, abs)) + return this._readdirInGlobStar(abs) + + if (ownProp(this.cache, abs)) { + var c = this.cache[abs] + if (!c || c === 'FILE') + return null + + if (Array.isArray(c)) + return c + } + + try { + return this._readdirEntries(abs, fs.readdirSync(abs)) + } catch (er) { + this._readdirError(abs, er) + return null + } +} + +GlobSync.prototype._readdirEntries = function (abs, entries) { + // if we haven't asked to stat everything, then just + // assume that everything in there exists, so we can avoid + // having to stat it a second time. + if (!this.mark && !this.stat) { + for (var i = 0; i < entries.length; i ++) { + var e = entries[i] + if (abs === '/') + e = abs + e + else + e = abs + '/' + e + this.cache[e] = true + } + } + + this.cache[abs] = entries + + // mark and cache dir-ness + return entries +} + +GlobSync.prototype._readdirError = function (f, er) { + // handle errors, and cache the information + switch (er.code) { + case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205 + case 'ENOTDIR': // totally normal. means it *does* exist. + var abs = this._makeAbs(f) + this.cache[abs] = 'FILE' + if (abs === this.cwdAbs) { + var error = new Error(er.code + ' invalid cwd ' + this.cwd) + error.path = this.cwd + error.code = er.code + throw error + } + break + + case 'ENOENT': // not terribly unusual + case 'ELOOP': + case 'ENAMETOOLONG': + case 'UNKNOWN': + this.cache[this._makeAbs(f)] = false + break + + default: // some unusual error. Treat as failure. + this.cache[this._makeAbs(f)] = false + if (this.strict) + throw er + if (!this.silent) + console.error('glob error', er) + break + } +} + +GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) { + + var entries = this._readdir(abs, inGlobStar) + + // no entries means not a dir, so it can never have matches + // foo.txt/** doesn't match foo.txt + if (!entries) + return + + // test without the globstar, and with every child both below + // and replacing the globstar. + var remainWithoutGlobStar = remain.slice(1) + var gspref = prefix ? [ prefix ] : [] + var noGlobStar = gspref.concat(remainWithoutGlobStar) + + // the noGlobStar pattern exits the inGlobStar state + this._process(noGlobStar, index, false) + + var len = entries.length + var isSym = this.symlinks[abs] + + // If it's a symlink, and we're in a globstar, then stop + if (isSym && inGlobStar) + return + + for (var i = 0; i < len; i++) { + var e = entries[i] + if (e.charAt(0) === '.' && !this.dot) + continue + + // these two cases enter the inGlobStar state + var instead = gspref.concat(entries[i], remainWithoutGlobStar) + this._process(instead, index, true) + + var below = gspref.concat(entries[i], remain) + this._process(below, index, true) + } +} + +GlobSync.prototype._processSimple = function (prefix, index) { + // XXX review this. Shouldn't it be doing the mounting etc + // before doing stat? kinda weird? + var exists = this._stat(prefix) + + if (!this.matches[index]) + this.matches[index] = Object.create(null) + + // If it doesn't exist, then just mark the lack of results + if (!exists) + return + + if (prefix && isAbsolute(prefix) && !this.nomount) { + var trail = /[\/\\]$/.test(prefix) + if (prefix.charAt(0) === '/') { + prefix = path.join(this.root, prefix) + } else { + prefix = path.resolve(this.root, prefix) + if (trail) + prefix += '/' + } + } + + if (process.platform === 'win32') + prefix = prefix.replace(/\\/g, '/') + + // Mark this as a match + this._emitMatch(index, prefix) +} + +// Returns either 'DIR', 'FILE', or false +GlobSync.prototype._stat = function (f) { + var abs = this._makeAbs(f) + var needDir = f.slice(-1) === '/' + + if (f.length > this.maxLength) + return false + + if (!this.stat && ownProp(this.cache, abs)) { + var c = this.cache[abs] + + if (Array.isArray(c)) + c = 'DIR' + + // It exists, but maybe not how we need it + if (!needDir || c === 'DIR') + return c + + if (needDir && c === 'FILE') + return false + + // otherwise we have to stat, because maybe c=true + // if we know it exists, but not what it is. + } + + var exists + var stat = this.statCache[abs] + if (!stat) { + var lstat + try { + lstat = fs.lstatSync(abs) + } catch (er) { + if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { + this.statCache[abs] = false + return false + } + } + + if (lstat && lstat.isSymbolicLink()) { + try { + stat = fs.statSync(abs) + } catch (er) { + stat = lstat + } + } else { + stat = lstat + } + } + + this.statCache[abs] = stat + + var c = true + if (stat) + c = stat.isDirectory() ? 'DIR' : 'FILE' + + this.cache[abs] = this.cache[abs] || c + + if (needDir && c === 'FILE') + return false + + return c +} + +GlobSync.prototype._mark = function (p) { + return common.mark(this, p) +} + +GlobSync.prototype._makeAbs = function (f) { + return common.makeAbs(this, f) +} diff --git a/node_modules/inflight/LICENSE b/node_modules/inflight/LICENSE new file mode 100644 index 0000000..05eeeb8 --- /dev/null +++ b/node_modules/inflight/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/inflight/README.md b/node_modules/inflight/README.md new file mode 100644 index 0000000..6dc8929 --- /dev/null +++ b/node_modules/inflight/README.md @@ -0,0 +1,37 @@ +# inflight + +Add callbacks to requests in flight to avoid async duplication + +## USAGE + +```javascript +var inflight = require('inflight') + +// some request that does some stuff +function req(key, callback) { + // key is any random string. like a url or filename or whatever. + // + // will return either a falsey value, indicating that the + // request for this key is already in flight, or a new callback + // which when called will call all callbacks passed to inflightk + // with the same key + callback = inflight(key, callback) + + // If we got a falsey value back, then there's already a req going + if (!callback) return + + // this is where you'd fetch the url or whatever + // callback is also once()-ified, so it can safely be assigned + // to multiple events etc. First call wins. + setTimeout(function() { + callback(null, key) + }, 100) +} + +// only assigns a single setTimeout +// when it dings, all cbs get called +req('foo', cb1) +req('foo', cb2) +req('foo', cb3) +req('foo', cb4) +``` diff --git a/node_modules/inflight/inflight.js b/node_modules/inflight/inflight.js new file mode 100644 index 0000000..48202b3 --- /dev/null +++ b/node_modules/inflight/inflight.js @@ -0,0 +1,54 @@ +var wrappy = require('wrappy') +var reqs = Object.create(null) +var once = require('once') + +module.exports = wrappy(inflight) + +function inflight (key, cb) { + if (reqs[key]) { + reqs[key].push(cb) + return null + } else { + reqs[key] = [cb] + return makeres(key) + } +} + +function makeres (key) { + return once(function RES () { + var cbs = reqs[key] + var len = cbs.length + var args = slice(arguments) + + // XXX It's somewhat ambiguous whether a new callback added in this + // pass should be queued for later execution if something in the + // list of callbacks throws, or if it should just be discarded. + // However, it's such an edge case that it hardly matters, and either + // choice is likely as surprising as the other. + // As it happens, we do go ahead and schedule it for later execution. + try { + for (var i = 0; i < len; i++) { + cbs[i].apply(null, args) + } + } finally { + if (cbs.length > len) { + // added more in the interim. + // de-zalgo, just in case, but don't call again. + cbs.splice(0, len) + process.nextTick(function () { + RES.apply(null, args) + }) + } else { + delete reqs[key] + } + } + }) +} + +function slice (args) { + var length = args.length + var array = [] + + for (var i = 0; i < length; i++) array[i] = args[i] + return array +} diff --git a/node_modules/inflight/package.json b/node_modules/inflight/package.json new file mode 100644 index 0000000..6084d35 --- /dev/null +++ b/node_modules/inflight/package.json @@ -0,0 +1,29 @@ +{ + "name": "inflight", + "version": "1.0.6", + "description": "Add callbacks to requests in flight to avoid async duplication", + "main": "inflight.js", + "files": [ + "inflight.js" + ], + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + }, + "devDependencies": { + "tap": "^7.1.2" + }, + "scripts": { + "test": "tap test.js --100" + }, + "repository": { + "type": "git", + "url": "https://github.com/npm/inflight.git" + }, + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "bugs": { + "url": "https://github.com/isaacs/inflight/issues" + }, + "homepage": "https://github.com/isaacs/inflight", + "license": "ISC" +} diff --git a/node_modules/inherits/LICENSE b/node_modules/inherits/LICENSE new file mode 100644 index 0000000..dea3013 --- /dev/null +++ b/node_modules/inherits/LICENSE @@ -0,0 +1,16 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + diff --git a/node_modules/inherits/README.md b/node_modules/inherits/README.md new file mode 100644 index 0000000..b1c5665 --- /dev/null +++ b/node_modules/inherits/README.md @@ -0,0 +1,42 @@ +Browser-friendly inheritance fully compatible with standard node.js +[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor). + +This package exports standard `inherits` from node.js `util` module in +node environment, but also provides alternative browser-friendly +implementation through [browser +field](https://gist.github.com/shtylman/4339901). Alternative +implementation is a literal copy of standard one located in standalone +module to avoid requiring of `util`. It also has a shim for old +browsers with no `Object.create` support. + +While keeping you sure you are using standard `inherits` +implementation in node.js environment, it allows bundlers such as +[browserify](https://github.com/substack/node-browserify) to not +include full `util` package to your client code if all you need is +just `inherits` function. It worth, because browser shim for `util` +package is large and `inherits` is often the single function you need +from it. + +It's recommended to use this package instead of +`require('util').inherits` for any code that has chances to be used +not only in node.js but in browser too. + +## usage + +```js +var inherits = require('inherits'); +// then use exactly as the standard one +``` + +## note on version ~1.0 + +Version ~1.0 had completely different motivation and is not compatible +neither with 2.0 nor with standard node.js `inherits`. + +If you are using version ~1.0 and planning to switch to ~2.0, be +careful: + +* new version uses `super_` instead of `super` for referencing + superclass +* new version overwrites current prototype while old one preserves any + existing fields on it diff --git a/node_modules/inherits/inherits.js b/node_modules/inherits/inherits.js new file mode 100644 index 0000000..f71f2d9 --- /dev/null +++ b/node_modules/inherits/inherits.js @@ -0,0 +1,9 @@ +try { + var util = require('util'); + /* istanbul ignore next */ + if (typeof util.inherits !== 'function') throw ''; + module.exports = util.inherits; +} catch (e) { + /* istanbul ignore next */ + module.exports = require('./inherits_browser.js'); +} diff --git a/node_modules/inherits/inherits_browser.js b/node_modules/inherits/inherits_browser.js new file mode 100644 index 0000000..86bbb3d --- /dev/null +++ b/node_modules/inherits/inherits_browser.js @@ -0,0 +1,27 @@ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }) + } + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } +} diff --git a/node_modules/inherits/package.json b/node_modules/inherits/package.json new file mode 100644 index 0000000..37b4366 --- /dev/null +++ b/node_modules/inherits/package.json @@ -0,0 +1,29 @@ +{ + "name": "inherits", + "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", + "version": "2.0.4", + "keywords": [ + "inheritance", + "class", + "klass", + "oop", + "object-oriented", + "inherits", + "browser", + "browserify" + ], + "main": "./inherits.js", + "browser": "./inherits_browser.js", + "repository": "git://github.com/isaacs/inherits", + "license": "ISC", + "scripts": { + "test": "tap" + }, + "devDependencies": { + "tap": "^14.2.4" + }, + "files": [ + "inherits.js", + "inherits_browser.js" + ] +} diff --git a/node_modules/is-stream/index.js b/node_modules/is-stream/index.js new file mode 100644 index 0000000..6f7ec91 --- /dev/null +++ b/node_modules/is-stream/index.js @@ -0,0 +1,21 @@ +'use strict'; + +var isStream = module.exports = function (stream) { + return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'; +}; + +isStream.writable = function (stream) { + return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object'; +}; + +isStream.readable = function (stream) { + return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object'; +}; + +isStream.duplex = function (stream) { + return isStream.writable(stream) && isStream.readable(stream); +}; + +isStream.transform = function (stream) { + return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object'; +}; diff --git a/node_modules/is-stream/license b/node_modules/is-stream/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/is-stream/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-stream/package.json b/node_modules/is-stream/package.json new file mode 100644 index 0000000..0308918 --- /dev/null +++ b/node_modules/is-stream/package.json @@ -0,0 +1,38 @@ +{ + "name": "is-stream", + "version": "1.1.0", + "description": "Check if something is a Node.js stream", + "license": "MIT", + "repository": "sindresorhus/is-stream", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "stream", + "type", + "streams", + "writable", + "readable", + "duplex", + "transform", + "check", + "detect", + "is" + ], + "devDependencies": { + "ava": "*", + "tempfile": "^1.1.0", + "xo": "*" + } +} diff --git a/node_modules/is-stream/readme.md b/node_modules/is-stream/readme.md new file mode 100644 index 0000000..d8afce8 --- /dev/null +++ b/node_modules/is-stream/readme.md @@ -0,0 +1,42 @@ +# is-stream [![Build Status](https://travis-ci.org/sindresorhus/is-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/is-stream) + +> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html) + + +## Install + +``` +$ npm install --save is-stream +``` + + +## Usage + +```js +const fs = require('fs'); +const isStream = require('is-stream'); + +isStream(fs.createReadStream('unicorn.png')); +//=> true + +isStream({}); +//=> false +``` + + +## API + +### isStream(stream) + +#### isStream.writable(stream) + +#### isStream.readable(stream) + +#### isStream.duplex(stream) + +#### isStream.transform(stream) + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/isexe/.npmignore b/node_modules/isexe/.npmignore new file mode 100644 index 0000000..c1cb757 --- /dev/null +++ b/node_modules/isexe/.npmignore @@ -0,0 +1,2 @@ +.nyc_output/ +coverage/ diff --git a/node_modules/isexe/LICENSE b/node_modules/isexe/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/isexe/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/isexe/README.md b/node_modules/isexe/README.md new file mode 100644 index 0000000..35769e8 --- /dev/null +++ b/node_modules/isexe/README.md @@ -0,0 +1,51 @@ +# isexe + +Minimal module to check if a file is executable, and a normal file. + +Uses `fs.stat` and tests against the `PATHEXT` environment variable on +Windows. + +## USAGE + +```javascript +var isexe = require('isexe') +isexe('some-file-name', function (err, isExe) { + if (err) { + console.error('probably file does not exist or something', err) + } else if (isExe) { + console.error('this thing can be run') + } else { + console.error('cannot be run') + } +}) + +// same thing but synchronous, throws errors +var isExe = isexe.sync('some-file-name') + +// treat errors as just "not executable" +isexe('maybe-missing-file', { ignoreErrors: true }, callback) +var isExe = isexe.sync('maybe-missing-file', { ignoreErrors: true }) +``` + +## API + +### `isexe(path, [options], [callback])` + +Check if the path is executable. If no callback provided, and a +global `Promise` object is available, then a Promise will be returned. + +Will raise whatever errors may be raised by `fs.stat`, unless +`options.ignoreErrors` is set to true. + +### `isexe.sync(path, [options])` + +Same as `isexe` but returns the value and throws any errors raised. + +### Options + +* `ignoreErrors` Treat all errors as "no, this is not executable", but + don't raise them. +* `uid` Number to use as the user id +* `gid` Number to use as the group id +* `pathExt` List of path extensions to use instead of `PATHEXT` + environment variable on Windows. diff --git a/node_modules/isexe/index.js b/node_modules/isexe/index.js new file mode 100644 index 0000000..553fb32 --- /dev/null +++ b/node_modules/isexe/index.js @@ -0,0 +1,57 @@ +var fs = require('fs') +var core +if (process.platform === 'win32' || global.TESTING_WINDOWS) { + core = require('./windows.js') +} else { + core = require('./mode.js') +} + +module.exports = isexe +isexe.sync = sync + +function isexe (path, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } + + if (!cb) { + if (typeof Promise !== 'function') { + throw new TypeError('callback not provided') + } + + return new Promise(function (resolve, reject) { + isexe(path, options || {}, function (er, is) { + if (er) { + reject(er) + } else { + resolve(is) + } + }) + }) + } + + core(path, options || {}, function (er, is) { + // ignore EACCES because that just means we aren't allowed to run it + if (er) { + if (er.code === 'EACCES' || options && options.ignoreErrors) { + er = null + is = false + } + } + cb(er, is) + }) +} + +function sync (path, options) { + // my kingdom for a filtered catch + try { + return core.sync(path, options || {}) + } catch (er) { + if (options && options.ignoreErrors || er.code === 'EACCES') { + return false + } else { + throw er + } + } +} diff --git a/node_modules/isexe/mode.js b/node_modules/isexe/mode.js new file mode 100644 index 0000000..1995ea4 --- /dev/null +++ b/node_modules/isexe/mode.js @@ -0,0 +1,41 @@ +module.exports = isexe +isexe.sync = sync + +var fs = require('fs') + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), options) +} + +function checkStat (stat, options) { + return stat.isFile() && checkMode(stat, options) +} + +function checkMode (stat, options) { + var mod = stat.mode + var uid = stat.uid + var gid = stat.gid + + var myUid = options.uid !== undefined ? + options.uid : process.getuid && process.getuid() + var myGid = options.gid !== undefined ? + options.gid : process.getgid && process.getgid() + + var u = parseInt('100', 8) + var g = parseInt('010', 8) + var o = parseInt('001', 8) + var ug = u | g + + var ret = (mod & o) || + (mod & g) && gid === myGid || + (mod & u) && uid === myUid || + (mod & ug) && myUid === 0 + + return ret +} diff --git a/node_modules/isexe/package.json b/node_modules/isexe/package.json new file mode 100644 index 0000000..e452689 --- /dev/null +++ b/node_modules/isexe/package.json @@ -0,0 +1,31 @@ +{ + "name": "isexe", + "version": "2.0.0", + "description": "Minimal module to check if a file is executable.", + "main": "index.js", + "directories": { + "test": "test" + }, + "devDependencies": { + "mkdirp": "^0.5.1", + "rimraf": "^2.5.0", + "tap": "^10.3.0" + }, + "scripts": { + "test": "tap test/*.js --100", + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --all; git push origin --tags" + }, + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/isexe.git" + }, + "keywords": [], + "bugs": { + "url": "https://github.com/isaacs/isexe/issues" + }, + "homepage": "https://github.com/isaacs/isexe#readme" +} diff --git a/node_modules/isexe/test/basic.js b/node_modules/isexe/test/basic.js new file mode 100644 index 0000000..d926df6 --- /dev/null +++ b/node_modules/isexe/test/basic.js @@ -0,0 +1,221 @@ +var t = require('tap') +var fs = require('fs') +var path = require('path') +var fixture = path.resolve(__dirname, 'fixtures') +var meow = fixture + '/meow.cat' +var mine = fixture + '/mine.cat' +var ours = fixture + '/ours.cat' +var fail = fixture + '/fail.false' +var noent = fixture + '/enoent.exe' +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') + +var isWindows = process.platform === 'win32' +var hasAccess = typeof fs.access === 'function' +var winSkip = isWindows && 'windows' +var accessSkip = !hasAccess && 'no fs.access function' +var hasPromise = typeof Promise === 'function' +var promiseSkip = !hasPromise && 'no global Promise' + +function reset () { + delete require.cache[require.resolve('../')] + return require('../') +} + +t.test('setup fixtures', function (t) { + rimraf.sync(fixture) + mkdirp.sync(fixture) + fs.writeFileSync(meow, '#!/usr/bin/env cat\nmeow\n') + fs.chmodSync(meow, parseInt('0755', 8)) + fs.writeFileSync(fail, '#!/usr/bin/env false\n') + fs.chmodSync(fail, parseInt('0644', 8)) + fs.writeFileSync(mine, '#!/usr/bin/env cat\nmine\n') + fs.chmodSync(mine, parseInt('0744', 8)) + fs.writeFileSync(ours, '#!/usr/bin/env cat\nours\n') + fs.chmodSync(ours, parseInt('0754', 8)) + t.end() +}) + +t.test('promise', { skip: promiseSkip }, function (t) { + var isexe = reset() + t.test('meow async', function (t) { + isexe(meow).then(function (is) { + t.ok(is) + t.end() + }) + }) + t.test('fail async', function (t) { + isexe(fail).then(function (is) { + t.notOk(is) + t.end() + }) + }) + t.test('noent async', function (t) { + isexe(noent).catch(function (er) { + t.ok(er) + t.end() + }) + }) + t.test('noent ignore async', function (t) { + isexe(noent, { ignoreErrors: true }).then(function (is) { + t.notOk(is) + t.end() + }) + }) + t.end() +}) + +t.test('no promise', function (t) { + global.Promise = null + var isexe = reset() + t.throws('try to meow a promise', function () { + isexe(meow) + }) + t.end() +}) + +t.test('access', { skip: accessSkip || winSkip }, function (t) { + runTest(t) +}) + +t.test('mode', { skip: winSkip }, function (t) { + delete fs.access + delete fs.accessSync + var isexe = reset() + t.ok(isexe.sync(ours, { uid: 0, gid: 0 })) + t.ok(isexe.sync(mine, { uid: 0, gid: 0 })) + runTest(t) +}) + +t.test('windows', function (t) { + global.TESTING_WINDOWS = true + var pathExt = '.EXE;.CAT;.CMD;.COM' + t.test('pathExt option', function (t) { + runTest(t, { pathExt: '.EXE;.CAT;.CMD;.COM' }) + }) + t.test('pathExt env', function (t) { + process.env.PATHEXT = pathExt + runTest(t) + }) + t.test('no pathExt', function (t) { + // with a pathExt of '', any filename is fine. + // so the "fail" one would still pass. + runTest(t, { pathExt: '', skipFail: true }) + }) + t.test('pathext with empty entry', function (t) { + // with a pathExt of '', any filename is fine. + // so the "fail" one would still pass. + runTest(t, { pathExt: ';' + pathExt, skipFail: true }) + }) + t.end() +}) + +t.test('cleanup', function (t) { + rimraf.sync(fixture) + t.end() +}) + +function runTest (t, options) { + var isexe = reset() + + var optionsIgnore = Object.create(options || {}) + optionsIgnore.ignoreErrors = true + + if (!options || !options.skipFail) { + t.notOk(isexe.sync(fail, options)) + } + t.notOk(isexe.sync(noent, optionsIgnore)) + if (!options) { + t.ok(isexe.sync(meow)) + } else { + t.ok(isexe.sync(meow, options)) + } + + t.ok(isexe.sync(mine, options)) + t.ok(isexe.sync(ours, options)) + t.throws(function () { + isexe.sync(noent, options) + }) + + t.test('meow async', function (t) { + if (!options) { + isexe(meow, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + } else { + isexe(meow, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + } + }) + + t.test('mine async', function (t) { + isexe(mine, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + }) + + t.test('ours async', function (t) { + isexe(ours, options, function (er, is) { + if (er) { + throw er + } + t.ok(is) + t.end() + }) + }) + + if (!options || !options.skipFail) { + t.test('fail async', function (t) { + isexe(fail, options, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + } + + t.test('noent async', function (t) { + isexe(noent, options, function (er, is) { + t.ok(er) + t.notOk(is) + t.end() + }) + }) + + t.test('noent ignore async', function (t) { + isexe(noent, optionsIgnore, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + + t.test('directory is not executable', function (t) { + isexe(__dirname, options, function (er, is) { + if (er) { + throw er + } + t.notOk(is) + t.end() + }) + }) + + t.end() +} diff --git a/node_modules/isexe/windows.js b/node_modules/isexe/windows.js new file mode 100644 index 0000000..3499673 --- /dev/null +++ b/node_modules/isexe/windows.js @@ -0,0 +1,42 @@ +module.exports = isexe +isexe.sync = sync + +var fs = require('fs') + +function checkPathExt (path, options) { + var pathext = options.pathExt !== undefined ? + options.pathExt : process.env.PATHEXT + + if (!pathext) { + return true + } + + pathext = pathext.split(';') + if (pathext.indexOf('') !== -1) { + return true + } + for (var i = 0; i < pathext.length; i++) { + var p = pathext[i].toLowerCase() + if (p && path.substr(-p.length).toLowerCase() === p) { + return true + } + } + return false +} + +function checkStat (stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) { + return false + } + return checkPathExt(path, options) +} + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, path, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), path, options) +} diff --git a/node_modules/lodash.get/LICENSE b/node_modules/lodash.get/LICENSE new file mode 100644 index 0000000..e0c69d5 --- /dev/null +++ b/node_modules/lodash.get/LICENSE @@ -0,0 +1,47 @@ +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. diff --git a/node_modules/lodash.get/README.md b/node_modules/lodash.get/README.md new file mode 100644 index 0000000..9079614 --- /dev/null +++ b/node_modules/lodash.get/README.md @@ -0,0 +1,18 @@ +# lodash.get v4.4.2 + +The [lodash](https://lodash.com/) method `_.get` exported as a [Node.js](https://nodejs.org/) module. + +## Installation + +Using npm: +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.get +``` + +In Node.js: +```js +var get = require('lodash.get'); +``` + +See the [documentation](https://lodash.com/docs#get) or [package source](https://github.com/lodash/lodash/blob/4.4.2-npm-packages/lodash.get) for more details. diff --git a/node_modules/lodash.get/index.js b/node_modules/lodash.get/index.js new file mode 100644 index 0000000..0eaadec --- /dev/null +++ b/node_modules/lodash.get/index.js @@ -0,0 +1,931 @@ +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** `Object#toString` result references. */ +var funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + symbolTag = '[object Symbol]'; + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + reLeadingDot = /^\./, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +/** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ +function isHostObject(value) { + // Many host objects are `Object` objects that can coerce to strings + // despite having improperly defined `toString` methods. + var result = false; + if (value != null && typeof value.toString != 'function') { + try { + result = !!(value + ''); + } catch (e) {} + } + return result; +} + +/** Used for built-in method references. */ +var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** Built-in value references. */ +var Symbol = root.Symbol, + splice = arrayProto.splice; + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'), + nativeCreate = getNative(Object, 'create'); + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; +} + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + return this.has(key) && delete this.__data__[key]; +} + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); +} + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; +} + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + return true; +} + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + return getMapData(this, key)['delete'](key); +} + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + getMapData(this, key).set(key, value); + return this; +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = isKey(path, object) ? [path] : castPath(path); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value) { + return isArray(value) ? value : stringToPath(value); +} + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoize(function(string) { + string = toString(string); + + var result = []; + if (reLeadingDot.test(string)) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to process. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result); + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Assign cache to `_.memoize`. +memoize.Cache = MapCache; + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); +} + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {string} Returns the string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; diff --git a/node_modules/lodash.get/package.json b/node_modules/lodash.get/package.json new file mode 100644 index 0000000..3dd8e77 --- /dev/null +++ b/node_modules/lodash.get/package.json @@ -0,0 +1,17 @@ +{ + "name": "lodash.get", + "version": "4.4.2", + "description": "The lodash method `_.get` exported as a module.", + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "keywords": "lodash-modularized, get", + "author": "John-David Dalton (http://allyoucanleet.com/)", + "contributors": [ + "John-David Dalton (http://allyoucanleet.com/)", + "Blaine Bublitz (https://github.com/phated)", + "Mathias Bynens (https://mathiasbynens.be/)" + ], + "repository": "lodash/lodash", + "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } +} diff --git a/node_modules/lodash.set/LICENSE b/node_modules/lodash.set/LICENSE new file mode 100644 index 0000000..e0c69d5 --- /dev/null +++ b/node_modules/lodash.set/LICENSE @@ -0,0 +1,47 @@ +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. diff --git a/node_modules/lodash.set/README.md b/node_modules/lodash.set/README.md new file mode 100644 index 0000000..1f530bc --- /dev/null +++ b/node_modules/lodash.set/README.md @@ -0,0 +1,18 @@ +# lodash.set v4.3.2 + +The [lodash](https://lodash.com/) method `_.set` exported as a [Node.js](https://nodejs.org/) module. + +## Installation + +Using npm: +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.set +``` + +In Node.js: +```js +var set = require('lodash.set'); +``` + +See the [documentation](https://lodash.com/docs#set) or [package source](https://github.com/lodash/lodash/blob/4.3.2-npm-packages/lodash.set) for more details. diff --git a/node_modules/lodash.set/index.js b/node_modules/lodash.set/index.js new file mode 100644 index 0000000..9f3ed6b --- /dev/null +++ b/node_modules/lodash.set/index.js @@ -0,0 +1,990 @@ +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0, + MAX_SAFE_INTEGER = 9007199254740991; + +/** `Object#toString` result references. */ +var funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + symbolTag = '[object Symbol]'; + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/, + reLeadingDot = /^\./, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +/** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ +function isHostObject(value) { + // Many host objects are `Object` objects that can coerce to strings + // despite having improperly defined `toString` methods. + var result = false; + if (value != null && typeof value.toString != 'function') { + try { + result = !!(value + ''); + } catch (e) {} + } + return result; +} + +/** Used for built-in method references. */ +var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** Built-in value references. */ +var Symbol = root.Symbol, + splice = arrayProto.splice; + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'), + nativeCreate = getNative(Object, 'create'); + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; +} + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + return this.has(key) && delete this.__data__[key]; +} + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); +} + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; +} + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + return true; +} + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + return getMapData(this, key)['delete'](key); +} + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + getMapData(this, key).set(key, value); + return this; +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + object[key] = value; + } +} + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = isKey(path, object) ? [path] : castPath(path); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value) { + return isArray(value) ? value : stringToPath(value); +} + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); +} + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoize(function(string) { + string = toString(string); + + var result = []; + if (reLeadingDot.test(string)) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to process. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result); + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Assign cache to `_.memoize`. +memoize.Cache = MapCache; + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && objectToString.call(value) == symbolTag); +} + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {string} Returns the string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +/** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ +function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); +} + +module.exports = set; diff --git a/node_modules/lodash.set/package.json b/node_modules/lodash.set/package.json new file mode 100644 index 0000000..057651b --- /dev/null +++ b/node_modules/lodash.set/package.json @@ -0,0 +1,17 @@ +{ + "name": "lodash.set", + "version": "4.3.2", + "description": "The lodash method `_.set` exported as a module.", + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "keywords": "lodash-modularized, set", + "author": "John-David Dalton (http://allyoucanleet.com/)", + "contributors": [ + "John-David Dalton (http://allyoucanleet.com/)", + "Blaine Bublitz (https://github.com/phated)", + "Mathias Bynens (https://mathiasbynens.be/)" + ], + "repository": "lodash/lodash", + "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } +} diff --git a/node_modules/lodash.uniq/LICENSE b/node_modules/lodash.uniq/LICENSE new file mode 100644 index 0000000..e0c69d5 --- /dev/null +++ b/node_modules/lodash.uniq/LICENSE @@ -0,0 +1,47 @@ +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. diff --git a/node_modules/lodash.uniq/README.md b/node_modules/lodash.uniq/README.md new file mode 100644 index 0000000..a662a5e --- /dev/null +++ b/node_modules/lodash.uniq/README.md @@ -0,0 +1,18 @@ +# lodash.uniq v4.5.0 + +The [lodash](https://lodash.com/) method `_.uniq` exported as a [Node.js](https://nodejs.org/) module. + +## Installation + +Using npm: +```bash +$ {sudo -H} npm i -g npm +$ npm i --save lodash.uniq +``` + +In Node.js: +```js +var uniq = require('lodash.uniq'); +``` + +See the [documentation](https://lodash.com/docs#uniq) or [package source](https://github.com/lodash/lodash/blob/4.5.0-npm-packages/lodash.uniq) for more details. diff --git a/node_modules/lodash.uniq/index.js b/node_modules/lodash.uniq/index.js new file mode 100644 index 0000000..83fce2b --- /dev/null +++ b/node_modules/lodash.uniq/index.js @@ -0,0 +1,896 @@ +/** + * lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** `Object#toString` result references. */ +var funcTag = '[object Function]', + genTag = '[object GeneratorFunction]'; + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludes(array, value) { + var length = array ? array.length : 0; + return !!length && baseIndexOf(array, value, 0) > -1; +} + +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array ? array.length : 0; + + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; +} + +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} + +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return baseFindIndex(array, baseIsNaN, fromIndex); + } + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} + +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ +function baseIsNaN(value) { + return value !== value; +} + +/** + * Checks if a cache value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +/** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ +function isHostObject(value) { + // Many host objects are `Object` objects that can coerce to strings + // despite having improperly defined `toString` methods. + var result = false; + if (value != null && typeof value.toString != 'function') { + try { + result = !!(value + ''); + } catch (e) {} + } + return result; +} + +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +/** Used for built-in method references. */ +var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var objectToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'), + Set = getNative(root, 'Set'), + nativeCreate = getNative(Object, 'create'); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; +} + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + return this.has(key) && delete this.__data__[key]; +} + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key); +} + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; +} + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + return true; +} + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries ? entries.length : 0; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + return getMapData(this, key)['delete'](key); +} + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + getMapData(this, key).set(key, value); + return this; +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values ? values.length : 0; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +/** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ +function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} + +/** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ +var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); +}; + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to process. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +/** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each + * element is kept. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + */ +function uniq(array) { + return (array && array.length) + ? baseUniq(array) + : []; +} + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8-9 which returns 'object' for typed array and other constructors. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +/** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ +function noop() { + // No operation performed. +} + +module.exports = uniq; diff --git a/node_modules/lodash.uniq/package.json b/node_modules/lodash.uniq/package.json new file mode 100644 index 0000000..d433123 --- /dev/null +++ b/node_modules/lodash.uniq/package.json @@ -0,0 +1,17 @@ +{ + "name": "lodash.uniq", + "version": "4.5.0", + "description": "The lodash method `_.uniq` exported as a module.", + "homepage": "https://lodash.com/", + "icon": "https://lodash.com/icon.svg", + "license": "MIT", + "keywords": "lodash-modularized, uniq", + "author": "John-David Dalton (http://allyoucanleet.com/)", + "contributors": [ + "John-David Dalton (http://allyoucanleet.com/)", + "Blaine Bublitz (https://github.com/phated)", + "Mathias Bynens (https://mathiasbynens.be/)" + ], + "repository": "lodash/lodash", + "scripts": { "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\"" } +} diff --git a/node_modules/macos-release/index.d.ts b/node_modules/macos-release/index.d.ts new file mode 100644 index 0000000..c4efcf4 --- /dev/null +++ b/node_modules/macos-release/index.d.ts @@ -0,0 +1,36 @@ +declare const macosRelease: { + /** + Get the name and version of a macOS release from the Darwin version. + + @param release - By default, the current operating system is used, but you can supply a custom [Darwin kernel version](http://en.wikipedia.org/wiki/Darwin_%28operating_system%29#Release_history), which is the output of [`os.release()`](https://nodejs.org/api/os.html#os_os_release). + + @example + ``` + import * as os from 'os'; + import macosRelease = require('macos-release'); + + // On a macOS Sierra system + + macosRelease(); + //=> {name: 'Sierra', version: '10.12'} + + os.release(); + //=> 13.2.0 + // This is the Darwin kernel version + + macosRelease(os.release()); + //=> {name: 'Sierra', version: '10.12'} + + macosRelease('14.0.0'); + //=> {name: 'Yosemite', version: '10.10'} + ``` + */ + (release?: string): string; + + // TODO: remove this in the next major version, refactor the whole definition to: + // declare function macosRelease(release?: string): string; + // export = macosRelease; + default: typeof macosRelease; +}; + +export = macosRelease; diff --git a/node_modules/macos-release/index.js b/node_modules/macos-release/index.js new file mode 100644 index 0000000..b6eba6b --- /dev/null +++ b/node_modules/macos-release/index.js @@ -0,0 +1,32 @@ +'use strict'; +const os = require('os'); + +const nameMap = new Map([ + [19, 'Catalina'], + [18, 'Mojave'], + [17, 'High Sierra'], + [16, 'Sierra'], + [15, 'El Capitan'], + [14, 'Yosemite'], + [13, 'Mavericks'], + [12, 'Mountain Lion'], + [11, 'Lion'], + [10, 'Snow Leopard'], + [9, 'Leopard'], + [8, 'Tiger'], + [7, 'Panther'], + [6, 'Jaguar'], + [5, 'Puma'] +]); + +const macosRelease = release => { + release = Number((release || os.release()).split('.')[0]); + return { + name: nameMap.get(release), + version: '10.' + (release - 4) + }; +}; + +module.exports = macosRelease; +// TODO: remove this in the next major version +module.exports.default = macosRelease; diff --git a/node_modules/macos-release/license b/node_modules/macos-release/license new file mode 100644 index 0000000..e7af2f7 --- /dev/null +++ b/node_modules/macos-release/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/macos-release/package.json b/node_modules/macos-release/package.json new file mode 100644 index 0000000..a5c22cd --- /dev/null +++ b/node_modules/macos-release/package.json @@ -0,0 +1,39 @@ +{ + "name": "macos-release", + "version": "2.3.0", + "description": "Get the name and version of a macOS release from the Darwin version", + "license": "MIT", + "repository": "sindresorhus/macos-release", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "macos", + "os", + "darwin", + "operating", + "system", + "platform", + "name", + "title", + "release", + "version" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + } +} diff --git a/node_modules/macos-release/readme.md b/node_modules/macos-release/readme.md new file mode 100644 index 0000000..2e7b907 --- /dev/null +++ b/node_modules/macos-release/readme.md @@ -0,0 +1,57 @@ +# macos-release [![Build Status](https://travis-ci.org/sindresorhus/macos-release.svg?branch=master)](https://travis-ci.org/sindresorhus/macos-release) + +> Get the name and version of a macOS release from the Darwin version
+> Example: `13.2.0` → `{name: 'Mavericks', version: '10.9'}` + + +## Install + +``` +$ npm install macos-release +``` + + +## Usage + +```js +const os = require('os'); +const macosRelease = require('macos-release'); + +// On a macOS Sierra system + +macosRelease(); +//=> {name: 'Sierra', version: '10.12'} + +os.release(); +//=> 13.2.0 +// This is the Darwin kernel version + +macosRelease(os.release()); +//=> {name: 'Sierra', version: '10.12'} + +macosRelease('14.0.0'); +//=> {name: 'Yosemite', version: '10.10'} +``` + + +## API + +### macosRelease([release]) + +#### release + +Type: `string` + +By default, the current operating system is used, but you can supply a custom [Darwin kernel version](http://en.wikipedia.org/wiki/Darwin_%28operating_system%29#Release_history), which is the output of [`os.release()`](http://nodejs.org/api/os.html#os_os_release). + + +## Related + +- [os-name](https://github.com/sindresorhus/os-name) - Get the name of the current operating system. Example: `macOS Sierra` +- [macos-version](https://github.com/sindresorhus/macos-version) - Get the macOS version of the current system. Example: `10.9.3` +- [win-release](https://github.com/sindresorhus/win-release) - Get the name of a Windows version from the release number: `5.1.2600` → `XP` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/mime/.eslintrc.json b/node_modules/mime/.eslintrc.json new file mode 100644 index 0000000..845527f --- /dev/null +++ b/node_modules/mime/.eslintrc.json @@ -0,0 +1,51 @@ +{ + "root": true, + "parserOptions": { + "ecmaVersion": 6 + }, + "env": { + "browser": true, + "commonjs": true, + "node": true, + "mocha": true + }, + "extends": ["eslint:recommended"], + "rules": { + "array-bracket-spacing": ["warn", "never"], + "arrow-body-style": ["warn", "as-needed"], + "arrow-parens": ["warn", "as-needed"], + "arrow-spacing": "warn", + "brace-style": ["warn", "1tbs"], + "camelcase": "warn", + "comma-spacing": ["warn", {"after": true}], + "dot-notation": "warn", + "eqeqeq": ["warn", "smart"], + "indent": ["warn", 2, { + "SwitchCase": 1, + "FunctionDeclaration": {"parameters": 1}, + "MemberExpression": 1, + "CallExpression": {"arguments": 1} + }], + "key-spacing": ["warn", {"beforeColon": false, "afterColon": true, "mode": "minimum"}], + "keyword-spacing": "warn", + "no-console": "off", + "no-empty": "off", + "no-multi-spaces": "warn", + "no-redeclare": "off", + "no-restricted-globals": ["warn", "Promise"], + "no-trailing-spaces": "warn", + "no-undef": "error", + "no-unused-vars": ["warn", {"args": "none"}], + "one-var": ["warn", "never"], + "padded-blocks": ["warn", "never"], + "object-curly-spacing": ["warn", "never"], + "quotes": ["warn", "single"], + "react/prop-types": "off", + "react/jsx-no-bind": "off", + "semi": ["warn", "always"], + "space-before-blocks": ["warn", "always"], + "space-before-function-paren": ["warn", "never"], + "space-in-parens": ["warn", "never"], + "strict": ["warn", "global"] + } +} diff --git a/node_modules/mime/.github/ISSUE_TEMPLATE.md b/node_modules/mime/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..53bf23e --- /dev/null +++ b/node_modules/mime/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,6 @@ +### If you have an issue with a specific extension or type + +Locate the definition for your extension/type in the [db.json file](https://github.com/jshttp/mime-db/blob/master/db.json) in the `mime-db` project. Does it look right? + +- [ ] No. [File a `mime-db` issue](https://github.com/jshttp/mime-db/issues/new). +- [ ] Yes: Go ahead and submit your issue/PR here and I'll look into it. diff --git a/node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md b/node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..53bf23e --- /dev/null +++ b/node_modules/mime/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,6 @@ +### If you have an issue with a specific extension or type + +Locate the definition for your extension/type in the [db.json file](https://github.com/jshttp/mime-db/blob/master/db.json) in the `mime-db` project. Does it look right? + +- [ ] No. [File a `mime-db` issue](https://github.com/jshttp/mime-db/issues/new). +- [ ] Yes: Go ahead and submit your issue/PR here and I'll look into it. diff --git a/node_modules/mime/.travis.yml b/node_modules/mime/.travis.yml new file mode 100644 index 0000000..045b41b --- /dev/null +++ b/node_modules/mime/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - "6" + - "8" + - "10" diff --git a/node_modules/mime/CHANGELOG.md b/node_modules/mime/CHANGELOG.md new file mode 100644 index 0000000..ba9cd97 --- /dev/null +++ b/node_modules/mime/CHANGELOG.md @@ -0,0 +1,262 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [2.4.4](https://github.com/broofa/node-mime/compare/v2.4.3...v2.4.4) (2019-06-07) + + + +## [2.4.3](https://github.com/broofa/node-mime/compare/v2.4.2...v2.4.3) (2019-05-15) + + + +## [2.4.2](https://github.com/broofa/node-mime/compare/v2.4.1...v2.4.2) (2019-04-07) + + +### Bug Fixes + +* don't use arrow function introduced in 2.4.1 ([2e00b5c](https://github.com/broofa/node-mime/commit/2e00b5c)) + + + +## [2.4.1](https://github.com/broofa/node-mime/compare/v2.4.0...v2.4.1) (2019-04-03) + + +### Bug Fixes + +* update MDN and mime-db types ([3e567a9](https://github.com/broofa/node-mime/commit/3e567a9)) + + + + +# [2.4.0](https://github.com/broofa/node-mime/compare/v2.3.1...v2.4.0) (2018-11-26) + + +### Features + +* Bind exported methods ([9d2a7b8](https://github.com/broofa/node-mime/commit/9d2a7b8)) +* update to mime-db@1.37.0 ([49e6e41](https://github.com/broofa/node-mime/commit/49e6e41)) + + + + +## [2.3.1](https://github.com/broofa/node-mime/compare/v2.3.0...v2.3.1) (2018-04-11) + + +### Bug Fixes + +* fix [#198](https://github.com/broofa/node-mime/issues/198) ([25ca180](https://github.com/broofa/node-mime/commit/25ca180)) + + + + +# [2.3.0](https://github.com/broofa/node-mime/compare/v2.2.2...v2.3.0) (2018-04-11) + + +### Bug Fixes + +* fix [#192](https://github.com/broofa/node-mime/issues/192) ([5c35df6](https://github.com/broofa/node-mime/commit/5c35df6)) + + +### Features + +* add travis-ci testing ([d64160f](https://github.com/broofa/node-mime/commit/d64160f)) + + + + +## [2.2.2](https://github.com/broofa/node-mime/compare/v2.2.1...v2.2.2) (2018-03-30) + + +### Bug Fixes + +* update types files to mime-db@1.32.0 ([85aac16](https://github.com/broofa/node-mime/commit/85aac16)) + + + + +## [2.2.1](https://github.com/broofa/node-mime/compare/v2.2.0...v2.2.1) (2018-03-30) + + +### Bug Fixes + +* Retain type->extension mappings for non-default types. Fixes [#180](https://github.com/broofa/node-mime/issues/180) ([b5c83fb](https://github.com/broofa/node-mime/commit/b5c83fb)) + + + + +# [2.2.0](https://github.com/broofa/node-mime/compare/v2.1.0...v2.2.0) (2018-01-04) + + +### Features + +* Retain type->extension mappings for non-default types. Fixes [#180](https://github.com/broofa/node-mime/issues/180) ([10f82ac](https://github.com/broofa/node-mime/commit/10f82ac)) + + + + +# [2.1.0](https://github.com/broofa/node-mime/compare/v2.0.5...v2.1.0) (2017-12-22) + + +### Features + +* Upgrade to mime-db@1.32.0. Fixes [#185](https://github.com/broofa/node-mime/issues/185) ([3f775ba](https://github.com/broofa/node-mime/commit/3f775ba)) + + + + +## [2.0.5](https://github.com/broofa/node-mime/compare/v2.0.1...v2.0.5) (2017-12-22) + + +### Bug Fixes + +* ES5 support (back to node v0.4) ([f14ccb6](https://github.com/broofa/node-mime/commit/f14ccb6)) + + + +# Changelog + +## v2.0.4 (24/11/2017) +- [**closed**] Switch to mime-score module for resolving extension contention issues. [#182](https://github.com/broofa/node-mime/issues/182) +- [**closed**] Update mime-db to 1.31.0 in v1.x branch [#181](https://github.com/broofa/node-mime/issues/181) + +--- + +## v1.5.0 (22/11/2017) +- [**closed**] need ES5 version ready in npm package [#179](https://github.com/broofa/node-mime/issues/179) +- [**closed**] mime-db no trace of iWork - pages / numbers / etc. [#178](https://github.com/broofa/node-mime/issues/178) +- [**closed**] How it works in brownser ? [#176](https://github.com/broofa/node-mime/issues/176) +- [**closed**] Missing `./Mime` [#175](https://github.com/broofa/node-mime/issues/175) +- [**closed**] Vulnerable Regular Expression [#167](https://github.com/broofa/node-mime/issues/167) + +--- + +## v2.0.3 (25/09/2017) +*No changelog for this release.* + +--- + +## v1.4.1 (25/09/2017) +- [**closed**] Issue when bundling with webpack [#172](https://github.com/broofa/node-mime/issues/172) + +--- + +## v2.0.2 (15/09/2017) +- [**V2**] fs.readFileSync is not a function [#165](https://github.com/broofa/node-mime/issues/165) +- [**closed**] The extension for video/quicktime should map to .mov, not .qt [#164](https://github.com/broofa/node-mime/issues/164) +- [**V2**] [v2 Feedback request] Mime class API [#163](https://github.com/broofa/node-mime/issues/163) +- [**V2**] [v2 Feedback request] Resolving conflicts over extensions [#162](https://github.com/broofa/node-mime/issues/162) +- [**V2**] Allow callers to load module with official, full, or no defined types. [#161](https://github.com/broofa/node-mime/issues/161) +- [**V2**] Use "facets" to resolve extension conflicts [#160](https://github.com/broofa/node-mime/issues/160) +- [**V2**] Remove fs and path dependencies [#152](https://github.com/broofa/node-mime/issues/152) +- [**V2**] Default content-type should not be application/octet-stream [#139](https://github.com/broofa/node-mime/issues/139) +- [**V2**] reset mime-types [#124](https://github.com/broofa/node-mime/issues/124) +- [**V2**] Extensionless paths should return null or false [#113](https://github.com/broofa/node-mime/issues/113) + +--- + +## v2.0.1 (14/09/2017) +- [**closed**] Changelog for v2.0 does not mention breaking changes [#171](https://github.com/broofa/node-mime/issues/171) +- [**closed**] MIME breaking with 'class' declaration as it is without 'use strict mode' [#170](https://github.com/broofa/node-mime/issues/170) + +--- + +## v2.0.0 (12/09/2017) +- [**closed**] woff and woff2 [#168](https://github.com/broofa/node-mime/issues/168) + +--- + +## v1.4.0 (28/08/2017) +- [**closed**] support for ac3 voc files [#159](https://github.com/broofa/node-mime/issues/159) +- [**closed**] Help understanding change from application/xml to text/xml [#158](https://github.com/broofa/node-mime/issues/158) +- [**closed**] no longer able to override mimetype [#157](https://github.com/broofa/node-mime/issues/157) +- [**closed**] application/vnd.adobe.photoshop [#147](https://github.com/broofa/node-mime/issues/147) +- [**closed**] Directories should appear as something other than application/octet-stream [#135](https://github.com/broofa/node-mime/issues/135) +- [**closed**] requested features [#131](https://github.com/broofa/node-mime/issues/131) +- [**closed**] Make types.json loading optional? [#129](https://github.com/broofa/node-mime/issues/129) +- [**closed**] Cannot find module './types.json' [#120](https://github.com/broofa/node-mime/issues/120) +- [**V2**] .wav files show up as "audio/x-wav" instead of "audio/x-wave" [#118](https://github.com/broofa/node-mime/issues/118) +- [**closed**] Don't be a pain in the ass for node community [#108](https://github.com/broofa/node-mime/issues/108) +- [**closed**] don't make default_type global [#78](https://github.com/broofa/node-mime/issues/78) +- [**closed**] mime.extension() fails if the content-type is parameterized [#74](https://github.com/broofa/node-mime/issues/74) + +--- + +## v1.3.6 (11/05/2017) +- [**closed**] .md should be text/markdown as of March 2016 [#154](https://github.com/broofa/node-mime/issues/154) +- [**closed**] Error while installing mime [#153](https://github.com/broofa/node-mime/issues/153) +- [**closed**] application/manifest+json [#149](https://github.com/broofa/node-mime/issues/149) +- [**closed**] Dynamic adaptive streaming over HTTP (DASH) file extension typo [#141](https://github.com/broofa/node-mime/issues/141) +- [**closed**] charsets image/png undefined [#140](https://github.com/broofa/node-mime/issues/140) +- [**closed**] Mime-db dependency out of date [#130](https://github.com/broofa/node-mime/issues/130) +- [**closed**] how to support plist? [#126](https://github.com/broofa/node-mime/issues/126) +- [**closed**] how does .types file format look like? [#123](https://github.com/broofa/node-mime/issues/123) +- [**closed**] Feature: support for expanding MIME patterns [#121](https://github.com/broofa/node-mime/issues/121) +- [**closed**] DEBUG_MIME doesn't work [#117](https://github.com/broofa/node-mime/issues/117) + +--- + +## v1.3.4 (06/02/2015) +*No changelog for this release.* + +--- + +## v1.3.3 (06/02/2015) +*No changelog for this release.* + +--- + +## v1.3.1 (05/02/2015) +- [**closed**] Consider adding support for Handlebars .hbs file ending [#111](https://github.com/broofa/node-mime/issues/111) +- [**closed**] Consider adding support for hjson. [#110](https://github.com/broofa/node-mime/issues/110) +- [**closed**] Add mime type for Opus audio files [#94](https://github.com/broofa/node-mime/issues/94) +- [**closed**] Consider making the `Requesting New Types` information more visible [#77](https://github.com/broofa/node-mime/issues/77) + +--- + +## v1.3.0 (05/02/2015) +- [**closed**] Add common name? [#114](https://github.com/broofa/node-mime/issues/114) +- [**closed**] application/x-yaml [#104](https://github.com/broofa/node-mime/issues/104) +- [**closed**] Add mime type for WOFF file format 2.0 [#102](https://github.com/broofa/node-mime/issues/102) +- [**closed**] application/x-msi for .msi [#99](https://github.com/broofa/node-mime/issues/99) +- [**closed**] Add mimetype for gettext translation files [#98](https://github.com/broofa/node-mime/issues/98) +- [**closed**] collaborators [#88](https://github.com/broofa/node-mime/issues/88) +- [**closed**] getting errot in installation of mime module...any1 can help? [#87](https://github.com/broofa/node-mime/issues/87) +- [**closed**] should application/json's charset be utf8? [#86](https://github.com/broofa/node-mime/issues/86) +- [**closed**] Add "license" and "licenses" to package.json [#81](https://github.com/broofa/node-mime/issues/81) +- [**closed**] lookup with extension-less file on Windows returns wrong type [#68](https://github.com/broofa/node-mime/issues/68) + +--- + +## v1.2.11 (15/08/2013) +- [**closed**] Update mime.types [#65](https://github.com/broofa/node-mime/issues/65) +- [**closed**] Publish a new version [#63](https://github.com/broofa/node-mime/issues/63) +- [**closed**] README should state upfront that "application/octet-stream" is default for unknown extension [#55](https://github.com/broofa/node-mime/issues/55) +- [**closed**] Suggested improvement to the charset API [#52](https://github.com/broofa/node-mime/issues/52) + +--- + +## v1.2.10 (25/07/2013) +- [**closed**] Mime type for woff files should be application/font-woff and not application/x-font-woff [#62](https://github.com/broofa/node-mime/issues/62) +- [**closed**] node.types in conflict with mime.types [#51](https://github.com/broofa/node-mime/issues/51) + +--- + +## v1.2.9 (17/01/2013) +- [**closed**] Please update "mime" NPM [#49](https://github.com/broofa/node-mime/issues/49) +- [**closed**] Please add semicolon [#46](https://github.com/broofa/node-mime/issues/46) +- [**closed**] parse full mime types [#43](https://github.com/broofa/node-mime/issues/43) + +--- + +## v1.2.8 (10/01/2013) +- [**closed**] /js directory mime is application/javascript. Is it correct? [#47](https://github.com/broofa/node-mime/issues/47) +- [**closed**] Add mime types for lua code. [#45](https://github.com/broofa/node-mime/issues/45) + +--- + +## v1.2.7 (19/10/2012) +- [**closed**] cannot install 1.2.7 via npm [#41](https://github.com/broofa/node-mime/issues/41) +- [**closed**] Transfer ownership to @broofa [#36](https://github.com/broofa/node-mime/issues/36) +- [**closed**] it's wrong to set charset to UTF-8 for text [#30](https://github.com/broofa/node-mime/issues/30) +- [**closed**] Allow multiple instances of MIME types container [#27](https://github.com/broofa/node-mime/issues/27) diff --git a/node_modules/mime/CONTRIBUTING.md b/node_modules/mime/CONTRIBUTING.md new file mode 100644 index 0000000..dd5c86a --- /dev/null +++ b/node_modules/mime/CONTRIBUTING.md @@ -0,0 +1,5 @@ +1. Commit messages should have a [Conventional Commit](https://conventionalcommits.org/) prefix. +2. If you're editing the `types/*` files, just stop. These are auto-generated from [mime-db](https://github.com/jshttp/mime-db). Go talk to those folks. +3. README edits should be made to [src/README_md.js](src/README_md.js). + +Thanks for helping out with this project. You rock! diff --git a/node_modules/mime/LICENSE b/node_modules/mime/LICENSE new file mode 100644 index 0000000..d3f46f7 --- /dev/null +++ b/node_modules/mime/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2010 Benjamin Thomas, Robert Kieffer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/mime/Mime.js b/node_modules/mime/Mime.js new file mode 100644 index 0000000..7fe3921 --- /dev/null +++ b/node_modules/mime/Mime.js @@ -0,0 +1,95 @@ +'use strict'; + +/** + * @param typeMap [Object] Map of MIME type -> Array[extensions] + * @param ... + */ +function Mime() { + this._types = Object.create(null); + this._extensions = Object.create(null); + + for (var i = 0; i < arguments.length; i++) { + this.define(arguments[i]); + } + + this.define = this.define.bind(this); + this.getType = this.getType.bind(this); + this.getExtension = this.getExtension.bind(this); +} + +/** + * Define mimetype -> extension mappings. Each key is a mime-type that maps + * to an array of extensions associated with the type. The first extension is + * used as the default extension for the type. + * + * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); + * + * If a type declares an extension that has already been defined, an error will + * be thrown. To suppress this error and force the extension to be associated + * with the new type, pass `force`=true. Alternatively, you may prefix the + * extension with "*" to map the type to extension, without mapping the + * extension to the type. + * + * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']}); + * + * + * @param map (Object) type definitions + * @param force (Boolean) if true, force overriding of existing definitions + */ +Mime.prototype.define = function(typeMap, force) { + for (var type in typeMap) { + var extensions = typeMap[type].map(function(t) {return t.toLowerCase()}); + type = type.toLowerCase(); + + for (var i = 0; i < extensions.length; i++) { + var ext = extensions[i]; + + // '*' prefix = not the preferred type for this extension. So fixup the + // extension, and skip it. + if (ext[0] == '*') { + continue; + } + + if (!force && (ext in this._types)) { + throw new Error( + 'Attempt to change mapping for "' + ext + + '" extension from "' + this._types[ext] + '" to "' + type + + '". Pass `force=true` to allow this, otherwise remove "' + ext + + '" from the list of extensions for "' + type + '".' + ); + } + + this._types[ext] = type; + } + + // Use first extension as default + if (force || !this._extensions[type]) { + var ext = extensions[0]; + this._extensions[type] = (ext[0] != '*') ? ext : ext.substr(1) + } + } +}; + +/** + * Lookup a mime type based on extension + */ +Mime.prototype.getType = function(path) { + path = String(path); + var last = path.replace(/^.*[/\\]/, '').toLowerCase(); + var ext = last.replace(/^.*\./, '').toLowerCase(); + + var hasPath = last.length < path.length; + var hasDot = ext.length < last.length - 1; + + return (hasDot || !hasPath) && this._types[ext] || null; +}; + +/** + * Return file extension associated with a mime type + */ +Mime.prototype.getExtension = function(type) { + type = /^\s*([^;\s]*)/.test(type) && RegExp.$1; + return type && this._extensions[type.toLowerCase()] || null; +}; + +module.exports = Mime; diff --git a/node_modules/mime/README.md b/node_modules/mime/README.md new file mode 100644 index 0000000..37bd2b8 --- /dev/null +++ b/node_modules/mime/README.md @@ -0,0 +1,193 @@ + +# Mime + +A comprehensive, compact MIME type module. + +[![Build Status](https://travis-ci.org/broofa/node-mime.svg?branch=master)](https://travis-ci.org/broofa/node-mime) + +## Version 2 Notes + +Version 2 is a breaking change from 1.x as the semver implies. Specifically: + +* `lookup()` renamed to `getType()` +* `extension()` renamed to `getExtension()` +* `charset()` and `load()` methods have been removed + +If you prefer the legacy version of this module please `npm install mime@^1`. Version 1 docs may be found [here](https://github.com/broofa/node-mime/tree/v1.4.0). + +## Install + +### NPM +``` +npm install mime +``` + +### Browser + +It is recommended that you use a bundler such as +[webpack](https://webpack.github.io/) or [browserify](http://browserify.org/) to +package your code. However, browser-ready versions are available via wzrd.in. +E.g. For the full version: + + + + + +