gh-sweep 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +43 -0
  2. package/dist/index.js +4131 -0
  3. package/package.json +27 -0
package/dist/index.js ADDED
@@ -0,0 +1,4131 @@
1
+ #!/usr/bin/env node
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJS = (cb, mod) => function __require() {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+
28
+ // node_modules/fast-content-type-parse/index.js
29
+ var require_fast_content_type_parse = __commonJS({
30
+ "node_modules/fast-content-type-parse/index.js"(exports, module) {
31
+ "use strict";
32
+ var NullObject = function NullObject2() {
33
+ };
34
+ NullObject.prototype = /* @__PURE__ */ Object.create(null);
35
+ var paramRE = /; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu;
36
+ var quotedPairRE = /\\([\v\u0020-\u00ff])/gu;
37
+ var mediaTypeRE = /^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u;
38
+ var defaultContentType = { type: "", parameters: new NullObject() };
39
+ Object.freeze(defaultContentType.parameters);
40
+ Object.freeze(defaultContentType);
41
+ function parse2(header) {
42
+ if (typeof header !== "string") {
43
+ throw new TypeError("argument header is required and must be a string");
44
+ }
45
+ let index = header.indexOf(";");
46
+ const type = index !== -1 ? header.slice(0, index).trim() : header.trim();
47
+ if (mediaTypeRE.test(type) === false) {
48
+ throw new TypeError("invalid media type");
49
+ }
50
+ const result = {
51
+ type: type.toLowerCase(),
52
+ parameters: new NullObject()
53
+ };
54
+ if (index === -1) {
55
+ return result;
56
+ }
57
+ let key;
58
+ let match;
59
+ let value;
60
+ paramRE.lastIndex = index;
61
+ while (match = paramRE.exec(header)) {
62
+ if (match.index !== index) {
63
+ throw new TypeError("invalid parameter format");
64
+ }
65
+ index += match[0].length;
66
+ key = match[1].toLowerCase();
67
+ value = match[2];
68
+ if (value[0] === '"') {
69
+ value = value.slice(1, value.length - 1);
70
+ quotedPairRE.test(value) && (value = value.replace(quotedPairRE, "$1"));
71
+ }
72
+ result.parameters[key] = value;
73
+ }
74
+ if (index !== header.length) {
75
+ throw new TypeError("invalid parameter format");
76
+ }
77
+ return result;
78
+ }
79
+ function safeParse2(header) {
80
+ if (typeof header !== "string") {
81
+ return defaultContentType;
82
+ }
83
+ let index = header.indexOf(";");
84
+ const type = index !== -1 ? header.slice(0, index).trim() : header.trim();
85
+ if (mediaTypeRE.test(type) === false) {
86
+ return defaultContentType;
87
+ }
88
+ const result = {
89
+ type: type.toLowerCase(),
90
+ parameters: new NullObject()
91
+ };
92
+ if (index === -1) {
93
+ return result;
94
+ }
95
+ let key;
96
+ let match;
97
+ let value;
98
+ paramRE.lastIndex = index;
99
+ while (match = paramRE.exec(header)) {
100
+ if (match.index !== index) {
101
+ return defaultContentType;
102
+ }
103
+ index += match[0].length;
104
+ key = match[1].toLowerCase();
105
+ value = match[2];
106
+ if (value[0] === '"') {
107
+ value = value.slice(1, value.length - 1);
108
+ quotedPairRE.test(value) && (value = value.replace(quotedPairRE, "$1"));
109
+ }
110
+ result.parameters[key] = value;
111
+ }
112
+ if (index !== header.length) {
113
+ return defaultContentType;
114
+ }
115
+ return result;
116
+ }
117
+ module.exports.default = { parse: parse2, safeParse: safeParse2 };
118
+ module.exports.parse = parse2;
119
+ module.exports.safeParse = safeParse2;
120
+ module.exports.defaultContentType = defaultContentType;
121
+ }
122
+ });
123
+
124
+ // src/index.tsx
125
+ import { useState, useEffect, useMemo, useCallback } from "react";
126
+ import { render, Box, Text, useInput, useApp, useStdout } from "ink";
127
+ import { execSync } from "child_process";
128
+
129
+ // node_modules/universal-user-agent/index.js
130
+ function getUserAgent() {
131
+ if (typeof navigator === "object" && "userAgent" in navigator) {
132
+ return navigator.userAgent;
133
+ }
134
+ if (typeof process === "object" && process.version !== void 0) {
135
+ return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;
136
+ }
137
+ return "<environment undetectable>";
138
+ }
139
+
140
+ // node_modules/before-after-hook/lib/register.js
141
+ function register(state, name, method, options) {
142
+ if (typeof method !== "function") {
143
+ throw new Error("method for before hook must be a function");
144
+ }
145
+ if (!options) {
146
+ options = {};
147
+ }
148
+ if (Array.isArray(name)) {
149
+ return name.reverse().reduce((callback, name2) => {
150
+ return register.bind(null, state, name2, callback, options);
151
+ }, method)();
152
+ }
153
+ return Promise.resolve().then(() => {
154
+ if (!state.registry[name]) {
155
+ return method(options);
156
+ }
157
+ return state.registry[name].reduce((method2, registered) => {
158
+ return registered.hook.bind(null, method2, options);
159
+ }, method)();
160
+ });
161
+ }
162
+
163
+ // node_modules/before-after-hook/lib/add.js
164
+ function addHook(state, kind, name, hook2) {
165
+ const orig = hook2;
166
+ if (!state.registry[name]) {
167
+ state.registry[name] = [];
168
+ }
169
+ if (kind === "before") {
170
+ hook2 = (method, options) => {
171
+ return Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options));
172
+ };
173
+ }
174
+ if (kind === "after") {
175
+ hook2 = (method, options) => {
176
+ let result;
177
+ return Promise.resolve().then(method.bind(null, options)).then((result_) => {
178
+ result = result_;
179
+ return orig(result, options);
180
+ }).then(() => {
181
+ return result;
182
+ });
183
+ };
184
+ }
185
+ if (kind === "error") {
186
+ hook2 = (method, options) => {
187
+ return Promise.resolve().then(method.bind(null, options)).catch((error) => {
188
+ return orig(error, options);
189
+ });
190
+ };
191
+ }
192
+ state.registry[name].push({
193
+ hook: hook2,
194
+ orig
195
+ });
196
+ }
197
+
198
+ // node_modules/before-after-hook/lib/remove.js
199
+ function removeHook(state, name, method) {
200
+ if (!state.registry[name]) {
201
+ return;
202
+ }
203
+ const index = state.registry[name].map((registered) => {
204
+ return registered.orig;
205
+ }).indexOf(method);
206
+ if (index === -1) {
207
+ return;
208
+ }
209
+ state.registry[name].splice(index, 1);
210
+ }
211
+
212
+ // node_modules/before-after-hook/index.js
213
+ var bind = Function.bind;
214
+ var bindable = bind.bind(bind);
215
+ function bindApi(hook2, state, name) {
216
+ const removeHookRef = bindable(removeHook, null).apply(
217
+ null,
218
+ name ? [state, name] : [state]
219
+ );
220
+ hook2.api = { remove: removeHookRef };
221
+ hook2.remove = removeHookRef;
222
+ ["before", "error", "after", "wrap"].forEach((kind) => {
223
+ const args = name ? [state, kind, name] : [state, kind];
224
+ hook2[kind] = hook2.api[kind] = bindable(addHook, null).apply(null, args);
225
+ });
226
+ }
227
+ function Singular() {
228
+ const singularHookName = /* @__PURE__ */ Symbol("Singular");
229
+ const singularHookState = {
230
+ registry: {}
231
+ };
232
+ const singularHook = register.bind(null, singularHookState, singularHookName);
233
+ bindApi(singularHook, singularHookState, singularHookName);
234
+ return singularHook;
235
+ }
236
+ function Collection() {
237
+ const state = {
238
+ registry: {}
239
+ };
240
+ const hook2 = register.bind(null, state);
241
+ bindApi(hook2, state);
242
+ return hook2;
243
+ }
244
+ var before_after_hook_default = { Singular, Collection };
245
+
246
+ // node_modules/@octokit/endpoint/dist-bundle/index.js
247
+ var VERSION = "0.0.0-development";
248
+ var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
249
+ var DEFAULTS = {
250
+ method: "GET",
251
+ baseUrl: "https://api.github.com",
252
+ headers: {
253
+ accept: "application/vnd.github.v3+json",
254
+ "user-agent": userAgent
255
+ },
256
+ mediaType: {
257
+ format: ""
258
+ }
259
+ };
260
+ function lowercaseKeys(object) {
261
+ if (!object) {
262
+ return {};
263
+ }
264
+ return Object.keys(object).reduce((newObj, key) => {
265
+ newObj[key.toLowerCase()] = object[key];
266
+ return newObj;
267
+ }, {});
268
+ }
269
+ function isPlainObject(value) {
270
+ if (typeof value !== "object" || value === null) return false;
271
+ if (Object.prototype.toString.call(value) !== "[object Object]") return false;
272
+ const proto = Object.getPrototypeOf(value);
273
+ if (proto === null) return true;
274
+ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
275
+ return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
276
+ }
277
+ function mergeDeep(defaults, options) {
278
+ const result = Object.assign({}, defaults);
279
+ Object.keys(options).forEach((key) => {
280
+ if (isPlainObject(options[key])) {
281
+ if (!(key in defaults)) Object.assign(result, { [key]: options[key] });
282
+ else result[key] = mergeDeep(defaults[key], options[key]);
283
+ } else {
284
+ Object.assign(result, { [key]: options[key] });
285
+ }
286
+ });
287
+ return result;
288
+ }
289
+ function removeUndefinedProperties(obj) {
290
+ for (const key in obj) {
291
+ if (obj[key] === void 0) {
292
+ delete obj[key];
293
+ }
294
+ }
295
+ return obj;
296
+ }
297
+ function merge(defaults, route, options) {
298
+ if (typeof route === "string") {
299
+ let [method, url] = route.split(" ");
300
+ options = Object.assign(url ? { method, url } : { url: method }, options);
301
+ } else {
302
+ options = Object.assign({}, route);
303
+ }
304
+ options.headers = lowercaseKeys(options.headers);
305
+ removeUndefinedProperties(options);
306
+ removeUndefinedProperties(options.headers);
307
+ const mergedOptions = mergeDeep(defaults || {}, options);
308
+ if (options.url === "/graphql") {
309
+ if (defaults && defaults.mediaType.previews?.length) {
310
+ mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(
311
+ (preview) => !mergedOptions.mediaType.previews.includes(preview)
312
+ ).concat(mergedOptions.mediaType.previews);
313
+ }
314
+ mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, ""));
315
+ }
316
+ return mergedOptions;
317
+ }
318
+ function addQueryParameters(url, parameters) {
319
+ const separator = /\?/.test(url) ? "&" : "?";
320
+ const names = Object.keys(parameters);
321
+ if (names.length === 0) {
322
+ return url;
323
+ }
324
+ return url + separator + names.map((name) => {
325
+ if (name === "q") {
326
+ return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+");
327
+ }
328
+ return `${name}=${encodeURIComponent(parameters[name])}`;
329
+ }).join("&");
330
+ }
331
+ var urlVariableRegex = /\{[^{}}]+\}/g;
332
+ function removeNonChars(variableName) {
333
+ return variableName.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g, "").split(/,/);
334
+ }
335
+ function extractUrlVariableNames(url) {
336
+ const matches = url.match(urlVariableRegex);
337
+ if (!matches) {
338
+ return [];
339
+ }
340
+ return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
341
+ }
342
+ function omit(object, keysToOmit) {
343
+ const result = { __proto__: null };
344
+ for (const key of Object.keys(object)) {
345
+ if (keysToOmit.indexOf(key) === -1) {
346
+ result[key] = object[key];
347
+ }
348
+ }
349
+ return result;
350
+ }
351
+ function encodeReserved(str) {
352
+ return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {
353
+ if (!/%[0-9A-Fa-f]/.test(part)) {
354
+ part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
355
+ }
356
+ return part;
357
+ }).join("");
358
+ }
359
+ function encodeUnreserved(str) {
360
+ return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
361
+ return "%" + c.charCodeAt(0).toString(16).toUpperCase();
362
+ });
363
+ }
364
+ function encodeValue(operator, value, key) {
365
+ value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value);
366
+ if (key) {
367
+ return encodeUnreserved(key) + "=" + value;
368
+ } else {
369
+ return value;
370
+ }
371
+ }
372
+ function isDefined(value) {
373
+ return value !== void 0 && value !== null;
374
+ }
375
+ function isKeyOperator(operator) {
376
+ return operator === ";" || operator === "&" || operator === "?";
377
+ }
378
+ function getValues(context, operator, key, modifier) {
379
+ var value = context[key], result = [];
380
+ if (isDefined(value) && value !== "") {
381
+ if (typeof value === "string" || typeof value === "number" || typeof value === "bigint" || typeof value === "boolean") {
382
+ value = value.toString();
383
+ if (modifier && modifier !== "*") {
384
+ value = value.substring(0, parseInt(modifier, 10));
385
+ }
386
+ result.push(
387
+ encodeValue(operator, value, isKeyOperator(operator) ? key : "")
388
+ );
389
+ } else {
390
+ if (modifier === "*") {
391
+ if (Array.isArray(value)) {
392
+ value.filter(isDefined).forEach(function(value2) {
393
+ result.push(
394
+ encodeValue(operator, value2, isKeyOperator(operator) ? key : "")
395
+ );
396
+ });
397
+ } else {
398
+ Object.keys(value).forEach(function(k) {
399
+ if (isDefined(value[k])) {
400
+ result.push(encodeValue(operator, value[k], k));
401
+ }
402
+ });
403
+ }
404
+ } else {
405
+ const tmp = [];
406
+ if (Array.isArray(value)) {
407
+ value.filter(isDefined).forEach(function(value2) {
408
+ tmp.push(encodeValue(operator, value2));
409
+ });
410
+ } else {
411
+ Object.keys(value).forEach(function(k) {
412
+ if (isDefined(value[k])) {
413
+ tmp.push(encodeUnreserved(k));
414
+ tmp.push(encodeValue(operator, value[k].toString()));
415
+ }
416
+ });
417
+ }
418
+ if (isKeyOperator(operator)) {
419
+ result.push(encodeUnreserved(key) + "=" + tmp.join(","));
420
+ } else if (tmp.length !== 0) {
421
+ result.push(tmp.join(","));
422
+ }
423
+ }
424
+ }
425
+ } else {
426
+ if (operator === ";") {
427
+ if (isDefined(value)) {
428
+ result.push(encodeUnreserved(key));
429
+ }
430
+ } else if (value === "" && (operator === "&" || operator === "?")) {
431
+ result.push(encodeUnreserved(key) + "=");
432
+ } else if (value === "") {
433
+ result.push("");
434
+ }
435
+ }
436
+ return result;
437
+ }
438
+ function parseUrl(template) {
439
+ return {
440
+ expand: expand.bind(null, template)
441
+ };
442
+ }
443
+ function expand(template, context) {
444
+ var operators = ["+", "#", ".", "/", ";", "?", "&"];
445
+ template = template.replace(
446
+ /\{([^\{\}]+)\}|([^\{\}]+)/g,
447
+ function(_, expression, literal) {
448
+ if (expression) {
449
+ let operator = "";
450
+ const values = [];
451
+ if (operators.indexOf(expression.charAt(0)) !== -1) {
452
+ operator = expression.charAt(0);
453
+ expression = expression.substr(1);
454
+ }
455
+ expression.split(/,/g).forEach(function(variable) {
456
+ var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
457
+ values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
458
+ });
459
+ if (operator && operator !== "+") {
460
+ var separator = ",";
461
+ if (operator === "?") {
462
+ separator = "&";
463
+ } else if (operator !== "#") {
464
+ separator = operator;
465
+ }
466
+ return (values.length !== 0 ? operator : "") + values.join(separator);
467
+ } else {
468
+ return values.join(",");
469
+ }
470
+ } else {
471
+ return encodeReserved(literal);
472
+ }
473
+ }
474
+ );
475
+ if (template === "/") {
476
+ return template;
477
+ } else {
478
+ return template.replace(/\/$/, "");
479
+ }
480
+ }
481
+ function parse(options) {
482
+ let method = options.method.toUpperCase();
483
+ let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}");
484
+ let headers = Object.assign({}, options.headers);
485
+ let body;
486
+ let parameters = omit(options, [
487
+ "method",
488
+ "baseUrl",
489
+ "url",
490
+ "headers",
491
+ "request",
492
+ "mediaType"
493
+ ]);
494
+ const urlVariableNames = extractUrlVariableNames(url);
495
+ url = parseUrl(url).expand(parameters);
496
+ if (!/^http/.test(url)) {
497
+ url = options.baseUrl + url;
498
+ }
499
+ const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl");
500
+ const remainingParameters = omit(parameters, omittedParameters);
501
+ const isBinaryRequest = /application\/octet-stream/i.test(headers.accept);
502
+ if (!isBinaryRequest) {
503
+ if (options.mediaType.format) {
504
+ headers.accept = headers.accept.split(/,/).map(
505
+ (format) => format.replace(
506
+ /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,
507
+ `application/vnd$1$2.${options.mediaType.format}`
508
+ )
509
+ ).join(",");
510
+ }
511
+ if (url.endsWith("/graphql")) {
512
+ if (options.mediaType.previews?.length) {
513
+ const previewsFromAcceptHeader = headers.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g) || [];
514
+ headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => {
515
+ const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json";
516
+ return `application/vnd.github.${preview}-preview${format}`;
517
+ }).join(",");
518
+ }
519
+ }
520
+ }
521
+ if (["GET", "HEAD"].includes(method)) {
522
+ url = addQueryParameters(url, remainingParameters);
523
+ } else {
524
+ if ("data" in remainingParameters) {
525
+ body = remainingParameters.data;
526
+ } else {
527
+ if (Object.keys(remainingParameters).length) {
528
+ body = remainingParameters;
529
+ }
530
+ }
531
+ }
532
+ if (!headers["content-type"] && typeof body !== "undefined") {
533
+ headers["content-type"] = "application/json; charset=utf-8";
534
+ }
535
+ if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
536
+ body = "";
537
+ }
538
+ return Object.assign(
539
+ { method, url, headers },
540
+ typeof body !== "undefined" ? { body } : null,
541
+ options.request ? { request: options.request } : null
542
+ );
543
+ }
544
+ function endpointWithDefaults(defaults, route, options) {
545
+ return parse(merge(defaults, route, options));
546
+ }
547
+ function withDefaults(oldDefaults, newDefaults) {
548
+ const DEFAULTS2 = merge(oldDefaults, newDefaults);
549
+ const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2);
550
+ return Object.assign(endpoint2, {
551
+ DEFAULTS: DEFAULTS2,
552
+ defaults: withDefaults.bind(null, DEFAULTS2),
553
+ merge: merge.bind(null, DEFAULTS2),
554
+ parse
555
+ });
556
+ }
557
+ var endpoint = withDefaults(null, DEFAULTS);
558
+
559
+ // node_modules/@octokit/request/dist-bundle/index.js
560
+ var import_fast_content_type_parse = __toESM(require_fast_content_type_parse(), 1);
561
+
562
+ // node_modules/json-with-bigint/json-with-bigint.js
563
+ var intRegex = /^-?\d+$/;
564
+ var noiseValue = /^-?\d+n+$/;
565
+ var originalStringify = JSON.stringify;
566
+ var originalParse = JSON.parse;
567
+ var customFormat = /^-?\d+n$/;
568
+ var bigIntsStringify = /([\[:])?"(-?\d+)n"($|([\\n]|\s)*(\s|[\\n])*[,\}\]])/g;
569
+ var noiseStringify = /([\[:])?("-?\d+n+)n("$|"([\\n]|\s)*(\s|[\\n])*[,\}\]])/g;
570
+ var JSONStringify = (value, replacer, space) => {
571
+ if ("rawJSON" in JSON) {
572
+ return originalStringify(
573
+ value,
574
+ (key, value2) => {
575
+ if (typeof value2 === "bigint") return JSON.rawJSON(value2.toString());
576
+ if (typeof replacer === "function") return replacer(key, value2);
577
+ if (Array.isArray(replacer) && replacer.includes(key)) return value2;
578
+ return value2;
579
+ },
580
+ space
581
+ );
582
+ }
583
+ if (!value) return originalStringify(value, replacer, space);
584
+ const convertedToCustomJSON = originalStringify(
585
+ value,
586
+ (key, value2) => {
587
+ const isNoise = typeof value2 === "string" && noiseValue.test(value2);
588
+ if (isNoise) return value2.toString() + "n";
589
+ if (typeof value2 === "bigint") return value2.toString() + "n";
590
+ if (typeof replacer === "function") return replacer(key, value2);
591
+ if (Array.isArray(replacer) && replacer.includes(key)) return value2;
592
+ return value2;
593
+ },
594
+ space
595
+ );
596
+ const processedJSON = convertedToCustomJSON.replace(
597
+ bigIntsStringify,
598
+ "$1$2$3"
599
+ );
600
+ const denoisedJSON = processedJSON.replace(noiseStringify, "$1$2$3");
601
+ return denoisedJSON;
602
+ };
603
+ var featureCache = /* @__PURE__ */ new Map();
604
+ var isContextSourceSupported = () => {
605
+ const parseFingerprint = JSON.parse.toString();
606
+ if (featureCache.has(parseFingerprint)) {
607
+ return featureCache.get(parseFingerprint);
608
+ }
609
+ try {
610
+ const result = JSON.parse(
611
+ "1",
612
+ (_, __, context) => !!context?.source && context.source === "1"
613
+ );
614
+ featureCache.set(parseFingerprint, result);
615
+ return result;
616
+ } catch {
617
+ featureCache.set(parseFingerprint, false);
618
+ return false;
619
+ }
620
+ };
621
+ var convertMarkedBigIntsReviver = (key, value, context, userReviver) => {
622
+ const isCustomFormatBigInt = typeof value === "string" && customFormat.test(value);
623
+ if (isCustomFormatBigInt) return BigInt(value.slice(0, -1));
624
+ const isNoiseValue = typeof value === "string" && noiseValue.test(value);
625
+ if (isNoiseValue) return value.slice(0, -1);
626
+ if (typeof userReviver !== "function") return value;
627
+ return userReviver(key, value, context);
628
+ };
629
+ var JSONParseV2 = (text, reviver) => {
630
+ return JSON.parse(text, (key, value, context) => {
631
+ const isBigNumber = typeof value === "number" && (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER);
632
+ const isInt = context && intRegex.test(context.source);
633
+ const isBigInt = isBigNumber && isInt;
634
+ if (isBigInt) return BigInt(context.source);
635
+ if (typeof reviver !== "function") return value;
636
+ return reviver(key, value, context);
637
+ });
638
+ };
639
+ var MAX_INT = Number.MAX_SAFE_INTEGER.toString();
640
+ var MAX_DIGITS = MAX_INT.length;
641
+ var stringsOrLargeNumbers = /"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g;
642
+ var noiseValueWithQuotes = /^"-?\d+n+"$/;
643
+ var JSONParse = (text, reviver) => {
644
+ if (!text) return originalParse(text, reviver);
645
+ if (isContextSourceSupported()) return JSONParseV2(text, reviver);
646
+ const serializedData = text.replace(
647
+ stringsOrLargeNumbers,
648
+ (text2, digits, fractional, exponential) => {
649
+ const isString = text2[0] === '"';
650
+ const isNoise = isString && noiseValueWithQuotes.test(text2);
651
+ if (isNoise) return text2.substring(0, text2.length - 1) + 'n"';
652
+ const isFractionalOrExponential = fractional || exponential;
653
+ const isLessThanMaxSafeInt = digits && (digits.length < MAX_DIGITS || digits.length === MAX_DIGITS && digits <= MAX_INT);
654
+ if (isString || isFractionalOrExponential || isLessThanMaxSafeInt)
655
+ return text2;
656
+ return '"' + text2 + 'n"';
657
+ }
658
+ );
659
+ return originalParse(
660
+ serializedData,
661
+ (key, value, context) => convertMarkedBigIntsReviver(key, value, context, reviver)
662
+ );
663
+ };
664
+
665
+ // node_modules/@octokit/request-error/dist-src/index.js
666
+ var RequestError = class extends Error {
667
+ name;
668
+ /**
669
+ * http status code
670
+ */
671
+ status;
672
+ /**
673
+ * Request options that lead to the error.
674
+ */
675
+ request;
676
+ /**
677
+ * Response object if a response was received
678
+ */
679
+ response;
680
+ constructor(message, statusCode, options) {
681
+ super(message, { cause: options.cause });
682
+ this.name = "HttpError";
683
+ this.status = Number.parseInt(statusCode);
684
+ if (Number.isNaN(this.status)) {
685
+ this.status = 0;
686
+ }
687
+ if ("response" in options) {
688
+ this.response = options.response;
689
+ }
690
+ const requestCopy = Object.assign({}, options.request);
691
+ if (options.request.headers.authorization) {
692
+ requestCopy.headers = Object.assign({}, options.request.headers, {
693
+ authorization: options.request.headers.authorization.replace(
694
+ /(?<! ) .*$/,
695
+ " [REDACTED]"
696
+ )
697
+ });
698
+ }
699
+ requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
700
+ this.request = requestCopy;
701
+ }
702
+ };
703
+
704
+ // node_modules/@octokit/request/dist-bundle/index.js
705
+ var VERSION2 = "10.0.8";
706
+ var defaults_default = {
707
+ headers: {
708
+ "user-agent": `octokit-request.js/${VERSION2} ${getUserAgent()}`
709
+ }
710
+ };
711
+ function isPlainObject2(value) {
712
+ if (typeof value !== "object" || value === null) return false;
713
+ if (Object.prototype.toString.call(value) !== "[object Object]") return false;
714
+ const proto = Object.getPrototypeOf(value);
715
+ if (proto === null) return true;
716
+ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
717
+ return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
718
+ }
719
+ var noop = () => "";
720
+ async function fetchWrapper(requestOptions) {
721
+ const fetch = requestOptions.request?.fetch || globalThis.fetch;
722
+ if (!fetch) {
723
+ throw new Error(
724
+ "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing"
725
+ );
726
+ }
727
+ const log = requestOptions.request?.log || console;
728
+ const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false;
729
+ const body = isPlainObject2(requestOptions.body) || Array.isArray(requestOptions.body) ? JSONStringify(requestOptions.body) : requestOptions.body;
730
+ const requestHeaders = Object.fromEntries(
731
+ Object.entries(requestOptions.headers).map(([name, value]) => [
732
+ name,
733
+ String(value)
734
+ ])
735
+ );
736
+ let fetchResponse;
737
+ try {
738
+ fetchResponse = await fetch(requestOptions.url, {
739
+ method: requestOptions.method,
740
+ body,
741
+ redirect: requestOptions.request?.redirect,
742
+ headers: requestHeaders,
743
+ signal: requestOptions.request?.signal,
744
+ // duplex must be set if request.body is ReadableStream or Async Iterables.
745
+ // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.
746
+ ...requestOptions.body && { duplex: "half" }
747
+ });
748
+ } catch (error) {
749
+ let message = "Unknown Error";
750
+ if (error instanceof Error) {
751
+ if (error.name === "AbortError") {
752
+ error.status = 500;
753
+ throw error;
754
+ }
755
+ message = error.message;
756
+ if (error.name === "TypeError" && "cause" in error) {
757
+ if (error.cause instanceof Error) {
758
+ message = error.cause.message;
759
+ } else if (typeof error.cause === "string") {
760
+ message = error.cause;
761
+ }
762
+ }
763
+ }
764
+ const requestError = new RequestError(message, 500, {
765
+ request: requestOptions
766
+ });
767
+ requestError.cause = error;
768
+ throw requestError;
769
+ }
770
+ const status = fetchResponse.status;
771
+ const url = fetchResponse.url;
772
+ const responseHeaders = {};
773
+ for (const [key, value] of fetchResponse.headers) {
774
+ responseHeaders[key] = value;
775
+ }
776
+ const octokitResponse = {
777
+ url,
778
+ status,
779
+ headers: responseHeaders,
780
+ data: ""
781
+ };
782
+ if ("deprecation" in responseHeaders) {
783
+ const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/);
784
+ const deprecationLink = matches && matches.pop();
785
+ log.warn(
786
+ `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`
787
+ );
788
+ }
789
+ if (status === 204 || status === 205) {
790
+ return octokitResponse;
791
+ }
792
+ if (requestOptions.method === "HEAD") {
793
+ if (status < 400) {
794
+ return octokitResponse;
795
+ }
796
+ throw new RequestError(fetchResponse.statusText, status, {
797
+ response: octokitResponse,
798
+ request: requestOptions
799
+ });
800
+ }
801
+ if (status === 304) {
802
+ octokitResponse.data = await getResponseData(fetchResponse);
803
+ throw new RequestError("Not modified", status, {
804
+ response: octokitResponse,
805
+ request: requestOptions
806
+ });
807
+ }
808
+ if (status >= 400) {
809
+ octokitResponse.data = await getResponseData(fetchResponse);
810
+ throw new RequestError(toErrorMessage(octokitResponse.data), status, {
811
+ response: octokitResponse,
812
+ request: requestOptions
813
+ });
814
+ }
815
+ octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body;
816
+ return octokitResponse;
817
+ }
818
+ async function getResponseData(response) {
819
+ const contentType = response.headers.get("content-type");
820
+ if (!contentType) {
821
+ return response.text().catch(noop);
822
+ }
823
+ const mimetype = (0, import_fast_content_type_parse.safeParse)(contentType);
824
+ if (isJSONResponse(mimetype)) {
825
+ let text = "";
826
+ try {
827
+ text = await response.text();
828
+ return JSONParse(text);
829
+ } catch (err) {
830
+ return text;
831
+ }
832
+ } else if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") {
833
+ return response.text().catch(noop);
834
+ } else {
835
+ return response.arrayBuffer().catch(
836
+ /* v8 ignore next -- @preserve */
837
+ () => new ArrayBuffer(0)
838
+ );
839
+ }
840
+ }
841
+ function isJSONResponse(mimetype) {
842
+ return mimetype.type === "application/json" || mimetype.type === "application/scim+json";
843
+ }
844
+ function toErrorMessage(data) {
845
+ if (typeof data === "string") {
846
+ return data;
847
+ }
848
+ if (data instanceof ArrayBuffer) {
849
+ return "Unknown error";
850
+ }
851
+ if ("message" in data) {
852
+ const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : "";
853
+ return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`;
854
+ }
855
+ return `Unknown error: ${JSON.stringify(data)}`;
856
+ }
857
+ function withDefaults2(oldEndpoint, newDefaults) {
858
+ const endpoint2 = oldEndpoint.defaults(newDefaults);
859
+ const newApi = function(route, parameters) {
860
+ const endpointOptions = endpoint2.merge(route, parameters);
861
+ if (!endpointOptions.request || !endpointOptions.request.hook) {
862
+ return fetchWrapper(endpoint2.parse(endpointOptions));
863
+ }
864
+ const request2 = (route2, parameters2) => {
865
+ return fetchWrapper(
866
+ endpoint2.parse(endpoint2.merge(route2, parameters2))
867
+ );
868
+ };
869
+ Object.assign(request2, {
870
+ endpoint: endpoint2,
871
+ defaults: withDefaults2.bind(null, endpoint2)
872
+ });
873
+ return endpointOptions.request.hook(request2, endpointOptions);
874
+ };
875
+ return Object.assign(newApi, {
876
+ endpoint: endpoint2,
877
+ defaults: withDefaults2.bind(null, endpoint2)
878
+ });
879
+ }
880
+ var request = withDefaults2(endpoint, defaults_default);
881
+
882
+ // node_modules/@octokit/graphql/dist-bundle/index.js
883
+ var VERSION3 = "0.0.0-development";
884
+ function _buildMessageForResponseErrors(data) {
885
+ return `Request failed due to following response errors:
886
+ ` + data.errors.map((e) => ` - ${e.message}`).join("\n");
887
+ }
888
+ var GraphqlResponseError = class extends Error {
889
+ constructor(request2, headers, response) {
890
+ super(_buildMessageForResponseErrors(response));
891
+ this.request = request2;
892
+ this.headers = headers;
893
+ this.response = response;
894
+ this.errors = response.errors;
895
+ this.data = response.data;
896
+ if (Error.captureStackTrace) {
897
+ Error.captureStackTrace(this, this.constructor);
898
+ }
899
+ }
900
+ name = "GraphqlResponseError";
901
+ errors;
902
+ data;
903
+ };
904
+ var NON_VARIABLE_OPTIONS = [
905
+ "method",
906
+ "baseUrl",
907
+ "url",
908
+ "headers",
909
+ "request",
910
+ "query",
911
+ "mediaType",
912
+ "operationName"
913
+ ];
914
+ var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
915
+ var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
916
+ function graphql(request2, query, options) {
917
+ if (options) {
918
+ if (typeof query === "string" && "query" in options) {
919
+ return Promise.reject(
920
+ new Error(`[@octokit/graphql] "query" cannot be used as variable name`)
921
+ );
922
+ }
923
+ for (const key in options) {
924
+ if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;
925
+ return Promise.reject(
926
+ new Error(
927
+ `[@octokit/graphql] "${key}" cannot be used as variable name`
928
+ )
929
+ );
930
+ }
931
+ }
932
+ const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query;
933
+ const requestOptions = Object.keys(
934
+ parsedOptions
935
+ ).reduce((result, key) => {
936
+ if (NON_VARIABLE_OPTIONS.includes(key)) {
937
+ result[key] = parsedOptions[key];
938
+ return result;
939
+ }
940
+ if (!result.variables) {
941
+ result.variables = {};
942
+ }
943
+ result.variables[key] = parsedOptions[key];
944
+ return result;
945
+ }, {});
946
+ const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;
947
+ if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
948
+ requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
949
+ }
950
+ return request2(requestOptions).then((response) => {
951
+ if (response.data.errors) {
952
+ const headers = {};
953
+ for (const key of Object.keys(response.headers)) {
954
+ headers[key] = response.headers[key];
955
+ }
956
+ throw new GraphqlResponseError(
957
+ requestOptions,
958
+ headers,
959
+ response.data
960
+ );
961
+ }
962
+ return response.data.data;
963
+ });
964
+ }
965
+ function withDefaults3(request2, newDefaults) {
966
+ const newRequest = request2.defaults(newDefaults);
967
+ const newApi = (query, options) => {
968
+ return graphql(newRequest, query, options);
969
+ };
970
+ return Object.assign(newApi, {
971
+ defaults: withDefaults3.bind(null, newRequest),
972
+ endpoint: newRequest.endpoint
973
+ });
974
+ }
975
+ var graphql2 = withDefaults3(request, {
976
+ headers: {
977
+ "user-agent": `octokit-graphql.js/${VERSION3} ${getUserAgent()}`
978
+ },
979
+ method: "POST",
980
+ url: "/graphql"
981
+ });
982
+ function withCustomRequest(customRequest) {
983
+ return withDefaults3(customRequest, {
984
+ method: "POST",
985
+ url: "/graphql"
986
+ });
987
+ }
988
+
989
+ // node_modules/@octokit/auth-token/dist-bundle/index.js
990
+ var b64url = "(?:[a-zA-Z0-9_-]+)";
991
+ var sep = "\\.";
992
+ var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`);
993
+ var isJWT = jwtRE.test.bind(jwtRE);
994
+ async function auth(token) {
995
+ const isApp = isJWT(token);
996
+ const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_");
997
+ const isUserToServer = token.startsWith("ghu_");
998
+ const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth";
999
+ return {
1000
+ type: "token",
1001
+ token,
1002
+ tokenType
1003
+ };
1004
+ }
1005
+ function withAuthorizationPrefix(token) {
1006
+ if (token.split(/\./).length === 3) {
1007
+ return `bearer ${token}`;
1008
+ }
1009
+ return `token ${token}`;
1010
+ }
1011
+ async function hook(token, request2, route, parameters) {
1012
+ const endpoint2 = request2.endpoint.merge(
1013
+ route,
1014
+ parameters
1015
+ );
1016
+ endpoint2.headers.authorization = withAuthorizationPrefix(token);
1017
+ return request2(endpoint2);
1018
+ }
1019
+ var createTokenAuth = function createTokenAuth2(token) {
1020
+ if (!token) {
1021
+ throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");
1022
+ }
1023
+ if (typeof token !== "string") {
1024
+ throw new Error(
1025
+ "[@octokit/auth-token] Token passed to createTokenAuth is not a string"
1026
+ );
1027
+ }
1028
+ token = token.replace(/^(token|bearer) +/i, "");
1029
+ return Object.assign(auth.bind(null, token), {
1030
+ hook: hook.bind(null, token)
1031
+ });
1032
+ };
1033
+
1034
+ // node_modules/@octokit/core/dist-src/version.js
1035
+ var VERSION4 = "7.0.6";
1036
+
1037
+ // node_modules/@octokit/core/dist-src/index.js
1038
+ var noop2 = () => {
1039
+ };
1040
+ var consoleWarn = console.warn.bind(console);
1041
+ var consoleError = console.error.bind(console);
1042
+ function createLogger(logger = {}) {
1043
+ if (typeof logger.debug !== "function") {
1044
+ logger.debug = noop2;
1045
+ }
1046
+ if (typeof logger.info !== "function") {
1047
+ logger.info = noop2;
1048
+ }
1049
+ if (typeof logger.warn !== "function") {
1050
+ logger.warn = consoleWarn;
1051
+ }
1052
+ if (typeof logger.error !== "function") {
1053
+ logger.error = consoleError;
1054
+ }
1055
+ return logger;
1056
+ }
1057
+ var userAgentTrail = `octokit-core.js/${VERSION4} ${getUserAgent()}`;
1058
+ var Octokit = class {
1059
+ static VERSION = VERSION4;
1060
+ static defaults(defaults) {
1061
+ const OctokitWithDefaults = class extends this {
1062
+ constructor(...args) {
1063
+ const options = args[0] || {};
1064
+ if (typeof defaults === "function") {
1065
+ super(defaults(options));
1066
+ return;
1067
+ }
1068
+ super(
1069
+ Object.assign(
1070
+ {},
1071
+ defaults,
1072
+ options,
1073
+ options.userAgent && defaults.userAgent ? {
1074
+ userAgent: `${options.userAgent} ${defaults.userAgent}`
1075
+ } : null
1076
+ )
1077
+ );
1078
+ }
1079
+ };
1080
+ return OctokitWithDefaults;
1081
+ }
1082
+ static plugins = [];
1083
+ /**
1084
+ * Attach a plugin (or many) to your Octokit instance.
1085
+ *
1086
+ * @example
1087
+ * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)
1088
+ */
1089
+ static plugin(...newPlugins) {
1090
+ const currentPlugins = this.plugins;
1091
+ const NewOctokit = class extends this {
1092
+ static plugins = currentPlugins.concat(
1093
+ newPlugins.filter((plugin) => !currentPlugins.includes(plugin))
1094
+ );
1095
+ };
1096
+ return NewOctokit;
1097
+ }
1098
+ constructor(options = {}) {
1099
+ const hook2 = new before_after_hook_default.Collection();
1100
+ const requestDefaults = {
1101
+ baseUrl: request.endpoint.DEFAULTS.baseUrl,
1102
+ headers: {},
1103
+ request: Object.assign({}, options.request, {
1104
+ // @ts-ignore internal usage only, no need to type
1105
+ hook: hook2.bind(null, "request")
1106
+ }),
1107
+ mediaType: {
1108
+ previews: [],
1109
+ format: ""
1110
+ }
1111
+ };
1112
+ requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;
1113
+ if (options.baseUrl) {
1114
+ requestDefaults.baseUrl = options.baseUrl;
1115
+ }
1116
+ if (options.previews) {
1117
+ requestDefaults.mediaType.previews = options.previews;
1118
+ }
1119
+ if (options.timeZone) {
1120
+ requestDefaults.headers["time-zone"] = options.timeZone;
1121
+ }
1122
+ this.request = request.defaults(requestDefaults);
1123
+ this.graphql = withCustomRequest(this.request).defaults(requestDefaults);
1124
+ this.log = createLogger(options.log);
1125
+ this.hook = hook2;
1126
+ if (!options.authStrategy) {
1127
+ if (!options.auth) {
1128
+ this.auth = async () => ({
1129
+ type: "unauthenticated"
1130
+ });
1131
+ } else {
1132
+ const auth2 = createTokenAuth(options.auth);
1133
+ hook2.wrap("request", auth2.hook);
1134
+ this.auth = auth2;
1135
+ }
1136
+ } else {
1137
+ const { authStrategy, ...otherOptions } = options;
1138
+ const auth2 = authStrategy(
1139
+ Object.assign(
1140
+ {
1141
+ request: this.request,
1142
+ log: this.log,
1143
+ // we pass the current octokit instance as well as its constructor options
1144
+ // to allow for authentication strategies that return a new octokit instance
1145
+ // that shares the same internal state as the current one. The original
1146
+ // requirement for this was the "event-octokit" authentication strategy
1147
+ // of https://github.com/probot/octokit-auth-probot.
1148
+ octokit: this,
1149
+ octokitOptions: otherOptions
1150
+ },
1151
+ options.auth
1152
+ )
1153
+ );
1154
+ hook2.wrap("request", auth2.hook);
1155
+ this.auth = auth2;
1156
+ }
1157
+ const classConstructor = this.constructor;
1158
+ for (let i = 0; i < classConstructor.plugins.length; ++i) {
1159
+ Object.assign(this, classConstructor.plugins[i](this, options));
1160
+ }
1161
+ }
1162
+ // assigned during constructor
1163
+ request;
1164
+ graphql;
1165
+ log;
1166
+ hook;
1167
+ // TODO: type `octokit.auth` based on passed options.authStrategy
1168
+ auth;
1169
+ };
1170
+
1171
+ // node_modules/@octokit/plugin-request-log/dist-src/version.js
1172
+ var VERSION5 = "6.0.0";
1173
+
1174
+ // node_modules/@octokit/plugin-request-log/dist-src/index.js
1175
+ function requestLog(octokit) {
1176
+ octokit.hook.wrap("request", (request2, options) => {
1177
+ octokit.log.debug("request", options);
1178
+ const start = Date.now();
1179
+ const requestOptions = octokit.request.endpoint.parse(options);
1180
+ const path = requestOptions.url.replace(options.baseUrl, "");
1181
+ return request2(options).then((response) => {
1182
+ const requestId = response.headers["x-github-request-id"];
1183
+ octokit.log.info(
1184
+ `${requestOptions.method} ${path} - ${response.status} with id ${requestId} in ${Date.now() - start}ms`
1185
+ );
1186
+ return response;
1187
+ }).catch((error) => {
1188
+ const requestId = error.response?.headers["x-github-request-id"] || "UNKNOWN";
1189
+ octokit.log.error(
1190
+ `${requestOptions.method} ${path} - ${error.status} with id ${requestId} in ${Date.now() - start}ms`
1191
+ );
1192
+ throw error;
1193
+ });
1194
+ });
1195
+ }
1196
+ requestLog.VERSION = VERSION5;
1197
+
1198
+ // node_modules/@octokit/plugin-paginate-rest/dist-bundle/index.js
1199
+ var VERSION6 = "0.0.0-development";
1200
+ function normalizePaginatedListResponse(response) {
1201
+ if (!response.data) {
1202
+ return {
1203
+ ...response,
1204
+ data: []
1205
+ };
1206
+ }
1207
+ const responseNeedsNormalization = ("total_count" in response.data || "total_commits" in response.data) && !("url" in response.data);
1208
+ if (!responseNeedsNormalization) return response;
1209
+ const incompleteResults = response.data.incomplete_results;
1210
+ const repositorySelection = response.data.repository_selection;
1211
+ const totalCount = response.data.total_count;
1212
+ const totalCommits = response.data.total_commits;
1213
+ delete response.data.incomplete_results;
1214
+ delete response.data.repository_selection;
1215
+ delete response.data.total_count;
1216
+ delete response.data.total_commits;
1217
+ const namespaceKey = Object.keys(response.data)[0];
1218
+ const data = response.data[namespaceKey];
1219
+ response.data = data;
1220
+ if (typeof incompleteResults !== "undefined") {
1221
+ response.data.incomplete_results = incompleteResults;
1222
+ }
1223
+ if (typeof repositorySelection !== "undefined") {
1224
+ response.data.repository_selection = repositorySelection;
1225
+ }
1226
+ response.data.total_count = totalCount;
1227
+ response.data.total_commits = totalCommits;
1228
+ return response;
1229
+ }
1230
+ function iterator(octokit, route, parameters) {
1231
+ const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);
1232
+ const requestMethod = typeof route === "function" ? route : octokit.request;
1233
+ const method = options.method;
1234
+ const headers = options.headers;
1235
+ let url = options.url;
1236
+ return {
1237
+ [Symbol.asyncIterator]: () => ({
1238
+ async next() {
1239
+ if (!url) return { done: true };
1240
+ try {
1241
+ const response = await requestMethod({ method, url, headers });
1242
+ const normalizedResponse = normalizePaginatedListResponse(response);
1243
+ url = ((normalizedResponse.headers.link || "").match(
1244
+ /<([^<>]+)>;\s*rel="next"/
1245
+ ) || [])[1];
1246
+ if (!url && "total_commits" in normalizedResponse.data) {
1247
+ const parsedUrl = new URL(normalizedResponse.url);
1248
+ const params = parsedUrl.searchParams;
1249
+ const page = parseInt(params.get("page") || "1", 10);
1250
+ const per_page = parseInt(params.get("per_page") || "250", 10);
1251
+ if (page * per_page < normalizedResponse.data.total_commits) {
1252
+ params.set("page", String(page + 1));
1253
+ url = parsedUrl.toString();
1254
+ }
1255
+ }
1256
+ return { value: normalizedResponse };
1257
+ } catch (error) {
1258
+ if (error.status !== 409) throw error;
1259
+ url = "";
1260
+ return {
1261
+ value: {
1262
+ status: 200,
1263
+ headers: {},
1264
+ data: []
1265
+ }
1266
+ };
1267
+ }
1268
+ }
1269
+ })
1270
+ };
1271
+ }
1272
+ function paginate(octokit, route, parameters, mapFn) {
1273
+ if (typeof parameters === "function") {
1274
+ mapFn = parameters;
1275
+ parameters = void 0;
1276
+ }
1277
+ return gather(
1278
+ octokit,
1279
+ [],
1280
+ iterator(octokit, route, parameters)[Symbol.asyncIterator](),
1281
+ mapFn
1282
+ );
1283
+ }
1284
+ function gather(octokit, results, iterator2, mapFn) {
1285
+ return iterator2.next().then((result) => {
1286
+ if (result.done) {
1287
+ return results;
1288
+ }
1289
+ let earlyExit = false;
1290
+ function done() {
1291
+ earlyExit = true;
1292
+ }
1293
+ results = results.concat(
1294
+ mapFn ? mapFn(result.value, done) : result.value.data
1295
+ );
1296
+ if (earlyExit) {
1297
+ return results;
1298
+ }
1299
+ return gather(octokit, results, iterator2, mapFn);
1300
+ });
1301
+ }
1302
+ var composePaginateRest = Object.assign(paginate, {
1303
+ iterator
1304
+ });
1305
+ function paginateRest(octokit) {
1306
+ return {
1307
+ paginate: Object.assign(paginate.bind(null, octokit), {
1308
+ iterator: iterator.bind(null, octokit)
1309
+ })
1310
+ };
1311
+ }
1312
+ paginateRest.VERSION = VERSION6;
1313
+
1314
+ // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js
1315
+ var VERSION7 = "17.0.0";
1316
+
1317
+ // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js
1318
+ var Endpoints = {
1319
+ actions: {
1320
+ addCustomLabelsToSelfHostedRunnerForOrg: [
1321
+ "POST /orgs/{org}/actions/runners/{runner_id}/labels"
1322
+ ],
1323
+ addCustomLabelsToSelfHostedRunnerForRepo: [
1324
+ "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
1325
+ ],
1326
+ addRepoAccessToSelfHostedRunnerGroupInOrg: [
1327
+ "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"
1328
+ ],
1329
+ addSelectedRepoToOrgSecret: [
1330
+ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
1331
+ ],
1332
+ addSelectedRepoToOrgVariable: [
1333
+ "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
1334
+ ],
1335
+ approveWorkflowRun: [
1336
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"
1337
+ ],
1338
+ cancelWorkflowRun: [
1339
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"
1340
+ ],
1341
+ createEnvironmentVariable: [
1342
+ "POST /repos/{owner}/{repo}/environments/{environment_name}/variables"
1343
+ ],
1344
+ createHostedRunnerForOrg: ["POST /orgs/{org}/actions/hosted-runners"],
1345
+ createOrUpdateEnvironmentSecret: [
1346
+ "PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
1347
+ ],
1348
+ createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"],
1349
+ createOrUpdateRepoSecret: [
1350
+ "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"
1351
+ ],
1352
+ createOrgVariable: ["POST /orgs/{org}/actions/variables"],
1353
+ createRegistrationTokenForOrg: [
1354
+ "POST /orgs/{org}/actions/runners/registration-token"
1355
+ ],
1356
+ createRegistrationTokenForRepo: [
1357
+ "POST /repos/{owner}/{repo}/actions/runners/registration-token"
1358
+ ],
1359
+ createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"],
1360
+ createRemoveTokenForRepo: [
1361
+ "POST /repos/{owner}/{repo}/actions/runners/remove-token"
1362
+ ],
1363
+ createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"],
1364
+ createWorkflowDispatch: [
1365
+ "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"
1366
+ ],
1367
+ deleteActionsCacheById: [
1368
+ "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"
1369
+ ],
1370
+ deleteActionsCacheByKey: [
1371
+ "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"
1372
+ ],
1373
+ deleteArtifact: [
1374
+ "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"
1375
+ ],
1376
+ deleteCustomImageFromOrg: [
1377
+ "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
1378
+ ],
1379
+ deleteCustomImageVersionFromOrg: [
1380
+ "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
1381
+ ],
1382
+ deleteEnvironmentSecret: [
1383
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
1384
+ ],
1385
+ deleteEnvironmentVariable: [
1386
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
1387
+ ],
1388
+ deleteHostedRunnerForOrg: [
1389
+ "DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
1390
+ ],
1391
+ deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"],
1392
+ deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"],
1393
+ deleteRepoSecret: [
1394
+ "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"
1395
+ ],
1396
+ deleteRepoVariable: [
1397
+ "DELETE /repos/{owner}/{repo}/actions/variables/{name}"
1398
+ ],
1399
+ deleteSelfHostedRunnerFromOrg: [
1400
+ "DELETE /orgs/{org}/actions/runners/{runner_id}"
1401
+ ],
1402
+ deleteSelfHostedRunnerFromRepo: [
1403
+ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"
1404
+ ],
1405
+ deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],
1406
+ deleteWorkflowRunLogs: [
1407
+ "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
1408
+ ],
1409
+ disableSelectedRepositoryGithubActionsOrganization: [
1410
+ "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"
1411
+ ],
1412
+ disableWorkflow: [
1413
+ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"
1414
+ ],
1415
+ downloadArtifact: [
1416
+ "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"
1417
+ ],
1418
+ downloadJobLogsForWorkflowRun: [
1419
+ "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"
1420
+ ],
1421
+ downloadWorkflowRunAttemptLogs: [
1422
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"
1423
+ ],
1424
+ downloadWorkflowRunLogs: [
1425
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
1426
+ ],
1427
+ enableSelectedRepositoryGithubActionsOrganization: [
1428
+ "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"
1429
+ ],
1430
+ enableWorkflow: [
1431
+ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"
1432
+ ],
1433
+ forceCancelWorkflowRun: [
1434
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"
1435
+ ],
1436
+ generateRunnerJitconfigForOrg: [
1437
+ "POST /orgs/{org}/actions/runners/generate-jitconfig"
1438
+ ],
1439
+ generateRunnerJitconfigForRepo: [
1440
+ "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"
1441
+ ],
1442
+ getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"],
1443
+ getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"],
1444
+ getActionsCacheUsageByRepoForOrg: [
1445
+ "GET /orgs/{org}/actions/cache/usage-by-repository"
1446
+ ],
1447
+ getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"],
1448
+ getAllowedActionsOrganization: [
1449
+ "GET /orgs/{org}/actions/permissions/selected-actions"
1450
+ ],
1451
+ getAllowedActionsRepository: [
1452
+ "GET /repos/{owner}/{repo}/actions/permissions/selected-actions"
1453
+ ],
1454
+ getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],
1455
+ getCustomImageForOrg: [
1456
+ "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
1457
+ ],
1458
+ getCustomImageVersionForOrg: [
1459
+ "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
1460
+ ],
1461
+ getCustomOidcSubClaimForRepo: [
1462
+ "GET /repos/{owner}/{repo}/actions/oidc/customization/sub"
1463
+ ],
1464
+ getEnvironmentPublicKey: [
1465
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"
1466
+ ],
1467
+ getEnvironmentSecret: [
1468
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
1469
+ ],
1470
+ getEnvironmentVariable: [
1471
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
1472
+ ],
1473
+ getGithubActionsDefaultWorkflowPermissionsOrganization: [
1474
+ "GET /orgs/{org}/actions/permissions/workflow"
1475
+ ],
1476
+ getGithubActionsDefaultWorkflowPermissionsRepository: [
1477
+ "GET /repos/{owner}/{repo}/actions/permissions/workflow"
1478
+ ],
1479
+ getGithubActionsPermissionsOrganization: [
1480
+ "GET /orgs/{org}/actions/permissions"
1481
+ ],
1482
+ getGithubActionsPermissionsRepository: [
1483
+ "GET /repos/{owner}/{repo}/actions/permissions"
1484
+ ],
1485
+ getHostedRunnerForOrg: [
1486
+ "GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
1487
+ ],
1488
+ getHostedRunnersGithubOwnedImagesForOrg: [
1489
+ "GET /orgs/{org}/actions/hosted-runners/images/github-owned"
1490
+ ],
1491
+ getHostedRunnersLimitsForOrg: [
1492
+ "GET /orgs/{org}/actions/hosted-runners/limits"
1493
+ ],
1494
+ getHostedRunnersMachineSpecsForOrg: [
1495
+ "GET /orgs/{org}/actions/hosted-runners/machine-sizes"
1496
+ ],
1497
+ getHostedRunnersPartnerImagesForOrg: [
1498
+ "GET /orgs/{org}/actions/hosted-runners/images/partner"
1499
+ ],
1500
+ getHostedRunnersPlatformsForOrg: [
1501
+ "GET /orgs/{org}/actions/hosted-runners/platforms"
1502
+ ],
1503
+ getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],
1504
+ getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"],
1505
+ getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"],
1506
+ getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"],
1507
+ getPendingDeploymentsForRun: [
1508
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
1509
+ ],
1510
+ getRepoPermissions: [
1511
+ "GET /repos/{owner}/{repo}/actions/permissions",
1512
+ {},
1513
+ { renamed: ["actions", "getGithubActionsPermissionsRepository"] }
1514
+ ],
1515
+ getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"],
1516
+ getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],
1517
+ getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"],
1518
+ getReviewsForRun: [
1519
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"
1520
+ ],
1521
+ getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"],
1522
+ getSelfHostedRunnerForRepo: [
1523
+ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}"
1524
+ ],
1525
+ getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],
1526
+ getWorkflowAccessToRepository: [
1527
+ "GET /repos/{owner}/{repo}/actions/permissions/access"
1528
+ ],
1529
+ getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],
1530
+ getWorkflowRunAttempt: [
1531
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"
1532
+ ],
1533
+ getWorkflowRunUsage: [
1534
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"
1535
+ ],
1536
+ getWorkflowUsage: [
1537
+ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"
1538
+ ],
1539
+ listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"],
1540
+ listCustomImageVersionsForOrg: [
1541
+ "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"
1542
+ ],
1543
+ listCustomImagesForOrg: [
1544
+ "GET /orgs/{org}/actions/hosted-runners/images/custom"
1545
+ ],
1546
+ listEnvironmentSecrets: [
1547
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"
1548
+ ],
1549
+ listEnvironmentVariables: [
1550
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables"
1551
+ ],
1552
+ listGithubHostedRunnersInGroupForOrg: [
1553
+ "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"
1554
+ ],
1555
+ listHostedRunnersForOrg: ["GET /orgs/{org}/actions/hosted-runners"],
1556
+ listJobsForWorkflowRun: [
1557
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"
1558
+ ],
1559
+ listJobsForWorkflowRunAttempt: [
1560
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"
1561
+ ],
1562
+ listLabelsForSelfHostedRunnerForOrg: [
1563
+ "GET /orgs/{org}/actions/runners/{runner_id}/labels"
1564
+ ],
1565
+ listLabelsForSelfHostedRunnerForRepo: [
1566
+ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
1567
+ ],
1568
+ listOrgSecrets: ["GET /orgs/{org}/actions/secrets"],
1569
+ listOrgVariables: ["GET /orgs/{org}/actions/variables"],
1570
+ listRepoOrganizationSecrets: [
1571
+ "GET /repos/{owner}/{repo}/actions/organization-secrets"
1572
+ ],
1573
+ listRepoOrganizationVariables: [
1574
+ "GET /repos/{owner}/{repo}/actions/organization-variables"
1575
+ ],
1576
+ listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"],
1577
+ listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"],
1578
+ listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"],
1579
+ listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"],
1580
+ listRunnerApplicationsForRepo: [
1581
+ "GET /repos/{owner}/{repo}/actions/runners/downloads"
1582
+ ],
1583
+ listSelectedReposForOrgSecret: [
1584
+ "GET /orgs/{org}/actions/secrets/{secret_name}/repositories"
1585
+ ],
1586
+ listSelectedReposForOrgVariable: [
1587
+ "GET /orgs/{org}/actions/variables/{name}/repositories"
1588
+ ],
1589
+ listSelectedRepositoriesEnabledGithubActionsOrganization: [
1590
+ "GET /orgs/{org}/actions/permissions/repositories"
1591
+ ],
1592
+ listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"],
1593
+ listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"],
1594
+ listWorkflowRunArtifacts: [
1595
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"
1596
+ ],
1597
+ listWorkflowRuns: [
1598
+ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"
1599
+ ],
1600
+ listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"],
1601
+ reRunJobForWorkflowRun: [
1602
+ "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"
1603
+ ],
1604
+ reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],
1605
+ reRunWorkflowFailedJobs: [
1606
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"
1607
+ ],
1608
+ removeAllCustomLabelsFromSelfHostedRunnerForOrg: [
1609
+ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels"
1610
+ ],
1611
+ removeAllCustomLabelsFromSelfHostedRunnerForRepo: [
1612
+ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
1613
+ ],
1614
+ removeCustomLabelFromSelfHostedRunnerForOrg: [
1615
+ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"
1616
+ ],
1617
+ removeCustomLabelFromSelfHostedRunnerForRepo: [
1618
+ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"
1619
+ ],
1620
+ removeSelectedRepoFromOrgSecret: [
1621
+ "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
1622
+ ],
1623
+ removeSelectedRepoFromOrgVariable: [
1624
+ "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
1625
+ ],
1626
+ reviewCustomGatesForRun: [
1627
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"
1628
+ ],
1629
+ reviewPendingDeploymentsForRun: [
1630
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
1631
+ ],
1632
+ setAllowedActionsOrganization: [
1633
+ "PUT /orgs/{org}/actions/permissions/selected-actions"
1634
+ ],
1635
+ setAllowedActionsRepository: [
1636
+ "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"
1637
+ ],
1638
+ setCustomLabelsForSelfHostedRunnerForOrg: [
1639
+ "PUT /orgs/{org}/actions/runners/{runner_id}/labels"
1640
+ ],
1641
+ setCustomLabelsForSelfHostedRunnerForRepo: [
1642
+ "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
1643
+ ],
1644
+ setCustomOidcSubClaimForRepo: [
1645
+ "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"
1646
+ ],
1647
+ setGithubActionsDefaultWorkflowPermissionsOrganization: [
1648
+ "PUT /orgs/{org}/actions/permissions/workflow"
1649
+ ],
1650
+ setGithubActionsDefaultWorkflowPermissionsRepository: [
1651
+ "PUT /repos/{owner}/{repo}/actions/permissions/workflow"
1652
+ ],
1653
+ setGithubActionsPermissionsOrganization: [
1654
+ "PUT /orgs/{org}/actions/permissions"
1655
+ ],
1656
+ setGithubActionsPermissionsRepository: [
1657
+ "PUT /repos/{owner}/{repo}/actions/permissions"
1658
+ ],
1659
+ setSelectedReposForOrgSecret: [
1660
+ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"
1661
+ ],
1662
+ setSelectedReposForOrgVariable: [
1663
+ "PUT /orgs/{org}/actions/variables/{name}/repositories"
1664
+ ],
1665
+ setSelectedRepositoriesEnabledGithubActionsOrganization: [
1666
+ "PUT /orgs/{org}/actions/permissions/repositories"
1667
+ ],
1668
+ setWorkflowAccessToRepository: [
1669
+ "PUT /repos/{owner}/{repo}/actions/permissions/access"
1670
+ ],
1671
+ updateEnvironmentVariable: [
1672
+ "PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
1673
+ ],
1674
+ updateHostedRunnerForOrg: [
1675
+ "PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
1676
+ ],
1677
+ updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"],
1678
+ updateRepoVariable: [
1679
+ "PATCH /repos/{owner}/{repo}/actions/variables/{name}"
1680
+ ]
1681
+ },
1682
+ activity: {
1683
+ checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"],
1684
+ deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"],
1685
+ deleteThreadSubscription: [
1686
+ "DELETE /notifications/threads/{thread_id}/subscription"
1687
+ ],
1688
+ getFeeds: ["GET /feeds"],
1689
+ getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"],
1690
+ getThread: ["GET /notifications/threads/{thread_id}"],
1691
+ getThreadSubscriptionForAuthenticatedUser: [
1692
+ "GET /notifications/threads/{thread_id}/subscription"
1693
+ ],
1694
+ listEventsForAuthenticatedUser: ["GET /users/{username}/events"],
1695
+ listNotificationsForAuthenticatedUser: ["GET /notifications"],
1696
+ listOrgEventsForAuthenticatedUser: [
1697
+ "GET /users/{username}/events/orgs/{org}"
1698
+ ],
1699
+ listPublicEvents: ["GET /events"],
1700
+ listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"],
1701
+ listPublicEventsForUser: ["GET /users/{username}/events/public"],
1702
+ listPublicOrgEvents: ["GET /orgs/{org}/events"],
1703
+ listReceivedEventsForUser: ["GET /users/{username}/received_events"],
1704
+ listReceivedPublicEventsForUser: [
1705
+ "GET /users/{username}/received_events/public"
1706
+ ],
1707
+ listRepoEvents: ["GET /repos/{owner}/{repo}/events"],
1708
+ listRepoNotificationsForAuthenticatedUser: [
1709
+ "GET /repos/{owner}/{repo}/notifications"
1710
+ ],
1711
+ listReposStarredByAuthenticatedUser: ["GET /user/starred"],
1712
+ listReposStarredByUser: ["GET /users/{username}/starred"],
1713
+ listReposWatchedByUser: ["GET /users/{username}/subscriptions"],
1714
+ listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"],
1715
+ listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"],
1716
+ listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"],
1717
+ markNotificationsAsRead: ["PUT /notifications"],
1718
+ markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"],
1719
+ markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"],
1720
+ markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"],
1721
+ setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"],
1722
+ setThreadSubscription: [
1723
+ "PUT /notifications/threads/{thread_id}/subscription"
1724
+ ],
1725
+ starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"],
1726
+ unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"]
1727
+ },
1728
+ apps: {
1729
+ addRepoToInstallation: [
1730
+ "PUT /user/installations/{installation_id}/repositories/{repository_id}",
1731
+ {},
1732
+ { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] }
1733
+ ],
1734
+ addRepoToInstallationForAuthenticatedUser: [
1735
+ "PUT /user/installations/{installation_id}/repositories/{repository_id}"
1736
+ ],
1737
+ checkToken: ["POST /applications/{client_id}/token"],
1738
+ createFromManifest: ["POST /app-manifests/{code}/conversions"],
1739
+ createInstallationAccessToken: [
1740
+ "POST /app/installations/{installation_id}/access_tokens"
1741
+ ],
1742
+ deleteAuthorization: ["DELETE /applications/{client_id}/grant"],
1743
+ deleteInstallation: ["DELETE /app/installations/{installation_id}"],
1744
+ deleteToken: ["DELETE /applications/{client_id}/token"],
1745
+ getAuthenticated: ["GET /app"],
1746
+ getBySlug: ["GET /apps/{app_slug}"],
1747
+ getInstallation: ["GET /app/installations/{installation_id}"],
1748
+ getOrgInstallation: ["GET /orgs/{org}/installation"],
1749
+ getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"],
1750
+ getSubscriptionPlanForAccount: [
1751
+ "GET /marketplace_listing/accounts/{account_id}"
1752
+ ],
1753
+ getSubscriptionPlanForAccountStubbed: [
1754
+ "GET /marketplace_listing/stubbed/accounts/{account_id}"
1755
+ ],
1756
+ getUserInstallation: ["GET /users/{username}/installation"],
1757
+ getWebhookConfigForApp: ["GET /app/hook/config"],
1758
+ getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"],
1759
+ listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"],
1760
+ listAccountsForPlanStubbed: [
1761
+ "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"
1762
+ ],
1763
+ listInstallationReposForAuthenticatedUser: [
1764
+ "GET /user/installations/{installation_id}/repositories"
1765
+ ],
1766
+ listInstallationRequestsForAuthenticatedApp: [
1767
+ "GET /app/installation-requests"
1768
+ ],
1769
+ listInstallations: ["GET /app/installations"],
1770
+ listInstallationsForAuthenticatedUser: ["GET /user/installations"],
1771
+ listPlans: ["GET /marketplace_listing/plans"],
1772
+ listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"],
1773
+ listReposAccessibleToInstallation: ["GET /installation/repositories"],
1774
+ listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"],
1775
+ listSubscriptionsForAuthenticatedUserStubbed: [
1776
+ "GET /user/marketplace_purchases/stubbed"
1777
+ ],
1778
+ listWebhookDeliveries: ["GET /app/hook/deliveries"],
1779
+ redeliverWebhookDelivery: [
1780
+ "POST /app/hook/deliveries/{delivery_id}/attempts"
1781
+ ],
1782
+ removeRepoFromInstallation: [
1783
+ "DELETE /user/installations/{installation_id}/repositories/{repository_id}",
1784
+ {},
1785
+ { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] }
1786
+ ],
1787
+ removeRepoFromInstallationForAuthenticatedUser: [
1788
+ "DELETE /user/installations/{installation_id}/repositories/{repository_id}"
1789
+ ],
1790
+ resetToken: ["PATCH /applications/{client_id}/token"],
1791
+ revokeInstallationAccessToken: ["DELETE /installation/token"],
1792
+ scopeToken: ["POST /applications/{client_id}/token/scoped"],
1793
+ suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"],
1794
+ unsuspendInstallation: [
1795
+ "DELETE /app/installations/{installation_id}/suspended"
1796
+ ],
1797
+ updateWebhookConfigForApp: ["PATCH /app/hook/config"]
1798
+ },
1799
+ billing: {
1800
+ getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"],
1801
+ getGithubActionsBillingUser: [
1802
+ "GET /users/{username}/settings/billing/actions"
1803
+ ],
1804
+ getGithubBillingPremiumRequestUsageReportOrg: [
1805
+ "GET /organizations/{org}/settings/billing/premium_request/usage"
1806
+ ],
1807
+ getGithubBillingPremiumRequestUsageReportUser: [
1808
+ "GET /users/{username}/settings/billing/premium_request/usage"
1809
+ ],
1810
+ getGithubBillingUsageReportOrg: [
1811
+ "GET /organizations/{org}/settings/billing/usage"
1812
+ ],
1813
+ getGithubBillingUsageReportUser: [
1814
+ "GET /users/{username}/settings/billing/usage"
1815
+ ],
1816
+ getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"],
1817
+ getGithubPackagesBillingUser: [
1818
+ "GET /users/{username}/settings/billing/packages"
1819
+ ],
1820
+ getSharedStorageBillingOrg: [
1821
+ "GET /orgs/{org}/settings/billing/shared-storage"
1822
+ ],
1823
+ getSharedStorageBillingUser: [
1824
+ "GET /users/{username}/settings/billing/shared-storage"
1825
+ ]
1826
+ },
1827
+ campaigns: {
1828
+ createCampaign: ["POST /orgs/{org}/campaigns"],
1829
+ deleteCampaign: ["DELETE /orgs/{org}/campaigns/{campaign_number}"],
1830
+ getCampaignSummary: ["GET /orgs/{org}/campaigns/{campaign_number}"],
1831
+ listOrgCampaigns: ["GET /orgs/{org}/campaigns"],
1832
+ updateCampaign: ["PATCH /orgs/{org}/campaigns/{campaign_number}"]
1833
+ },
1834
+ checks: {
1835
+ create: ["POST /repos/{owner}/{repo}/check-runs"],
1836
+ createSuite: ["POST /repos/{owner}/{repo}/check-suites"],
1837
+ get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],
1838
+ getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],
1839
+ listAnnotations: [
1840
+ "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"
1841
+ ],
1842
+ listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],
1843
+ listForSuite: [
1844
+ "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"
1845
+ ],
1846
+ listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],
1847
+ rerequestRun: [
1848
+ "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"
1849
+ ],
1850
+ rerequestSuite: [
1851
+ "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"
1852
+ ],
1853
+ setSuitesPreferences: [
1854
+ "PATCH /repos/{owner}/{repo}/check-suites/preferences"
1855
+ ],
1856
+ update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]
1857
+ },
1858
+ codeScanning: {
1859
+ commitAutofix: [
1860
+ "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"
1861
+ ],
1862
+ createAutofix: [
1863
+ "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
1864
+ ],
1865
+ createVariantAnalysis: [
1866
+ "POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"
1867
+ ],
1868
+ deleteAnalysis: [
1869
+ "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"
1870
+ ],
1871
+ deleteCodeqlDatabase: [
1872
+ "DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
1873
+ ],
1874
+ getAlert: [
1875
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",
1876
+ {},
1877
+ { renamedParameters: { alert_id: "alert_number" } }
1878
+ ],
1879
+ getAnalysis: [
1880
+ "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"
1881
+ ],
1882
+ getAutofix: [
1883
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
1884
+ ],
1885
+ getCodeqlDatabase: [
1886
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
1887
+ ],
1888
+ getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"],
1889
+ getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],
1890
+ getVariantAnalysis: [
1891
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"
1892
+ ],
1893
+ getVariantAnalysisRepoTask: [
1894
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"
1895
+ ],
1896
+ listAlertInstances: [
1897
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"
1898
+ ],
1899
+ listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"],
1900
+ listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"],
1901
+ listAlertsInstances: [
1902
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",
1903
+ {},
1904
+ { renamed: ["codeScanning", "listAlertInstances"] }
1905
+ ],
1906
+ listCodeqlDatabases: [
1907
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases"
1908
+ ],
1909
+ listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"],
1910
+ updateAlert: [
1911
+ "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"
1912
+ ],
1913
+ updateDefaultSetup: [
1914
+ "PATCH /repos/{owner}/{repo}/code-scanning/default-setup"
1915
+ ],
1916
+ uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"]
1917
+ },
1918
+ codeSecurity: {
1919
+ attachConfiguration: [
1920
+ "POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"
1921
+ ],
1922
+ attachEnterpriseConfiguration: [
1923
+ "POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"
1924
+ ],
1925
+ createConfiguration: ["POST /orgs/{org}/code-security/configurations"],
1926
+ createConfigurationForEnterprise: [
1927
+ "POST /enterprises/{enterprise}/code-security/configurations"
1928
+ ],
1929
+ deleteConfiguration: [
1930
+ "DELETE /orgs/{org}/code-security/configurations/{configuration_id}"
1931
+ ],
1932
+ deleteConfigurationForEnterprise: [
1933
+ "DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
1934
+ ],
1935
+ detachConfiguration: [
1936
+ "DELETE /orgs/{org}/code-security/configurations/detach"
1937
+ ],
1938
+ getConfiguration: [
1939
+ "GET /orgs/{org}/code-security/configurations/{configuration_id}"
1940
+ ],
1941
+ getConfigurationForRepository: [
1942
+ "GET /repos/{owner}/{repo}/code-security-configuration"
1943
+ ],
1944
+ getConfigurationsForEnterprise: [
1945
+ "GET /enterprises/{enterprise}/code-security/configurations"
1946
+ ],
1947
+ getConfigurationsForOrg: ["GET /orgs/{org}/code-security/configurations"],
1948
+ getDefaultConfigurations: [
1949
+ "GET /orgs/{org}/code-security/configurations/defaults"
1950
+ ],
1951
+ getDefaultConfigurationsForEnterprise: [
1952
+ "GET /enterprises/{enterprise}/code-security/configurations/defaults"
1953
+ ],
1954
+ getRepositoriesForConfiguration: [
1955
+ "GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"
1956
+ ],
1957
+ getRepositoriesForEnterpriseConfiguration: [
1958
+ "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"
1959
+ ],
1960
+ getSingleConfigurationForEnterprise: [
1961
+ "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
1962
+ ],
1963
+ setConfigurationAsDefault: [
1964
+ "PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"
1965
+ ],
1966
+ setConfigurationAsDefaultForEnterprise: [
1967
+ "PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"
1968
+ ],
1969
+ updateConfiguration: [
1970
+ "PATCH /orgs/{org}/code-security/configurations/{configuration_id}"
1971
+ ],
1972
+ updateEnterpriseConfiguration: [
1973
+ "PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
1974
+ ]
1975
+ },
1976
+ codesOfConduct: {
1977
+ getAllCodesOfConduct: ["GET /codes_of_conduct"],
1978
+ getConductCode: ["GET /codes_of_conduct/{key}"]
1979
+ },
1980
+ codespaces: {
1981
+ addRepositoryForSecretForAuthenticatedUser: [
1982
+ "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
1983
+ ],
1984
+ addSelectedRepoToOrgSecret: [
1985
+ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
1986
+ ],
1987
+ checkPermissionsForDevcontainer: [
1988
+ "GET /repos/{owner}/{repo}/codespaces/permissions_check"
1989
+ ],
1990
+ codespaceMachinesForAuthenticatedUser: [
1991
+ "GET /user/codespaces/{codespace_name}/machines"
1992
+ ],
1993
+ createForAuthenticatedUser: ["POST /user/codespaces"],
1994
+ createOrUpdateOrgSecret: [
1995
+ "PUT /orgs/{org}/codespaces/secrets/{secret_name}"
1996
+ ],
1997
+ createOrUpdateRepoSecret: [
1998
+ "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
1999
+ ],
2000
+ createOrUpdateSecretForAuthenticatedUser: [
2001
+ "PUT /user/codespaces/secrets/{secret_name}"
2002
+ ],
2003
+ createWithPrForAuthenticatedUser: [
2004
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"
2005
+ ],
2006
+ createWithRepoForAuthenticatedUser: [
2007
+ "POST /repos/{owner}/{repo}/codespaces"
2008
+ ],
2009
+ deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"],
2010
+ deleteFromOrganization: [
2011
+ "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"
2012
+ ],
2013
+ deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],
2014
+ deleteRepoSecret: [
2015
+ "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
2016
+ ],
2017
+ deleteSecretForAuthenticatedUser: [
2018
+ "DELETE /user/codespaces/secrets/{secret_name}"
2019
+ ],
2020
+ exportForAuthenticatedUser: [
2021
+ "POST /user/codespaces/{codespace_name}/exports"
2022
+ ],
2023
+ getCodespacesForUserInOrg: [
2024
+ "GET /orgs/{org}/members/{username}/codespaces"
2025
+ ],
2026
+ getExportDetailsForAuthenticatedUser: [
2027
+ "GET /user/codespaces/{codespace_name}/exports/{export_id}"
2028
+ ],
2029
+ getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"],
2030
+ getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"],
2031
+ getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"],
2032
+ getPublicKeyForAuthenticatedUser: [
2033
+ "GET /user/codespaces/secrets/public-key"
2034
+ ],
2035
+ getRepoPublicKey: [
2036
+ "GET /repos/{owner}/{repo}/codespaces/secrets/public-key"
2037
+ ],
2038
+ getRepoSecret: [
2039
+ "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
2040
+ ],
2041
+ getSecretForAuthenticatedUser: [
2042
+ "GET /user/codespaces/secrets/{secret_name}"
2043
+ ],
2044
+ listDevcontainersInRepositoryForAuthenticatedUser: [
2045
+ "GET /repos/{owner}/{repo}/codespaces/devcontainers"
2046
+ ],
2047
+ listForAuthenticatedUser: ["GET /user/codespaces"],
2048
+ listInOrganization: [
2049
+ "GET /orgs/{org}/codespaces",
2050
+ {},
2051
+ { renamedParameters: { org_id: "org" } }
2052
+ ],
2053
+ listInRepositoryForAuthenticatedUser: [
2054
+ "GET /repos/{owner}/{repo}/codespaces"
2055
+ ],
2056
+ listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"],
2057
+ listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"],
2058
+ listRepositoriesForSecretForAuthenticatedUser: [
2059
+ "GET /user/codespaces/secrets/{secret_name}/repositories"
2060
+ ],
2061
+ listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"],
2062
+ listSelectedReposForOrgSecret: [
2063
+ "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
2064
+ ],
2065
+ preFlightWithRepoForAuthenticatedUser: [
2066
+ "GET /repos/{owner}/{repo}/codespaces/new"
2067
+ ],
2068
+ publishForAuthenticatedUser: [
2069
+ "POST /user/codespaces/{codespace_name}/publish"
2070
+ ],
2071
+ removeRepositoryForSecretForAuthenticatedUser: [
2072
+ "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
2073
+ ],
2074
+ removeSelectedRepoFromOrgSecret: [
2075
+ "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
2076
+ ],
2077
+ repoMachinesForAuthenticatedUser: [
2078
+ "GET /repos/{owner}/{repo}/codespaces/machines"
2079
+ ],
2080
+ setRepositoriesForSecretForAuthenticatedUser: [
2081
+ "PUT /user/codespaces/secrets/{secret_name}/repositories"
2082
+ ],
2083
+ setSelectedReposForOrgSecret: [
2084
+ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
2085
+ ],
2086
+ startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"],
2087
+ stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"],
2088
+ stopInOrganization: [
2089
+ "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"
2090
+ ],
2091
+ updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"]
2092
+ },
2093
+ copilot: {
2094
+ addCopilotSeatsForTeams: [
2095
+ "POST /orgs/{org}/copilot/billing/selected_teams"
2096
+ ],
2097
+ addCopilotSeatsForUsers: [
2098
+ "POST /orgs/{org}/copilot/billing/selected_users"
2099
+ ],
2100
+ cancelCopilotSeatAssignmentForTeams: [
2101
+ "DELETE /orgs/{org}/copilot/billing/selected_teams"
2102
+ ],
2103
+ cancelCopilotSeatAssignmentForUsers: [
2104
+ "DELETE /orgs/{org}/copilot/billing/selected_users"
2105
+ ],
2106
+ copilotMetricsForOrganization: ["GET /orgs/{org}/copilot/metrics"],
2107
+ copilotMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],
2108
+ getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"],
2109
+ getCopilotSeatDetailsForUser: [
2110
+ "GET /orgs/{org}/members/{username}/copilot"
2111
+ ],
2112
+ listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"]
2113
+ },
2114
+ credentials: { revoke: ["POST /credentials/revoke"] },
2115
+ dependabot: {
2116
+ addSelectedRepoToOrgSecret: [
2117
+ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
2118
+ ],
2119
+ createOrUpdateOrgSecret: [
2120
+ "PUT /orgs/{org}/dependabot/secrets/{secret_name}"
2121
+ ],
2122
+ createOrUpdateRepoSecret: [
2123
+ "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
2124
+ ],
2125
+ deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],
2126
+ deleteRepoSecret: [
2127
+ "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
2128
+ ],
2129
+ getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],
2130
+ getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"],
2131
+ getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"],
2132
+ getRepoPublicKey: [
2133
+ "GET /repos/{owner}/{repo}/dependabot/secrets/public-key"
2134
+ ],
2135
+ getRepoSecret: [
2136
+ "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
2137
+ ],
2138
+ listAlertsForEnterprise: [
2139
+ "GET /enterprises/{enterprise}/dependabot/alerts"
2140
+ ],
2141
+ listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"],
2142
+ listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"],
2143
+ listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"],
2144
+ listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"],
2145
+ listSelectedReposForOrgSecret: [
2146
+ "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
2147
+ ],
2148
+ removeSelectedRepoFromOrgSecret: [
2149
+ "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
2150
+ ],
2151
+ repositoryAccessForOrg: [
2152
+ "GET /organizations/{org}/dependabot/repository-access"
2153
+ ],
2154
+ setRepositoryAccessDefaultLevel: [
2155
+ "PUT /organizations/{org}/dependabot/repository-access/default-level"
2156
+ ],
2157
+ setSelectedReposForOrgSecret: [
2158
+ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
2159
+ ],
2160
+ updateAlert: [
2161
+ "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"
2162
+ ],
2163
+ updateRepositoryAccessForOrg: [
2164
+ "PATCH /organizations/{org}/dependabot/repository-access"
2165
+ ]
2166
+ },
2167
+ dependencyGraph: {
2168
+ createRepositorySnapshot: [
2169
+ "POST /repos/{owner}/{repo}/dependency-graph/snapshots"
2170
+ ],
2171
+ diffRange: [
2172
+ "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"
2173
+ ],
2174
+ exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"]
2175
+ },
2176
+ emojis: { get: ["GET /emojis"] },
2177
+ enterpriseTeamMemberships: {
2178
+ add: [
2179
+ "PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
2180
+ ],
2181
+ bulkAdd: [
2182
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"
2183
+ ],
2184
+ bulkRemove: [
2185
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"
2186
+ ],
2187
+ get: [
2188
+ "GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
2189
+ ],
2190
+ list: ["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],
2191
+ remove: [
2192
+ "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
2193
+ ]
2194
+ },
2195
+ enterpriseTeamOrganizations: {
2196
+ add: [
2197
+ "PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
2198
+ ],
2199
+ bulkAdd: [
2200
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"
2201
+ ],
2202
+ bulkRemove: [
2203
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"
2204
+ ],
2205
+ delete: [
2206
+ "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
2207
+ ],
2208
+ getAssignment: [
2209
+ "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
2210
+ ],
2211
+ getAssignments: [
2212
+ "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"
2213
+ ]
2214
+ },
2215
+ enterpriseTeams: {
2216
+ create: ["POST /enterprises/{enterprise}/teams"],
2217
+ delete: ["DELETE /enterprises/{enterprise}/teams/{team_slug}"],
2218
+ get: ["GET /enterprises/{enterprise}/teams/{team_slug}"],
2219
+ list: ["GET /enterprises/{enterprise}/teams"],
2220
+ update: ["PATCH /enterprises/{enterprise}/teams/{team_slug}"]
2221
+ },
2222
+ gists: {
2223
+ checkIsStarred: ["GET /gists/{gist_id}/star"],
2224
+ create: ["POST /gists"],
2225
+ createComment: ["POST /gists/{gist_id}/comments"],
2226
+ delete: ["DELETE /gists/{gist_id}"],
2227
+ deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"],
2228
+ fork: ["POST /gists/{gist_id}/forks"],
2229
+ get: ["GET /gists/{gist_id}"],
2230
+ getComment: ["GET /gists/{gist_id}/comments/{comment_id}"],
2231
+ getRevision: ["GET /gists/{gist_id}/{sha}"],
2232
+ list: ["GET /gists"],
2233
+ listComments: ["GET /gists/{gist_id}/comments"],
2234
+ listCommits: ["GET /gists/{gist_id}/commits"],
2235
+ listForUser: ["GET /users/{username}/gists"],
2236
+ listForks: ["GET /gists/{gist_id}/forks"],
2237
+ listPublic: ["GET /gists/public"],
2238
+ listStarred: ["GET /gists/starred"],
2239
+ star: ["PUT /gists/{gist_id}/star"],
2240
+ unstar: ["DELETE /gists/{gist_id}/star"],
2241
+ update: ["PATCH /gists/{gist_id}"],
2242
+ updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"]
2243
+ },
2244
+ git: {
2245
+ createBlob: ["POST /repos/{owner}/{repo}/git/blobs"],
2246
+ createCommit: ["POST /repos/{owner}/{repo}/git/commits"],
2247
+ createRef: ["POST /repos/{owner}/{repo}/git/refs"],
2248
+ createTag: ["POST /repos/{owner}/{repo}/git/tags"],
2249
+ createTree: ["POST /repos/{owner}/{repo}/git/trees"],
2250
+ deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],
2251
+ getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],
2252
+ getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],
2253
+ getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"],
2254
+ getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],
2255
+ getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],
2256
+ listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],
2257
+ updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]
2258
+ },
2259
+ gitignore: {
2260
+ getAllTemplates: ["GET /gitignore/templates"],
2261
+ getTemplate: ["GET /gitignore/templates/{name}"]
2262
+ },
2263
+ hostedCompute: {
2264
+ createNetworkConfigurationForOrg: [
2265
+ "POST /orgs/{org}/settings/network-configurations"
2266
+ ],
2267
+ deleteNetworkConfigurationFromOrg: [
2268
+ "DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"
2269
+ ],
2270
+ getNetworkConfigurationForOrg: [
2271
+ "GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"
2272
+ ],
2273
+ getNetworkSettingsForOrg: [
2274
+ "GET /orgs/{org}/settings/network-settings/{network_settings_id}"
2275
+ ],
2276
+ listNetworkConfigurationsForOrg: [
2277
+ "GET /orgs/{org}/settings/network-configurations"
2278
+ ],
2279
+ updateNetworkConfigurationForOrg: [
2280
+ "PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"
2281
+ ]
2282
+ },
2283
+ interactions: {
2284
+ getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"],
2285
+ getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"],
2286
+ getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"],
2287
+ getRestrictionsForYourPublicRepos: [
2288
+ "GET /user/interaction-limits",
2289
+ {},
2290
+ { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] }
2291
+ ],
2292
+ removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"],
2293
+ removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"],
2294
+ removeRestrictionsForRepo: [
2295
+ "DELETE /repos/{owner}/{repo}/interaction-limits"
2296
+ ],
2297
+ removeRestrictionsForYourPublicRepos: [
2298
+ "DELETE /user/interaction-limits",
2299
+ {},
2300
+ { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] }
2301
+ ],
2302
+ setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"],
2303
+ setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"],
2304
+ setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"],
2305
+ setRestrictionsForYourPublicRepos: [
2306
+ "PUT /user/interaction-limits",
2307
+ {},
2308
+ { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] }
2309
+ ]
2310
+ },
2311
+ issues: {
2312
+ addAssignees: [
2313
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"
2314
+ ],
2315
+ addBlockedByDependency: [
2316
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
2317
+ ],
2318
+ addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],
2319
+ addSubIssue: [
2320
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
2321
+ ],
2322
+ checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"],
2323
+ checkUserCanBeAssignedToIssue: [
2324
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"
2325
+ ],
2326
+ create: ["POST /repos/{owner}/{repo}/issues"],
2327
+ createComment: [
2328
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/comments"
2329
+ ],
2330
+ createLabel: ["POST /repos/{owner}/{repo}/labels"],
2331
+ createMilestone: ["POST /repos/{owner}/{repo}/milestones"],
2332
+ deleteComment: [
2333
+ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"
2334
+ ],
2335
+ deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"],
2336
+ deleteMilestone: [
2337
+ "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"
2338
+ ],
2339
+ get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"],
2340
+ getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],
2341
+ getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"],
2342
+ getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"],
2343
+ getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],
2344
+ getParent: ["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],
2345
+ list: ["GET /issues"],
2346
+ listAssignees: ["GET /repos/{owner}/{repo}/assignees"],
2347
+ listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],
2348
+ listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"],
2349
+ listDependenciesBlockedBy: [
2350
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
2351
+ ],
2352
+ listDependenciesBlocking: [
2353
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"
2354
+ ],
2355
+ listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],
2356
+ listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"],
2357
+ listEventsForTimeline: [
2358
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"
2359
+ ],
2360
+ listForAuthenticatedUser: ["GET /user/issues"],
2361
+ listForOrg: ["GET /orgs/{org}/issues"],
2362
+ listForRepo: ["GET /repos/{owner}/{repo}/issues"],
2363
+ listLabelsForMilestone: [
2364
+ "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"
2365
+ ],
2366
+ listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"],
2367
+ listLabelsOnIssue: [
2368
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/labels"
2369
+ ],
2370
+ listMilestones: ["GET /repos/{owner}/{repo}/milestones"],
2371
+ listSubIssues: [
2372
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
2373
+ ],
2374
+ lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],
2375
+ removeAllLabels: [
2376
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"
2377
+ ],
2378
+ removeAssignees: [
2379
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"
2380
+ ],
2381
+ removeDependencyBlockedBy: [
2382
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"
2383
+ ],
2384
+ removeLabel: [
2385
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"
2386
+ ],
2387
+ removeSubIssue: [
2388
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"
2389
+ ],
2390
+ reprioritizeSubIssue: [
2391
+ "PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"
2392
+ ],
2393
+ setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],
2394
+ unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],
2395
+ update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],
2396
+ updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],
2397
+ updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"],
2398
+ updateMilestone: [
2399
+ "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"
2400
+ ]
2401
+ },
2402
+ licenses: {
2403
+ get: ["GET /licenses/{license}"],
2404
+ getAllCommonlyUsed: ["GET /licenses"],
2405
+ getForRepo: ["GET /repos/{owner}/{repo}/license"]
2406
+ },
2407
+ markdown: {
2408
+ render: ["POST /markdown"],
2409
+ renderRaw: [
2410
+ "POST /markdown/raw",
2411
+ { headers: { "content-type": "text/plain; charset=utf-8" } }
2412
+ ]
2413
+ },
2414
+ meta: {
2415
+ get: ["GET /meta"],
2416
+ getAllVersions: ["GET /versions"],
2417
+ getOctocat: ["GET /octocat"],
2418
+ getZen: ["GET /zen"],
2419
+ root: ["GET /"]
2420
+ },
2421
+ migrations: {
2422
+ deleteArchiveForAuthenticatedUser: [
2423
+ "DELETE /user/migrations/{migration_id}/archive"
2424
+ ],
2425
+ deleteArchiveForOrg: [
2426
+ "DELETE /orgs/{org}/migrations/{migration_id}/archive"
2427
+ ],
2428
+ downloadArchiveForOrg: [
2429
+ "GET /orgs/{org}/migrations/{migration_id}/archive"
2430
+ ],
2431
+ getArchiveForAuthenticatedUser: [
2432
+ "GET /user/migrations/{migration_id}/archive"
2433
+ ],
2434
+ getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"],
2435
+ getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"],
2436
+ listForAuthenticatedUser: ["GET /user/migrations"],
2437
+ listForOrg: ["GET /orgs/{org}/migrations"],
2438
+ listReposForAuthenticatedUser: [
2439
+ "GET /user/migrations/{migration_id}/repositories"
2440
+ ],
2441
+ listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"],
2442
+ listReposForUser: [
2443
+ "GET /user/migrations/{migration_id}/repositories",
2444
+ {},
2445
+ { renamed: ["migrations", "listReposForAuthenticatedUser"] }
2446
+ ],
2447
+ startForAuthenticatedUser: ["POST /user/migrations"],
2448
+ startForOrg: ["POST /orgs/{org}/migrations"],
2449
+ unlockRepoForAuthenticatedUser: [
2450
+ "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"
2451
+ ],
2452
+ unlockRepoForOrg: [
2453
+ "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"
2454
+ ]
2455
+ },
2456
+ oidc: {
2457
+ getOidcCustomSubTemplateForOrg: [
2458
+ "GET /orgs/{org}/actions/oidc/customization/sub"
2459
+ ],
2460
+ updateOidcCustomSubTemplateForOrg: [
2461
+ "PUT /orgs/{org}/actions/oidc/customization/sub"
2462
+ ]
2463
+ },
2464
+ orgs: {
2465
+ addSecurityManagerTeam: [
2466
+ "PUT /orgs/{org}/security-managers/teams/{team_slug}",
2467
+ {},
2468
+ {
2469
+ deprecated: "octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"
2470
+ }
2471
+ ],
2472
+ assignTeamToOrgRole: [
2473
+ "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
2474
+ ],
2475
+ assignUserToOrgRole: [
2476
+ "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"
2477
+ ],
2478
+ blockUser: ["PUT /orgs/{org}/blocks/{username}"],
2479
+ cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"],
2480
+ checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"],
2481
+ checkMembershipForUser: ["GET /orgs/{org}/members/{username}"],
2482
+ checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"],
2483
+ convertMemberToOutsideCollaborator: [
2484
+ "PUT /orgs/{org}/outside_collaborators/{username}"
2485
+ ],
2486
+ createArtifactStorageRecord: [
2487
+ "POST /orgs/{org}/artifacts/metadata/storage-record"
2488
+ ],
2489
+ createInvitation: ["POST /orgs/{org}/invitations"],
2490
+ createIssueType: ["POST /orgs/{org}/issue-types"],
2491
+ createWebhook: ["POST /orgs/{org}/hooks"],
2492
+ customPropertiesForOrgsCreateOrUpdateOrganizationValues: [
2493
+ "PATCH /organizations/{org}/org-properties/values"
2494
+ ],
2495
+ customPropertiesForOrgsGetOrganizationValues: [
2496
+ "GET /organizations/{org}/org-properties/values"
2497
+ ],
2498
+ customPropertiesForReposCreateOrUpdateOrganizationDefinition: [
2499
+ "PUT /orgs/{org}/properties/schema/{custom_property_name}"
2500
+ ],
2501
+ customPropertiesForReposCreateOrUpdateOrganizationDefinitions: [
2502
+ "PATCH /orgs/{org}/properties/schema"
2503
+ ],
2504
+ customPropertiesForReposCreateOrUpdateOrganizationValues: [
2505
+ "PATCH /orgs/{org}/properties/values"
2506
+ ],
2507
+ customPropertiesForReposDeleteOrganizationDefinition: [
2508
+ "DELETE /orgs/{org}/properties/schema/{custom_property_name}"
2509
+ ],
2510
+ customPropertiesForReposGetOrganizationDefinition: [
2511
+ "GET /orgs/{org}/properties/schema/{custom_property_name}"
2512
+ ],
2513
+ customPropertiesForReposGetOrganizationDefinitions: [
2514
+ "GET /orgs/{org}/properties/schema"
2515
+ ],
2516
+ customPropertiesForReposGetOrganizationValues: [
2517
+ "GET /orgs/{org}/properties/values"
2518
+ ],
2519
+ delete: ["DELETE /orgs/{org}"],
2520
+ deleteAttestationsBulk: ["POST /orgs/{org}/attestations/delete-request"],
2521
+ deleteAttestationsById: [
2522
+ "DELETE /orgs/{org}/attestations/{attestation_id}"
2523
+ ],
2524
+ deleteAttestationsBySubjectDigest: [
2525
+ "DELETE /orgs/{org}/attestations/digest/{subject_digest}"
2526
+ ],
2527
+ deleteIssueType: ["DELETE /orgs/{org}/issue-types/{issue_type_id}"],
2528
+ deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"],
2529
+ disableSelectedRepositoryImmutableReleasesOrganization: [
2530
+ "DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
2531
+ ],
2532
+ enableSelectedRepositoryImmutableReleasesOrganization: [
2533
+ "PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
2534
+ ],
2535
+ get: ["GET /orgs/{org}"],
2536
+ getImmutableReleasesSettings: [
2537
+ "GET /orgs/{org}/settings/immutable-releases"
2538
+ ],
2539
+ getImmutableReleasesSettingsRepositories: [
2540
+ "GET /orgs/{org}/settings/immutable-releases/repositories"
2541
+ ],
2542
+ getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"],
2543
+ getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"],
2544
+ getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"],
2545
+ getOrgRulesetHistory: ["GET /orgs/{org}/rulesets/{ruleset_id}/history"],
2546
+ getOrgRulesetVersion: [
2547
+ "GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"
2548
+ ],
2549
+ getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"],
2550
+ getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"],
2551
+ getWebhookDelivery: [
2552
+ "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"
2553
+ ],
2554
+ list: ["GET /organizations"],
2555
+ listAppInstallations: ["GET /orgs/{org}/installations"],
2556
+ listArtifactStorageRecords: [
2557
+ "GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"
2558
+ ],
2559
+ listAttestationRepositories: ["GET /orgs/{org}/attestations/repositories"],
2560
+ listAttestations: ["GET /orgs/{org}/attestations/{subject_digest}"],
2561
+ listAttestationsBulk: [
2562
+ "POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"
2563
+ ],
2564
+ listBlockedUsers: ["GET /orgs/{org}/blocks"],
2565
+ listFailedInvitations: ["GET /orgs/{org}/failed_invitations"],
2566
+ listForAuthenticatedUser: ["GET /user/orgs"],
2567
+ listForUser: ["GET /users/{username}/orgs"],
2568
+ listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"],
2569
+ listIssueTypes: ["GET /orgs/{org}/issue-types"],
2570
+ listMembers: ["GET /orgs/{org}/members"],
2571
+ listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"],
2572
+ listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"],
2573
+ listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"],
2574
+ listOrgRoles: ["GET /orgs/{org}/organization-roles"],
2575
+ listOrganizationFineGrainedPermissions: [
2576
+ "GET /orgs/{org}/organization-fine-grained-permissions"
2577
+ ],
2578
+ listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"],
2579
+ listPatGrantRepositories: [
2580
+ "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"
2581
+ ],
2582
+ listPatGrantRequestRepositories: [
2583
+ "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"
2584
+ ],
2585
+ listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"],
2586
+ listPatGrants: ["GET /orgs/{org}/personal-access-tokens"],
2587
+ listPendingInvitations: ["GET /orgs/{org}/invitations"],
2588
+ listPublicMembers: ["GET /orgs/{org}/public_members"],
2589
+ listSecurityManagerTeams: [
2590
+ "GET /orgs/{org}/security-managers",
2591
+ {},
2592
+ {
2593
+ deprecated: "octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"
2594
+ }
2595
+ ],
2596
+ listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"],
2597
+ listWebhooks: ["GET /orgs/{org}/hooks"],
2598
+ pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"],
2599
+ redeliverWebhookDelivery: [
2600
+ "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
2601
+ ],
2602
+ removeMember: ["DELETE /orgs/{org}/members/{username}"],
2603
+ removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"],
2604
+ removeOutsideCollaborator: [
2605
+ "DELETE /orgs/{org}/outside_collaborators/{username}"
2606
+ ],
2607
+ removePublicMembershipForAuthenticatedUser: [
2608
+ "DELETE /orgs/{org}/public_members/{username}"
2609
+ ],
2610
+ removeSecurityManagerTeam: [
2611
+ "DELETE /orgs/{org}/security-managers/teams/{team_slug}",
2612
+ {},
2613
+ {
2614
+ deprecated: "octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"
2615
+ }
2616
+ ],
2617
+ reviewPatGrantRequest: [
2618
+ "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"
2619
+ ],
2620
+ reviewPatGrantRequestsInBulk: [
2621
+ "POST /orgs/{org}/personal-access-token-requests"
2622
+ ],
2623
+ revokeAllOrgRolesTeam: [
2624
+ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}"
2625
+ ],
2626
+ revokeAllOrgRolesUser: [
2627
+ "DELETE /orgs/{org}/organization-roles/users/{username}"
2628
+ ],
2629
+ revokeOrgRoleTeam: [
2630
+ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
2631
+ ],
2632
+ revokeOrgRoleUser: [
2633
+ "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"
2634
+ ],
2635
+ setImmutableReleasesSettings: [
2636
+ "PUT /orgs/{org}/settings/immutable-releases"
2637
+ ],
2638
+ setImmutableReleasesSettingsRepositories: [
2639
+ "PUT /orgs/{org}/settings/immutable-releases/repositories"
2640
+ ],
2641
+ setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"],
2642
+ setPublicMembershipForAuthenticatedUser: [
2643
+ "PUT /orgs/{org}/public_members/{username}"
2644
+ ],
2645
+ unblockUser: ["DELETE /orgs/{org}/blocks/{username}"],
2646
+ update: ["PATCH /orgs/{org}"],
2647
+ updateIssueType: ["PUT /orgs/{org}/issue-types/{issue_type_id}"],
2648
+ updateMembershipForAuthenticatedUser: [
2649
+ "PATCH /user/memberships/orgs/{org}"
2650
+ ],
2651
+ updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"],
2652
+ updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"],
2653
+ updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"],
2654
+ updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"]
2655
+ },
2656
+ packages: {
2657
+ deletePackageForAuthenticatedUser: [
2658
+ "DELETE /user/packages/{package_type}/{package_name}"
2659
+ ],
2660
+ deletePackageForOrg: [
2661
+ "DELETE /orgs/{org}/packages/{package_type}/{package_name}"
2662
+ ],
2663
+ deletePackageForUser: [
2664
+ "DELETE /users/{username}/packages/{package_type}/{package_name}"
2665
+ ],
2666
+ deletePackageVersionForAuthenticatedUser: [
2667
+ "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
2668
+ ],
2669
+ deletePackageVersionForOrg: [
2670
+ "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
2671
+ ],
2672
+ deletePackageVersionForUser: [
2673
+ "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
2674
+ ],
2675
+ getAllPackageVersionsForAPackageOwnedByAnOrg: [
2676
+ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions",
2677
+ {},
2678
+ { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] }
2679
+ ],
2680
+ getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [
2681
+ "GET /user/packages/{package_type}/{package_name}/versions",
2682
+ {},
2683
+ {
2684
+ renamed: [
2685
+ "packages",
2686
+ "getAllPackageVersionsForPackageOwnedByAuthenticatedUser"
2687
+ ]
2688
+ }
2689
+ ],
2690
+ getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [
2691
+ "GET /user/packages/{package_type}/{package_name}/versions"
2692
+ ],
2693
+ getAllPackageVersionsForPackageOwnedByOrg: [
2694
+ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions"
2695
+ ],
2696
+ getAllPackageVersionsForPackageOwnedByUser: [
2697
+ "GET /users/{username}/packages/{package_type}/{package_name}/versions"
2698
+ ],
2699
+ getPackageForAuthenticatedUser: [
2700
+ "GET /user/packages/{package_type}/{package_name}"
2701
+ ],
2702
+ getPackageForOrganization: [
2703
+ "GET /orgs/{org}/packages/{package_type}/{package_name}"
2704
+ ],
2705
+ getPackageForUser: [
2706
+ "GET /users/{username}/packages/{package_type}/{package_name}"
2707
+ ],
2708
+ getPackageVersionForAuthenticatedUser: [
2709
+ "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
2710
+ ],
2711
+ getPackageVersionForOrganization: [
2712
+ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
2713
+ ],
2714
+ getPackageVersionForUser: [
2715
+ "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
2716
+ ],
2717
+ listDockerMigrationConflictingPackagesForAuthenticatedUser: [
2718
+ "GET /user/docker/conflicts"
2719
+ ],
2720
+ listDockerMigrationConflictingPackagesForOrganization: [
2721
+ "GET /orgs/{org}/docker/conflicts"
2722
+ ],
2723
+ listDockerMigrationConflictingPackagesForUser: [
2724
+ "GET /users/{username}/docker/conflicts"
2725
+ ],
2726
+ listPackagesForAuthenticatedUser: ["GET /user/packages"],
2727
+ listPackagesForOrganization: ["GET /orgs/{org}/packages"],
2728
+ listPackagesForUser: ["GET /users/{username}/packages"],
2729
+ restorePackageForAuthenticatedUser: [
2730
+ "POST /user/packages/{package_type}/{package_name}/restore{?token}"
2731
+ ],
2732
+ restorePackageForOrg: [
2733
+ "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"
2734
+ ],
2735
+ restorePackageForUser: [
2736
+ "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"
2737
+ ],
2738
+ restorePackageVersionForAuthenticatedUser: [
2739
+ "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
2740
+ ],
2741
+ restorePackageVersionForOrg: [
2742
+ "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
2743
+ ],
2744
+ restorePackageVersionForUser: [
2745
+ "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
2746
+ ]
2747
+ },
2748
+ privateRegistries: {
2749
+ createOrgPrivateRegistry: ["POST /orgs/{org}/private-registries"],
2750
+ deleteOrgPrivateRegistry: [
2751
+ "DELETE /orgs/{org}/private-registries/{secret_name}"
2752
+ ],
2753
+ getOrgPrivateRegistry: ["GET /orgs/{org}/private-registries/{secret_name}"],
2754
+ getOrgPublicKey: ["GET /orgs/{org}/private-registries/public-key"],
2755
+ listOrgPrivateRegistries: ["GET /orgs/{org}/private-registries"],
2756
+ updateOrgPrivateRegistry: [
2757
+ "PATCH /orgs/{org}/private-registries/{secret_name}"
2758
+ ]
2759
+ },
2760
+ projects: {
2761
+ addItemForOrg: ["POST /orgs/{org}/projectsV2/{project_number}/items"],
2762
+ addItemForUser: [
2763
+ "POST /users/{username}/projectsV2/{project_number}/items"
2764
+ ],
2765
+ deleteItemForOrg: [
2766
+ "DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
2767
+ ],
2768
+ deleteItemForUser: [
2769
+ "DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"
2770
+ ],
2771
+ getFieldForOrg: [
2772
+ "GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"
2773
+ ],
2774
+ getFieldForUser: [
2775
+ "GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"
2776
+ ],
2777
+ getForOrg: ["GET /orgs/{org}/projectsV2/{project_number}"],
2778
+ getForUser: ["GET /users/{username}/projectsV2/{project_number}"],
2779
+ getOrgItem: ["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],
2780
+ getUserItem: [
2781
+ "GET /users/{username}/projectsV2/{project_number}/items/{item_id}"
2782
+ ],
2783
+ listFieldsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/fields"],
2784
+ listFieldsForUser: [
2785
+ "GET /users/{username}/projectsV2/{project_number}/fields"
2786
+ ],
2787
+ listForOrg: ["GET /orgs/{org}/projectsV2"],
2788
+ listForUser: ["GET /users/{username}/projectsV2"],
2789
+ listItemsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/items"],
2790
+ listItemsForUser: [
2791
+ "GET /users/{username}/projectsV2/{project_number}/items"
2792
+ ],
2793
+ updateItemForOrg: [
2794
+ "PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
2795
+ ],
2796
+ updateItemForUser: [
2797
+ "PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"
2798
+ ]
2799
+ },
2800
+ pulls: {
2801
+ checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
2802
+ create: ["POST /repos/{owner}/{repo}/pulls"],
2803
+ createReplyForReviewComment: [
2804
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"
2805
+ ],
2806
+ createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
2807
+ createReviewComment: [
2808
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"
2809
+ ],
2810
+ deletePendingReview: [
2811
+ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
2812
+ ],
2813
+ deleteReviewComment: [
2814
+ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"
2815
+ ],
2816
+ dismissReview: [
2817
+ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"
2818
+ ],
2819
+ get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"],
2820
+ getReview: [
2821
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
2822
+ ],
2823
+ getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],
2824
+ list: ["GET /repos/{owner}/{repo}/pulls"],
2825
+ listCommentsForReview: [
2826
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"
2827
+ ],
2828
+ listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],
2829
+ listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],
2830
+ listRequestedReviewers: [
2831
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
2832
+ ],
2833
+ listReviewComments: [
2834
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"
2835
+ ],
2836
+ listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"],
2837
+ listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
2838
+ merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
2839
+ removeRequestedReviewers: [
2840
+ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
2841
+ ],
2842
+ requestReviewers: [
2843
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
2844
+ ],
2845
+ submitReview: [
2846
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"
2847
+ ],
2848
+ update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],
2849
+ updateBranch: [
2850
+ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"
2851
+ ],
2852
+ updateReview: [
2853
+ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
2854
+ ],
2855
+ updateReviewComment: [
2856
+ "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"
2857
+ ]
2858
+ },
2859
+ rateLimit: { get: ["GET /rate_limit"] },
2860
+ reactions: {
2861
+ createForCommitComment: [
2862
+ "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"
2863
+ ],
2864
+ createForIssue: [
2865
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"
2866
+ ],
2867
+ createForIssueComment: [
2868
+ "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
2869
+ ],
2870
+ createForPullRequestReviewComment: [
2871
+ "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
2872
+ ],
2873
+ createForRelease: [
2874
+ "POST /repos/{owner}/{repo}/releases/{release_id}/reactions"
2875
+ ],
2876
+ createForTeamDiscussionCommentInOrg: [
2877
+ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
2878
+ ],
2879
+ createForTeamDiscussionInOrg: [
2880
+ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
2881
+ ],
2882
+ deleteForCommitComment: [
2883
+ "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"
2884
+ ],
2885
+ deleteForIssue: [
2886
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"
2887
+ ],
2888
+ deleteForIssueComment: [
2889
+ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"
2890
+ ],
2891
+ deleteForPullRequestComment: [
2892
+ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"
2893
+ ],
2894
+ deleteForRelease: [
2895
+ "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"
2896
+ ],
2897
+ deleteForTeamDiscussion: [
2898
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"
2899
+ ],
2900
+ deleteForTeamDiscussionComment: [
2901
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"
2902
+ ],
2903
+ listForCommitComment: [
2904
+ "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"
2905
+ ],
2906
+ listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],
2907
+ listForIssueComment: [
2908
+ "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
2909
+ ],
2910
+ listForPullRequestReviewComment: [
2911
+ "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
2912
+ ],
2913
+ listForRelease: [
2914
+ "GET /repos/{owner}/{repo}/releases/{release_id}/reactions"
2915
+ ],
2916
+ listForTeamDiscussionCommentInOrg: [
2917
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
2918
+ ],
2919
+ listForTeamDiscussionInOrg: [
2920
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
2921
+ ]
2922
+ },
2923
+ repos: {
2924
+ acceptInvitation: [
2925
+ "PATCH /user/repository_invitations/{invitation_id}",
2926
+ {},
2927
+ { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] }
2928
+ ],
2929
+ acceptInvitationForAuthenticatedUser: [
2930
+ "PATCH /user/repository_invitations/{invitation_id}"
2931
+ ],
2932
+ addAppAccessRestrictions: [
2933
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
2934
+ {},
2935
+ { mapToData: "apps" }
2936
+ ],
2937
+ addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"],
2938
+ addStatusCheckContexts: [
2939
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
2940
+ {},
2941
+ { mapToData: "contexts" }
2942
+ ],
2943
+ addTeamAccessRestrictions: [
2944
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
2945
+ {},
2946
+ { mapToData: "teams" }
2947
+ ],
2948
+ addUserAccessRestrictions: [
2949
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
2950
+ {},
2951
+ { mapToData: "users" }
2952
+ ],
2953
+ cancelPagesDeployment: [
2954
+ "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"
2955
+ ],
2956
+ checkAutomatedSecurityFixes: [
2957
+ "GET /repos/{owner}/{repo}/automated-security-fixes"
2958
+ ],
2959
+ checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"],
2960
+ checkImmutableReleases: ["GET /repos/{owner}/{repo}/immutable-releases"],
2961
+ checkPrivateVulnerabilityReporting: [
2962
+ "GET /repos/{owner}/{repo}/private-vulnerability-reporting"
2963
+ ],
2964
+ checkVulnerabilityAlerts: [
2965
+ "GET /repos/{owner}/{repo}/vulnerability-alerts"
2966
+ ],
2967
+ codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"],
2968
+ compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"],
2969
+ compareCommitsWithBasehead: [
2970
+ "GET /repos/{owner}/{repo}/compare/{basehead}"
2971
+ ],
2972
+ createAttestation: ["POST /repos/{owner}/{repo}/attestations"],
2973
+ createAutolink: ["POST /repos/{owner}/{repo}/autolinks"],
2974
+ createCommitComment: [
2975
+ "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"
2976
+ ],
2977
+ createCommitSignatureProtection: [
2978
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
2979
+ ],
2980
+ createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"],
2981
+ createDeployKey: ["POST /repos/{owner}/{repo}/keys"],
2982
+ createDeployment: ["POST /repos/{owner}/{repo}/deployments"],
2983
+ createDeploymentBranchPolicy: [
2984
+ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
2985
+ ],
2986
+ createDeploymentProtectionRule: [
2987
+ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
2988
+ ],
2989
+ createDeploymentStatus: [
2990
+ "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
2991
+ ],
2992
+ createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"],
2993
+ createForAuthenticatedUser: ["POST /user/repos"],
2994
+ createFork: ["POST /repos/{owner}/{repo}/forks"],
2995
+ createInOrg: ["POST /orgs/{org}/repos"],
2996
+ createOrUpdateEnvironment: [
2997
+ "PUT /repos/{owner}/{repo}/environments/{environment_name}"
2998
+ ],
2999
+ createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"],
3000
+ createOrgRuleset: ["POST /orgs/{org}/rulesets"],
3001
+ createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"],
3002
+ createPagesSite: ["POST /repos/{owner}/{repo}/pages"],
3003
+ createRelease: ["POST /repos/{owner}/{repo}/releases"],
3004
+ createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"],
3005
+ createUsingTemplate: [
3006
+ "POST /repos/{template_owner}/{template_repo}/generate"
3007
+ ],
3008
+ createWebhook: ["POST /repos/{owner}/{repo}/hooks"],
3009
+ customPropertiesForReposCreateOrUpdateRepositoryValues: [
3010
+ "PATCH /repos/{owner}/{repo}/properties/values"
3011
+ ],
3012
+ customPropertiesForReposGetRepositoryValues: [
3013
+ "GET /repos/{owner}/{repo}/properties/values"
3014
+ ],
3015
+ declineInvitation: [
3016
+ "DELETE /user/repository_invitations/{invitation_id}",
3017
+ {},
3018
+ { renamed: ["repos", "declineInvitationForAuthenticatedUser"] }
3019
+ ],
3020
+ declineInvitationForAuthenticatedUser: [
3021
+ "DELETE /user/repository_invitations/{invitation_id}"
3022
+ ],
3023
+ delete: ["DELETE /repos/{owner}/{repo}"],
3024
+ deleteAccessRestrictions: [
3025
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
3026
+ ],
3027
+ deleteAdminBranchProtection: [
3028
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
3029
+ ],
3030
+ deleteAnEnvironment: [
3031
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}"
3032
+ ],
3033
+ deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],
3034
+ deleteBranchProtection: [
3035
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection"
3036
+ ],
3037
+ deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],
3038
+ deleteCommitSignatureProtection: [
3039
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
3040
+ ],
3041
+ deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"],
3042
+ deleteDeployment: [
3043
+ "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"
3044
+ ],
3045
+ deleteDeploymentBranchPolicy: [
3046
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
3047
+ ],
3048
+ deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"],
3049
+ deleteInvitation: [
3050
+ "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"
3051
+ ],
3052
+ deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"],
3053
+ deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"],
3054
+ deletePullRequestReviewProtection: [
3055
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
3056
+ ],
3057
+ deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"],
3058
+ deleteReleaseAsset: [
3059
+ "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"
3060
+ ],
3061
+ deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
3062
+ deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],
3063
+ disableAutomatedSecurityFixes: [
3064
+ "DELETE /repos/{owner}/{repo}/automated-security-fixes"
3065
+ ],
3066
+ disableDeploymentProtectionRule: [
3067
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
3068
+ ],
3069
+ disableImmutableReleases: [
3070
+ "DELETE /repos/{owner}/{repo}/immutable-releases"
3071
+ ],
3072
+ disablePrivateVulnerabilityReporting: [
3073
+ "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"
3074
+ ],
3075
+ disableVulnerabilityAlerts: [
3076
+ "DELETE /repos/{owner}/{repo}/vulnerability-alerts"
3077
+ ],
3078
+ downloadArchive: [
3079
+ "GET /repos/{owner}/{repo}/zipball/{ref}",
3080
+ {},
3081
+ { renamed: ["repos", "downloadZipballArchive"] }
3082
+ ],
3083
+ downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"],
3084
+ downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"],
3085
+ enableAutomatedSecurityFixes: [
3086
+ "PUT /repos/{owner}/{repo}/automated-security-fixes"
3087
+ ],
3088
+ enableImmutableReleases: ["PUT /repos/{owner}/{repo}/immutable-releases"],
3089
+ enablePrivateVulnerabilityReporting: [
3090
+ "PUT /repos/{owner}/{repo}/private-vulnerability-reporting"
3091
+ ],
3092
+ enableVulnerabilityAlerts: [
3093
+ "PUT /repos/{owner}/{repo}/vulnerability-alerts"
3094
+ ],
3095
+ generateReleaseNotes: [
3096
+ "POST /repos/{owner}/{repo}/releases/generate-notes"
3097
+ ],
3098
+ get: ["GET /repos/{owner}/{repo}"],
3099
+ getAccessRestrictions: [
3100
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
3101
+ ],
3102
+ getAdminBranchProtection: [
3103
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
3104
+ ],
3105
+ getAllDeploymentProtectionRules: [
3106
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
3107
+ ],
3108
+ getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"],
3109
+ getAllStatusCheckContexts: [
3110
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"
3111
+ ],
3112
+ getAllTopics: ["GET /repos/{owner}/{repo}/topics"],
3113
+ getAppsWithAccessToProtectedBranch: [
3114
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"
3115
+ ],
3116
+ getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],
3117
+ getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"],
3118
+ getBranchProtection: [
3119
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection"
3120
+ ],
3121
+ getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"],
3122
+ getClones: ["GET /repos/{owner}/{repo}/traffic/clones"],
3123
+ getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"],
3124
+ getCollaboratorPermissionLevel: [
3125
+ "GET /repos/{owner}/{repo}/collaborators/{username}/permission"
3126
+ ],
3127
+ getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"],
3128
+ getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"],
3129
+ getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"],
3130
+ getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"],
3131
+ getCommitSignatureProtection: [
3132
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
3133
+ ],
3134
+ getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"],
3135
+ getContent: ["GET /repos/{owner}/{repo}/contents/{path}"],
3136
+ getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"],
3137
+ getCustomDeploymentProtectionRule: [
3138
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
3139
+ ],
3140
+ getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"],
3141
+ getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],
3142
+ getDeploymentBranchPolicy: [
3143
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
3144
+ ],
3145
+ getDeploymentStatus: [
3146
+ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"
3147
+ ],
3148
+ getEnvironment: [
3149
+ "GET /repos/{owner}/{repo}/environments/{environment_name}"
3150
+ ],
3151
+ getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"],
3152
+ getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"],
3153
+ getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],
3154
+ getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"],
3155
+ getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"],
3156
+ getOrgRulesets: ["GET /orgs/{org}/rulesets"],
3157
+ getPages: ["GET /repos/{owner}/{repo}/pages"],
3158
+ getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],
3159
+ getPagesDeployment: [
3160
+ "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"
3161
+ ],
3162
+ getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"],
3163
+ getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"],
3164
+ getPullRequestReviewProtection: [
3165
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
3166
+ ],
3167
+ getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"],
3168
+ getReadme: ["GET /repos/{owner}/{repo}/readme"],
3169
+ getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"],
3170
+ getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"],
3171
+ getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],
3172
+ getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"],
3173
+ getRepoRuleSuite: [
3174
+ "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"
3175
+ ],
3176
+ getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"],
3177
+ getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
3178
+ getRepoRulesetHistory: [
3179
+ "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"
3180
+ ],
3181
+ getRepoRulesetVersion: [
3182
+ "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"
3183
+ ],
3184
+ getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"],
3185
+ getStatusChecksProtection: [
3186
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
3187
+ ],
3188
+ getTeamsWithAccessToProtectedBranch: [
3189
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"
3190
+ ],
3191
+ getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"],
3192
+ getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"],
3193
+ getUsersWithAccessToProtectedBranch: [
3194
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"
3195
+ ],
3196
+ getViews: ["GET /repos/{owner}/{repo}/traffic/views"],
3197
+ getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"],
3198
+ getWebhookConfigForRepo: [
3199
+ "GET /repos/{owner}/{repo}/hooks/{hook_id}/config"
3200
+ ],
3201
+ getWebhookDelivery: [
3202
+ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"
3203
+ ],
3204
+ listActivities: ["GET /repos/{owner}/{repo}/activity"],
3205
+ listAttestations: [
3206
+ "GET /repos/{owner}/{repo}/attestations/{subject_digest}"
3207
+ ],
3208
+ listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"],
3209
+ listBranches: ["GET /repos/{owner}/{repo}/branches"],
3210
+ listBranchesForHeadCommit: [
3211
+ "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"
3212
+ ],
3213
+ listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"],
3214
+ listCommentsForCommit: [
3215
+ "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"
3216
+ ],
3217
+ listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"],
3218
+ listCommitStatusesForRef: [
3219
+ "GET /repos/{owner}/{repo}/commits/{ref}/statuses"
3220
+ ],
3221
+ listCommits: ["GET /repos/{owner}/{repo}/commits"],
3222
+ listContributors: ["GET /repos/{owner}/{repo}/contributors"],
3223
+ listCustomDeploymentRuleIntegrations: [
3224
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"
3225
+ ],
3226
+ listDeployKeys: ["GET /repos/{owner}/{repo}/keys"],
3227
+ listDeploymentBranchPolicies: [
3228
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
3229
+ ],
3230
+ listDeploymentStatuses: [
3231
+ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
3232
+ ],
3233
+ listDeployments: ["GET /repos/{owner}/{repo}/deployments"],
3234
+ listForAuthenticatedUser: ["GET /user/repos"],
3235
+ listForOrg: ["GET /orgs/{org}/repos"],
3236
+ listForUser: ["GET /users/{username}/repos"],
3237
+ listForks: ["GET /repos/{owner}/{repo}/forks"],
3238
+ listInvitations: ["GET /repos/{owner}/{repo}/invitations"],
3239
+ listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"],
3240
+ listLanguages: ["GET /repos/{owner}/{repo}/languages"],
3241
+ listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"],
3242
+ listPublic: ["GET /repositories"],
3243
+ listPullRequestsAssociatedWithCommit: [
3244
+ "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"
3245
+ ],
3246
+ listReleaseAssets: [
3247
+ "GET /repos/{owner}/{repo}/releases/{release_id}/assets"
3248
+ ],
3249
+ listReleases: ["GET /repos/{owner}/{repo}/releases"],
3250
+ listTags: ["GET /repos/{owner}/{repo}/tags"],
3251
+ listTeams: ["GET /repos/{owner}/{repo}/teams"],
3252
+ listWebhookDeliveries: [
3253
+ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"
3254
+ ],
3255
+ listWebhooks: ["GET /repos/{owner}/{repo}/hooks"],
3256
+ merge: ["POST /repos/{owner}/{repo}/merges"],
3257
+ mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"],
3258
+ pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],
3259
+ redeliverWebhookDelivery: [
3260
+ "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
3261
+ ],
3262
+ removeAppAccessRestrictions: [
3263
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
3264
+ {},
3265
+ { mapToData: "apps" }
3266
+ ],
3267
+ removeCollaborator: [
3268
+ "DELETE /repos/{owner}/{repo}/collaborators/{username}"
3269
+ ],
3270
+ removeStatusCheckContexts: [
3271
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
3272
+ {},
3273
+ { mapToData: "contexts" }
3274
+ ],
3275
+ removeStatusCheckProtection: [
3276
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
3277
+ ],
3278
+ removeTeamAccessRestrictions: [
3279
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
3280
+ {},
3281
+ { mapToData: "teams" }
3282
+ ],
3283
+ removeUserAccessRestrictions: [
3284
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
3285
+ {},
3286
+ { mapToData: "users" }
3287
+ ],
3288
+ renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"],
3289
+ replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"],
3290
+ requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"],
3291
+ setAdminBranchProtection: [
3292
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
3293
+ ],
3294
+ setAppAccessRestrictions: [
3295
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
3296
+ {},
3297
+ { mapToData: "apps" }
3298
+ ],
3299
+ setStatusCheckContexts: [
3300
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
3301
+ {},
3302
+ { mapToData: "contexts" }
3303
+ ],
3304
+ setTeamAccessRestrictions: [
3305
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
3306
+ {},
3307
+ { mapToData: "teams" }
3308
+ ],
3309
+ setUserAccessRestrictions: [
3310
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
3311
+ {},
3312
+ { mapToData: "users" }
3313
+ ],
3314
+ testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],
3315
+ transfer: ["POST /repos/{owner}/{repo}/transfer"],
3316
+ update: ["PATCH /repos/{owner}/{repo}"],
3317
+ updateBranchProtection: [
3318
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection"
3319
+ ],
3320
+ updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],
3321
+ updateDeploymentBranchPolicy: [
3322
+ "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
3323
+ ],
3324
+ updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"],
3325
+ updateInvitation: [
3326
+ "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"
3327
+ ],
3328
+ updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"],
3329
+ updatePullRequestReviewProtection: [
3330
+ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
3331
+ ],
3332
+ updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"],
3333
+ updateReleaseAsset: [
3334
+ "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"
3335
+ ],
3336
+ updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
3337
+ updateStatusCheckPotection: [
3338
+ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",
3339
+ {},
3340
+ { renamed: ["repos", "updateStatusCheckProtection"] }
3341
+ ],
3342
+ updateStatusCheckProtection: [
3343
+ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
3344
+ ],
3345
+ updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],
3346
+ updateWebhookConfigForRepo: [
3347
+ "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"
3348
+ ],
3349
+ uploadReleaseAsset: [
3350
+ "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",
3351
+ { baseUrl: "https://uploads.github.com" }
3352
+ ]
3353
+ },
3354
+ search: {
3355
+ code: ["GET /search/code"],
3356
+ commits: ["GET /search/commits"],
3357
+ issuesAndPullRequests: ["GET /search/issues"],
3358
+ labels: ["GET /search/labels"],
3359
+ repos: ["GET /search/repositories"],
3360
+ topics: ["GET /search/topics"],
3361
+ users: ["GET /search/users"]
3362
+ },
3363
+ secretScanning: {
3364
+ createPushProtectionBypass: [
3365
+ "POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"
3366
+ ],
3367
+ getAlert: [
3368
+ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
3369
+ ],
3370
+ getScanHistory: ["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],
3371
+ listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"],
3372
+ listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"],
3373
+ listLocationsForAlert: [
3374
+ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"
3375
+ ],
3376
+ listOrgPatternConfigs: [
3377
+ "GET /orgs/{org}/secret-scanning/pattern-configurations"
3378
+ ],
3379
+ updateAlert: [
3380
+ "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
3381
+ ],
3382
+ updateOrgPatternConfigs: [
3383
+ "PATCH /orgs/{org}/secret-scanning/pattern-configurations"
3384
+ ]
3385
+ },
3386
+ securityAdvisories: {
3387
+ createFork: [
3388
+ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"
3389
+ ],
3390
+ createPrivateVulnerabilityReport: [
3391
+ "POST /repos/{owner}/{repo}/security-advisories/reports"
3392
+ ],
3393
+ createRepositoryAdvisory: [
3394
+ "POST /repos/{owner}/{repo}/security-advisories"
3395
+ ],
3396
+ createRepositoryAdvisoryCveRequest: [
3397
+ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"
3398
+ ],
3399
+ getGlobalAdvisory: ["GET /advisories/{ghsa_id}"],
3400
+ getRepositoryAdvisory: [
3401
+ "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
3402
+ ],
3403
+ listGlobalAdvisories: ["GET /advisories"],
3404
+ listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"],
3405
+ listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"],
3406
+ updateRepositoryAdvisory: [
3407
+ "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
3408
+ ]
3409
+ },
3410
+ teams: {
3411
+ addOrUpdateMembershipForUserInOrg: [
3412
+ "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"
3413
+ ],
3414
+ addOrUpdateRepoPermissionsInOrg: [
3415
+ "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
3416
+ ],
3417
+ checkPermissionsForRepoInOrg: [
3418
+ "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
3419
+ ],
3420
+ create: ["POST /orgs/{org}/teams"],
3421
+ createDiscussionCommentInOrg: [
3422
+ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
3423
+ ],
3424
+ createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"],
3425
+ deleteDiscussionCommentInOrg: [
3426
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
3427
+ ],
3428
+ deleteDiscussionInOrg: [
3429
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
3430
+ ],
3431
+ deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"],
3432
+ getByName: ["GET /orgs/{org}/teams/{team_slug}"],
3433
+ getDiscussionCommentInOrg: [
3434
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
3435
+ ],
3436
+ getDiscussionInOrg: [
3437
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
3438
+ ],
3439
+ getMembershipForUserInOrg: [
3440
+ "GET /orgs/{org}/teams/{team_slug}/memberships/{username}"
3441
+ ],
3442
+ list: ["GET /orgs/{org}/teams"],
3443
+ listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"],
3444
+ listDiscussionCommentsInOrg: [
3445
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
3446
+ ],
3447
+ listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"],
3448
+ listForAuthenticatedUser: ["GET /user/teams"],
3449
+ listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"],
3450
+ listPendingInvitationsInOrg: [
3451
+ "GET /orgs/{org}/teams/{team_slug}/invitations"
3452
+ ],
3453
+ listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"],
3454
+ removeMembershipForUserInOrg: [
3455
+ "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"
3456
+ ],
3457
+ removeRepoInOrg: [
3458
+ "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
3459
+ ],
3460
+ updateDiscussionCommentInOrg: [
3461
+ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
3462
+ ],
3463
+ updateDiscussionInOrg: [
3464
+ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
3465
+ ],
3466
+ updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"]
3467
+ },
3468
+ users: {
3469
+ addEmailForAuthenticated: [
3470
+ "POST /user/emails",
3471
+ {},
3472
+ { renamed: ["users", "addEmailForAuthenticatedUser"] }
3473
+ ],
3474
+ addEmailForAuthenticatedUser: ["POST /user/emails"],
3475
+ addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"],
3476
+ block: ["PUT /user/blocks/{username}"],
3477
+ checkBlocked: ["GET /user/blocks/{username}"],
3478
+ checkFollowingForUser: ["GET /users/{username}/following/{target_user}"],
3479
+ checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"],
3480
+ createGpgKeyForAuthenticated: [
3481
+ "POST /user/gpg_keys",
3482
+ {},
3483
+ { renamed: ["users", "createGpgKeyForAuthenticatedUser"] }
3484
+ ],
3485
+ createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"],
3486
+ createPublicSshKeyForAuthenticated: [
3487
+ "POST /user/keys",
3488
+ {},
3489
+ { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] }
3490
+ ],
3491
+ createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"],
3492
+ createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"],
3493
+ deleteAttestationsBulk: [
3494
+ "POST /users/{username}/attestations/delete-request"
3495
+ ],
3496
+ deleteAttestationsById: [
3497
+ "DELETE /users/{username}/attestations/{attestation_id}"
3498
+ ],
3499
+ deleteAttestationsBySubjectDigest: [
3500
+ "DELETE /users/{username}/attestations/digest/{subject_digest}"
3501
+ ],
3502
+ deleteEmailForAuthenticated: [
3503
+ "DELETE /user/emails",
3504
+ {},
3505
+ { renamed: ["users", "deleteEmailForAuthenticatedUser"] }
3506
+ ],
3507
+ deleteEmailForAuthenticatedUser: ["DELETE /user/emails"],
3508
+ deleteGpgKeyForAuthenticated: [
3509
+ "DELETE /user/gpg_keys/{gpg_key_id}",
3510
+ {},
3511
+ { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] }
3512
+ ],
3513
+ deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"],
3514
+ deletePublicSshKeyForAuthenticated: [
3515
+ "DELETE /user/keys/{key_id}",
3516
+ {},
3517
+ { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] }
3518
+ ],
3519
+ deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"],
3520
+ deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"],
3521
+ deleteSshSigningKeyForAuthenticatedUser: [
3522
+ "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"
3523
+ ],
3524
+ follow: ["PUT /user/following/{username}"],
3525
+ getAuthenticated: ["GET /user"],
3526
+ getById: ["GET /user/{account_id}"],
3527
+ getByUsername: ["GET /users/{username}"],
3528
+ getContextForUser: ["GET /users/{username}/hovercard"],
3529
+ getGpgKeyForAuthenticated: [
3530
+ "GET /user/gpg_keys/{gpg_key_id}",
3531
+ {},
3532
+ { renamed: ["users", "getGpgKeyForAuthenticatedUser"] }
3533
+ ],
3534
+ getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"],
3535
+ getPublicSshKeyForAuthenticated: [
3536
+ "GET /user/keys/{key_id}",
3537
+ {},
3538
+ { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] }
3539
+ ],
3540
+ getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"],
3541
+ getSshSigningKeyForAuthenticatedUser: [
3542
+ "GET /user/ssh_signing_keys/{ssh_signing_key_id}"
3543
+ ],
3544
+ list: ["GET /users"],
3545
+ listAttestations: ["GET /users/{username}/attestations/{subject_digest}"],
3546
+ listAttestationsBulk: [
3547
+ "POST /users/{username}/attestations/bulk-list{?per_page,before,after}"
3548
+ ],
3549
+ listBlockedByAuthenticated: [
3550
+ "GET /user/blocks",
3551
+ {},
3552
+ { renamed: ["users", "listBlockedByAuthenticatedUser"] }
3553
+ ],
3554
+ listBlockedByAuthenticatedUser: ["GET /user/blocks"],
3555
+ listEmailsForAuthenticated: [
3556
+ "GET /user/emails",
3557
+ {},
3558
+ { renamed: ["users", "listEmailsForAuthenticatedUser"] }
3559
+ ],
3560
+ listEmailsForAuthenticatedUser: ["GET /user/emails"],
3561
+ listFollowedByAuthenticated: [
3562
+ "GET /user/following",
3563
+ {},
3564
+ { renamed: ["users", "listFollowedByAuthenticatedUser"] }
3565
+ ],
3566
+ listFollowedByAuthenticatedUser: ["GET /user/following"],
3567
+ listFollowersForAuthenticatedUser: ["GET /user/followers"],
3568
+ listFollowersForUser: ["GET /users/{username}/followers"],
3569
+ listFollowingForUser: ["GET /users/{username}/following"],
3570
+ listGpgKeysForAuthenticated: [
3571
+ "GET /user/gpg_keys",
3572
+ {},
3573
+ { renamed: ["users", "listGpgKeysForAuthenticatedUser"] }
3574
+ ],
3575
+ listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"],
3576
+ listGpgKeysForUser: ["GET /users/{username}/gpg_keys"],
3577
+ listPublicEmailsForAuthenticated: [
3578
+ "GET /user/public_emails",
3579
+ {},
3580
+ { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] }
3581
+ ],
3582
+ listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"],
3583
+ listPublicKeysForUser: ["GET /users/{username}/keys"],
3584
+ listPublicSshKeysForAuthenticated: [
3585
+ "GET /user/keys",
3586
+ {},
3587
+ { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] }
3588
+ ],
3589
+ listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"],
3590
+ listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"],
3591
+ listSocialAccountsForUser: ["GET /users/{username}/social_accounts"],
3592
+ listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"],
3593
+ listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"],
3594
+ setPrimaryEmailVisibilityForAuthenticated: [
3595
+ "PATCH /user/email/visibility",
3596
+ {},
3597
+ { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] }
3598
+ ],
3599
+ setPrimaryEmailVisibilityForAuthenticatedUser: [
3600
+ "PATCH /user/email/visibility"
3601
+ ],
3602
+ unblock: ["DELETE /user/blocks/{username}"],
3603
+ unfollow: ["DELETE /user/following/{username}"],
3604
+ updateAuthenticated: ["PATCH /user"]
3605
+ }
3606
+ };
3607
+ var endpoints_default = Endpoints;
3608
+
3609
+ // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js
3610
+ var endpointMethodsMap = /* @__PURE__ */ new Map();
3611
+ for (const [scope, endpoints] of Object.entries(endpoints_default)) {
3612
+ for (const [methodName, endpoint2] of Object.entries(endpoints)) {
3613
+ const [route, defaults, decorations] = endpoint2;
3614
+ const [method, url] = route.split(/ /);
3615
+ const endpointDefaults = Object.assign(
3616
+ {
3617
+ method,
3618
+ url
3619
+ },
3620
+ defaults
3621
+ );
3622
+ if (!endpointMethodsMap.has(scope)) {
3623
+ endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());
3624
+ }
3625
+ endpointMethodsMap.get(scope).set(methodName, {
3626
+ scope,
3627
+ methodName,
3628
+ endpointDefaults,
3629
+ decorations
3630
+ });
3631
+ }
3632
+ }
3633
+ var handler = {
3634
+ has({ scope }, methodName) {
3635
+ return endpointMethodsMap.get(scope).has(methodName);
3636
+ },
3637
+ getOwnPropertyDescriptor(target, methodName) {
3638
+ return {
3639
+ value: this.get(target, methodName),
3640
+ // ensures method is in the cache
3641
+ configurable: true,
3642
+ writable: true,
3643
+ enumerable: true
3644
+ };
3645
+ },
3646
+ defineProperty(target, methodName, descriptor) {
3647
+ Object.defineProperty(target.cache, methodName, descriptor);
3648
+ return true;
3649
+ },
3650
+ deleteProperty(target, methodName) {
3651
+ delete target.cache[methodName];
3652
+ return true;
3653
+ },
3654
+ ownKeys({ scope }) {
3655
+ return [...endpointMethodsMap.get(scope).keys()];
3656
+ },
3657
+ set(target, methodName, value) {
3658
+ return target.cache[methodName] = value;
3659
+ },
3660
+ get({ octokit, scope, cache }, methodName) {
3661
+ if (cache[methodName]) {
3662
+ return cache[methodName];
3663
+ }
3664
+ const method = endpointMethodsMap.get(scope).get(methodName);
3665
+ if (!method) {
3666
+ return void 0;
3667
+ }
3668
+ const { endpointDefaults, decorations } = method;
3669
+ if (decorations) {
3670
+ cache[methodName] = decorate(
3671
+ octokit,
3672
+ scope,
3673
+ methodName,
3674
+ endpointDefaults,
3675
+ decorations
3676
+ );
3677
+ } else {
3678
+ cache[methodName] = octokit.request.defaults(endpointDefaults);
3679
+ }
3680
+ return cache[methodName];
3681
+ }
3682
+ };
3683
+ function endpointsToMethods(octokit) {
3684
+ const newMethods = {};
3685
+ for (const scope of endpointMethodsMap.keys()) {
3686
+ newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);
3687
+ }
3688
+ return newMethods;
3689
+ }
3690
+ function decorate(octokit, scope, methodName, defaults, decorations) {
3691
+ const requestWithDefaults = octokit.request.defaults(defaults);
3692
+ function withDecorations(...args) {
3693
+ let options = requestWithDefaults.endpoint.merge(...args);
3694
+ if (decorations.mapToData) {
3695
+ options = Object.assign({}, options, {
3696
+ data: options[decorations.mapToData],
3697
+ [decorations.mapToData]: void 0
3698
+ });
3699
+ return requestWithDefaults(options);
3700
+ }
3701
+ if (decorations.renamed) {
3702
+ const [newScope, newMethodName] = decorations.renamed;
3703
+ octokit.log.warn(
3704
+ `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`
3705
+ );
3706
+ }
3707
+ if (decorations.deprecated) {
3708
+ octokit.log.warn(decorations.deprecated);
3709
+ }
3710
+ if (decorations.renamedParameters) {
3711
+ const options2 = requestWithDefaults.endpoint.merge(...args);
3712
+ for (const [name, alias] of Object.entries(
3713
+ decorations.renamedParameters
3714
+ )) {
3715
+ if (name in options2) {
3716
+ octokit.log.warn(
3717
+ `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`
3718
+ );
3719
+ if (!(alias in options2)) {
3720
+ options2[alias] = options2[name];
3721
+ }
3722
+ delete options2[name];
3723
+ }
3724
+ }
3725
+ return requestWithDefaults(options2);
3726
+ }
3727
+ return requestWithDefaults(...args);
3728
+ }
3729
+ return Object.assign(withDecorations, requestWithDefaults);
3730
+ }
3731
+
3732
+ // node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js
3733
+ function restEndpointMethods(octokit) {
3734
+ const api = endpointsToMethods(octokit);
3735
+ return {
3736
+ rest: api
3737
+ };
3738
+ }
3739
+ restEndpointMethods.VERSION = VERSION7;
3740
+ function legacyRestEndpointMethods(octokit) {
3741
+ const api = endpointsToMethods(octokit);
3742
+ return {
3743
+ ...api,
3744
+ rest: api
3745
+ };
3746
+ }
3747
+ legacyRestEndpointMethods.VERSION = VERSION7;
3748
+
3749
+ // node_modules/@octokit/rest/dist-src/version.js
3750
+ var VERSION8 = "22.0.1";
3751
+
3752
+ // node_modules/@octokit/rest/dist-src/index.js
3753
+ var Octokit2 = Octokit.plugin(requestLog, legacyRestEndpointMethods, paginateRest).defaults(
3754
+ {
3755
+ userAgent: `octokit-rest.js/${VERSION8}`
3756
+ }
3757
+ );
3758
+
3759
+ // src/github.ts
3760
+ function createOctokit(token) {
3761
+ return new Octokit2({ auth: token });
3762
+ }
3763
+ async function fetchAllRepos(octokit) {
3764
+ const repos = await octokit.paginate(
3765
+ octokit.rest.repos.listForAuthenticatedUser,
3766
+ {
3767
+ per_page: 100,
3768
+ affiliation: "owner",
3769
+ sort: "updated",
3770
+ direction: "asc"
3771
+ }
3772
+ );
3773
+ return repos.map((r) => ({
3774
+ nameWithOwner: r.full_name,
3775
+ updatedAt: r.updated_at ?? "",
3776
+ visibility: r.visibility ?? (r.private ? "private" : "public"),
3777
+ url: r.html_url,
3778
+ stars: r.stargazers_count ?? 0,
3779
+ description: r.description ?? null,
3780
+ language: r.language ?? null,
3781
+ isFork: r.fork,
3782
+ isArchived: r.archived ?? false
3783
+ })).sort((a, b) => a.updatedAt.localeCompare(b.updatedAt));
3784
+ }
3785
+ async function archiveRepo(octokit, owner, repo) {
3786
+ await octokit.rest.repos.update({ owner, repo, archived: true });
3787
+ }
3788
+ async function unarchiveRepo(octokit, owner, repo) {
3789
+ await octokit.rest.repos.update({ owner, repo, archived: false });
3790
+ }
3791
+ async function deleteRepo(octokit, owner, repo) {
3792
+ await octokit.rest.repos.delete({ owner, repo });
3793
+ }
3794
+
3795
+ // src/index.tsx
3796
+ import { jsx, jsxs } from "react/jsx-runtime";
3797
+ function getToken() {
3798
+ try {
3799
+ return execSync("gh auth token", { stdio: ["pipe", "pipe", "pipe"] }).toString().trim();
3800
+ } catch {
3801
+ }
3802
+ if (process.env.GITHUB_TOKEN) {
3803
+ return process.env.GITHUB_TOKEN;
3804
+ }
3805
+ console.error(
3806
+ "No GitHub token found. Install the gh CLI and run `gh auth login`, or set GITHUB_TOKEN."
3807
+ );
3808
+ process.exit(1);
3809
+ }
3810
+ function openUrl(url) {
3811
+ try {
3812
+ const cmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
3813
+ execSync(`${cmd} "${url}"`);
3814
+ } catch {
3815
+ }
3816
+ }
3817
+ function formatDate(iso) {
3818
+ return new Date(iso).toLocaleDateString("en-US", {
3819
+ month: "short",
3820
+ year: "numeric"
3821
+ });
3822
+ }
3823
+ var FILTERS = ["all", "public", "private", "sources", "forks", "archived"];
3824
+ function applyFilter(repos, filter) {
3825
+ switch (filter) {
3826
+ case "all":
3827
+ return repos.filter((r) => !r.isArchived);
3828
+ case "public":
3829
+ return repos.filter((r) => !r.isArchived && r.visibility === "public");
3830
+ case "private":
3831
+ return repos.filter((r) => !r.isArchived && r.visibility === "private");
3832
+ case "sources":
3833
+ return repos.filter((r) => !r.isArchived && !r.isFork);
3834
+ case "forks":
3835
+ return repos.filter((r) => !r.isArchived && r.isFork);
3836
+ case "archived":
3837
+ return repos.filter((r) => r.isArchived);
3838
+ }
3839
+ }
3840
+ function Header({
3841
+ current,
3842
+ total,
3843
+ filter
3844
+ }) {
3845
+ return /* @__PURE__ */ jsxs(Box, { justifyContent: "space-between", children: [
3846
+ /* @__PURE__ */ jsxs(Box, { gap: 1, children: [
3847
+ /* @__PURE__ */ jsx(Text, { bold: true, children: "gh-sweep" }),
3848
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
3849
+ "[",
3850
+ filter,
3851
+ "]"
3852
+ ] })
3853
+ ] }),
3854
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
3855
+ current,
3856
+ "/",
3857
+ total
3858
+ ] })
3859
+ ] });
3860
+ }
3861
+ function calcWidths(repos) {
3862
+ if (repos.length === 0) {
3863
+ return { name: 0, vis: 0, stars: 0, date: 0, lang: 0 };
3864
+ }
3865
+ return {
3866
+ name: Math.max(...repos.map((r) => r.nameWithOwner.length)),
3867
+ vis: Math.max(...repos.map((r) => r.visibility.length)),
3868
+ stars: Math.max(...repos.map((r) => String(r.stars).length)),
3869
+ date: Math.max(...repos.map((r) => formatDate(r.updatedAt).length)),
3870
+ lang: Math.max(...repos.map((r) => (r.language ?? "").length))
3871
+ };
3872
+ }
3873
+ function RepoListItem({
3874
+ repo,
3875
+ status,
3876
+ isCurrent,
3877
+ widths
3878
+ }) {
3879
+ const cols = [
3880
+ repo.nameWithOwner.padEnd(widths.name),
3881
+ repo.visibility.toUpperCase().padEnd(widths.vis),
3882
+ (repo.isFork ? "FORK" : "").padEnd(4),
3883
+ ("\u2605" + String(repo.stars)).padStart(widths.stars + 1),
3884
+ formatDate(repo.updatedAt).padEnd(widths.date),
3885
+ (repo.language ?? "").padEnd(widths.lang)
3886
+ ].join(" ");
3887
+ const isPending = status === "archiving..." || status === "deleting..." || status === "unarchiving...";
3888
+ const isError = status === "error";
3889
+ return /* @__PURE__ */ jsxs(Box, { children: [
3890
+ /* @__PURE__ */ jsx(Text, { color: isCurrent ? "cyan" : void 0, bold: isCurrent, children: isCurrent ? "\u276F " : " " }),
3891
+ /* @__PURE__ */ jsx(Text, { bold: isCurrent, dimColor: !isCurrent, children: cols }),
3892
+ status && /* @__PURE__ */ jsxs(Text, { color: isError ? "red" : isPending ? "gray" : "yellow", children: [
3893
+ " ",
3894
+ isPending ? status : `\u2192 ${status}`
3895
+ ] })
3896
+ ] });
3897
+ }
3898
+ function RepoDetail({ repo }) {
3899
+ return /* @__PURE__ */ jsxs(
3900
+ Box,
3901
+ {
3902
+ borderStyle: "round",
3903
+ paddingX: 2,
3904
+ paddingY: 1,
3905
+ flexDirection: "column",
3906
+ gap: 1,
3907
+ children: [
3908
+ /* @__PURE__ */ jsx(Text, { bold: true, children: repo.nameWithOwner }),
3909
+ /* @__PURE__ */ jsx(Text, { wrap: "truncate", children: repo.description ?? " " }),
3910
+ /* @__PURE__ */ jsxs(Box, { gap: 2, children: [
3911
+ /* @__PURE__ */ jsx(Text, { dimColor: true, children: repo.visibility.toUpperCase() }),
3912
+ repo.isFork && /* @__PURE__ */ jsx(Text, { color: "yellow", children: "FORK" }),
3913
+ repo.isArchived && /* @__PURE__ */ jsx(Text, { color: "gray", children: "ARCHIVED" }),
3914
+ /* @__PURE__ */ jsxs(Text, { dimColor: true, children: [
3915
+ "\u2605",
3916
+ repo.stars
3917
+ ] }),
3918
+ /* @__PURE__ */ jsx(Text, { dimColor: true, children: formatDate(repo.updatedAt) }),
3919
+ repo.language && /* @__PURE__ */ jsx(Text, { dimColor: true, children: repo.language })
3920
+ ] })
3921
+ ]
3922
+ }
3923
+ );
3924
+ }
3925
+ function FilterPicker({
3926
+ current,
3927
+ selected
3928
+ }) {
3929
+ return /* @__PURE__ */ jsxs(
3930
+ Box,
3931
+ {
3932
+ borderStyle: "round",
3933
+ flexDirection: "column",
3934
+ paddingX: 2,
3935
+ paddingY: 1,
3936
+ children: [
3937
+ /* @__PURE__ */ jsx(Text, { bold: true, children: " Select type" }),
3938
+ /* @__PURE__ */ jsx(Text, { children: " " }),
3939
+ FILTERS.map((f, i) => /* @__PURE__ */ jsx(Text, { color: i === selected ? "cyan" : void 0, bold: i === selected, children: i === selected ? " \u276F " + f : " " + f }, f))
3940
+ ]
3941
+ }
3942
+ );
3943
+ }
3944
+ function ActionBar({
3945
+ status,
3946
+ filter,
3947
+ isArchivedRepo
3948
+ }) {
3949
+ const pending = status?.endsWith("...");
3950
+ const deleted = status === "deleted";
3951
+ const errored = status === "error";
3952
+ const archived = isArchivedRepo || status === "archived";
3953
+ const untouched = !status || errored;
3954
+ const actions = [
3955
+ { key: "v", label: "view", show: true },
3956
+ { key: "a", label: "archive", show: (untouched || status === "unarchived") && !archived },
3957
+ { key: "u", label: "unarchive", show: archived && !pending && !deleted },
3958
+ { key: "d", label: "delete", show: !pending && !deleted },
3959
+ { key: "s", label: "skip", show: untouched },
3960
+ { key: "f", label: "filter", show: true },
3961
+ { key: "r", label: "reload", show: true },
3962
+ { key: "q", label: "quit", show: true }
3963
+ ].filter((a) => a.show);
3964
+ return /* @__PURE__ */ jsx(Box, { gap: 2, children: actions.map((action) => /* @__PURE__ */ jsxs(Text, { children: [
3965
+ /* @__PURE__ */ jsxs(Text, { bold: true, children: [
3966
+ "(",
3967
+ action.key,
3968
+ ")"
3969
+ ] }),
3970
+ action.label.slice(1)
3971
+ ] }, action.key)) });
3972
+ }
3973
+ function App() {
3974
+ const { exit } = useApp();
3975
+ const { stdout } = useStdout();
3976
+ const termHeight = stdout.rows ?? 24;
3977
+ const [allRepos, setAllRepos] = useState([]);
3978
+ const [loading, setLoading] = useState(true);
3979
+ const [current, setCurrent] = useState(0);
3980
+ const [statuses, setStatuses] = useState(/* @__PURE__ */ new Map());
3981
+ const [filter, setFilter] = useState("all");
3982
+ const [filterOpen, setFilterOpen] = useState(false);
3983
+ const [filterSelected, setFilterSelected] = useState(0);
3984
+ const [octokit] = useState(() => createOctokit(getToken()));
3985
+ const loadRepos = useCallback(() => {
3986
+ setLoading(true);
3987
+ fetchAllRepos(octokit).then((r) => {
3988
+ setAllRepos(r);
3989
+ setLoading(false);
3990
+ });
3991
+ }, [octokit]);
3992
+ useEffect(() => {
3993
+ loadRepos();
3994
+ }, []);
3995
+ const repos = useMemo(() => applyFilter(allRepos, filter), [allRepos, filter]);
3996
+ const widths = useMemo(() => calcWidths(repos), [repos]);
3997
+ const repo = repos[current] ?? null;
3998
+ const setStatus = useCallback((repoName, status) => {
3999
+ setStatuses((prev) => new Map(prev).set(repoName, status));
4000
+ }, []);
4001
+ const findNextUnprocessed = useCallback(
4002
+ (from, currentStatuses, repoList) => {
4003
+ let idx = from + 1;
4004
+ while (idx < repoList.length && currentStatuses.has(repoList[idx].nameWithOwner)) {
4005
+ idx++;
4006
+ }
4007
+ return Math.min(idx, repoList.length - 1);
4008
+ },
4009
+ []
4010
+ );
4011
+ useInput((input, key) => {
4012
+ if (loading) return;
4013
+ if (filterOpen) {
4014
+ if (key.upArrow) {
4015
+ setFilterSelected((c) => Math.max(0, c - 1));
4016
+ return;
4017
+ }
4018
+ if (key.downArrow) {
4019
+ setFilterSelected((c) => Math.min(FILTERS.length - 1, c + 1));
4020
+ return;
4021
+ }
4022
+ if (key.return) {
4023
+ setFilter(FILTERS[filterSelected]);
4024
+ setCurrent(0);
4025
+ setFilterOpen(false);
4026
+ return;
4027
+ }
4028
+ if (key.escape || input.toLowerCase() === "f") {
4029
+ setFilterOpen(false);
4030
+ return;
4031
+ }
4032
+ return;
4033
+ }
4034
+ if (key.upArrow) {
4035
+ setCurrent((c) => Math.max(0, c - 1));
4036
+ return;
4037
+ }
4038
+ if (key.downArrow) {
4039
+ setCurrent((c) => Math.min(repos.length - 1, c + 1));
4040
+ return;
4041
+ }
4042
+ const k = input.toLowerCase();
4043
+ const r = repos[current];
4044
+ if (!r) return;
4045
+ if (k === "v") {
4046
+ openUrl(r.url);
4047
+ return;
4048
+ }
4049
+ if (k === "f") {
4050
+ setFilterSelected(FILTERS.indexOf(filter));
4051
+ setFilterOpen(true);
4052
+ return;
4053
+ }
4054
+ if (k === "r") {
4055
+ setLoading(true);
4056
+ setAllRepos([]);
4057
+ setStatuses(/* @__PURE__ */ new Map());
4058
+ setCurrent(0);
4059
+ loadRepos();
4060
+ return;
4061
+ }
4062
+ if (k === "q") {
4063
+ exit();
4064
+ return;
4065
+ }
4066
+ const [owner, name] = r.nameWithOwner.split("/");
4067
+ const repoName = r.nameWithOwner;
4068
+ const currentStatus = statuses.get(repoName);
4069
+ const pending = currentStatus === "archiving..." || currentStatus === "deleting..." || currentStatus === "unarchiving...";
4070
+ if (pending) return;
4071
+ const isArchived = r.isArchived || currentStatus === "archived";
4072
+ if (k === "s" && (!currentStatus || currentStatus === "error")) {
4073
+ setStatus(repoName, "skipped");
4074
+ const next = new Map(statuses).set(repoName, "skipped");
4075
+ setCurrent(findNextUnprocessed(current, next, repos));
4076
+ return;
4077
+ }
4078
+ if (k === "a" && !isArchived && (!currentStatus || currentStatus === "unarchived" || currentStatus === "error")) {
4079
+ setStatus(repoName, "archiving...");
4080
+ archiveRepo(octokit, owner, name).then(() => setStatus(repoName, "archived")).catch(() => setStatus(repoName, "error"));
4081
+ return;
4082
+ }
4083
+ if (k === "u" && isArchived && currentStatus !== "deleted") {
4084
+ setStatus(repoName, "unarchiving...");
4085
+ unarchiveRepo(octokit, owner, name).then(() => setStatus(repoName, "unarchived")).catch(() => setStatus(repoName, "error"));
4086
+ return;
4087
+ }
4088
+ if (k === "d" && currentStatus !== "deleted") {
4089
+ setStatus(repoName, "deleting...");
4090
+ deleteRepo(octokit, owner, name).then(() => setStatus(repoName, "deleted")).catch(() => setStatus(repoName, "error"));
4091
+ }
4092
+ });
4093
+ const listHeight = Math.max(1, termHeight - 12);
4094
+ const scrollStart = Math.max(0, current - listHeight + 1);
4095
+ const visibleRepos = repos.slice(scrollStart, scrollStart + listHeight);
4096
+ return /* @__PURE__ */ jsxs(Box, { height: termHeight, flexDirection: "column", children: [
4097
+ /* @__PURE__ */ jsx(Header, { current: current + 1, total: repos.length, filter }),
4098
+ /* @__PURE__ */ jsx(Box, { flexDirection: "column", marginTop: 1, height: listHeight, children: loading ? /* @__PURE__ */ jsx(Text, { children: "Fetching repos..." }) : repos.length === 0 ? /* @__PURE__ */ jsx(Text, { dimColor: true, children: "No repos found" }) : visibleRepos.map((r, i) => {
4099
+ const idx = scrollStart + i;
4100
+ return /* @__PURE__ */ jsx(
4101
+ RepoListItem,
4102
+ {
4103
+ repo: r,
4104
+ status: statuses.get(r.nameWithOwner),
4105
+ isCurrent: idx === current,
4106
+ widths
4107
+ },
4108
+ r.nameWithOwner
4109
+ );
4110
+ }) }),
4111
+ /* @__PURE__ */ jsx(Box, { flexGrow: 1, flexDirection: "column", justifyContent: "center", children: filterOpen ? /* @__PURE__ */ jsx(FilterPicker, { current: filter, selected: filterSelected }) : repo && /* @__PURE__ */ jsx(RepoDetail, { repo }) }),
4112
+ /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, children: filterOpen ? /* @__PURE__ */ jsx(Text, { dimColor: true, children: "\u2191\u2193 select enter confirm esc cancel" }) : /* @__PURE__ */ jsx(
4113
+ ActionBar,
4114
+ {
4115
+ status: repo ? statuses.get(repo.nameWithOwner) : void 0,
4116
+ filter,
4117
+ isArchivedRepo: repo?.isArchived ?? false
4118
+ }
4119
+ ) })
4120
+ ] });
4121
+ }
4122
+ render(/* @__PURE__ */ jsx(App, {}));
4123
+ /*! Bundled license information:
4124
+
4125
+ @octokit/request-error/dist-src/index.js:
4126
+ (* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist *)
4127
+
4128
+ @octokit/request/dist-bundle/index.js:
4129
+ (* v8 ignore next -- @preserve *)
4130
+ (* v8 ignore else -- @preserve *)
4131
+ */