augure 0.6.0 → 0.7.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 (2) hide show
  1. package/dist/bin.js +4160 -21
  2. package/package.json +5 -4
package/dist/bin.js CHANGED
@@ -1,4 +1,125 @@
1
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/.pnpm/fast-content-type-parse@3.0.0/node_modules/fast-content-type-parse/index.js
29
+ var require_fast_content_type_parse = __commonJS({
30
+ "../../node_modules/.pnpm/fast-content-type-parse@3.0.0/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
+ });
2
123
 
3
124
  // src/bin.ts
4
125
  import { createRequire as createRequire2 } from "module";
@@ -185,6 +306,7 @@ var OpenRouterClient = class {
185
306
  }
186
307
  async chat(messages, tools) {
187
308
  this.log.debug(`Request: model=${this.model} messages=${messages.length} tools=${tools?.length ?? 0}`);
309
+ const fetchStart = Date.now();
188
310
  const response = await fetch(`${this.baseUrl}/chat/completions`, {
189
311
  method: "POST",
190
312
  headers: {
@@ -218,7 +340,7 @@ var OpenRouterClient = class {
218
340
  }
219
341
  const data = await response.json();
220
342
  const choice = data.choices[0];
221
- this.log.debug(`Response: ${response.status} ${data.usage.prompt_tokens}+${data.usage.completion_tokens} tokens`);
343
+ this.log.debug(`Response: ${response.status} ${data.usage.prompt_tokens}+${data.usage.completion_tokens} tokens in ${Date.now() - fetchStart}ms`);
222
344
  return {
223
345
  content: choice.message.content ?? "",
224
346
  toolCalls: (choice.message.tool_calls ?? []).map((tc) => {
@@ -750,6 +872,9 @@ var Agent = class {
750
872
  }
751
873
  const maxLoops = this.config.maxToolLoops ?? 10;
752
874
  let loopCount = 0;
875
+ let totalInputTokens = 0;
876
+ let totalOutputTokens = 0;
877
+ let totalToolCalls = 0;
753
878
  const toolSchemas = this.config.tools.toFunctionSchemas();
754
879
  let effectiveSchemas = toolSchemas;
755
880
  let codeModeTool;
@@ -773,6 +898,8 @@ var Agent = class {
773
898
  });
774
899
  this.log.debug(`LLM call #${loopCount + 1} (${messages.length} messages)`);
775
900
  const response = await this.config.llm.chat(messages, effectiveSchemas);
901
+ totalInputTokens += response.usage.inputTokens;
902
+ totalOutputTokens += response.usage.outputTokens;
776
903
  if (response.toolCalls.length === 0) {
777
904
  history.push({
778
905
  role: "assistant",
@@ -795,6 +922,7 @@ var Agent = class {
795
922
  success: true
796
923
  });
797
924
  }
925
+ this.log.info(`\u2500\u2500 ${totalInputTokens}+${totalOutputTokens} tokens | ${loopCount + 1} LLM calls | ${totalToolCalls} tool calls | ${Date.now() - start}ms`);
798
926
  if (this.config.ingester) {
799
927
  this.config.ingester.ingest(history).catch((err2) => this.log.error("Ingestion error:", err2));
800
928
  }
@@ -805,6 +933,7 @@ var Agent = class {
805
933
  content: response.content || "",
806
934
  toolCalls: response.toolCalls
807
935
  });
936
+ totalToolCalls += response.toolCalls.length;
808
937
  for (const toolCall of response.toolCalls) {
809
938
  const toolStart = Date.now();
810
939
  this.log.debug(`Tool: ${toolCall.name}`);
@@ -1252,8 +1381,8 @@ function registerMediaHandlers(bot, isAllowed, handlers, onRejected) {
1252
1381
  replyTo: ctx.message.reply_to_message ? String(ctx.message.reply_to_message.message_id) : void 0,
1253
1382
  attachments: [attachment]
1254
1383
  };
1255
- for (const handler of handlers) {
1256
- await handler(incoming);
1384
+ for (const handler2 of handlers) {
1385
+ await handler2(incoming);
1257
1386
  }
1258
1387
  });
1259
1388
  bot.on("message:document", async (ctx) => {
@@ -1279,8 +1408,8 @@ function registerMediaHandlers(bot, isAllowed, handlers, onRejected) {
1279
1408
  replyTo: ctx.message.reply_to_message ? String(ctx.message.reply_to_message.message_id) : void 0,
1280
1409
  attachments: [attachment]
1281
1410
  };
1282
- for (const handler of handlers) {
1283
- await handler(incoming);
1411
+ for (const handler2 of handlers) {
1412
+ await handler2(incoming);
1284
1413
  }
1285
1414
  });
1286
1415
  }
@@ -1314,8 +1443,8 @@ var TelegramChannel = class {
1314
1443
  timestamp: new Date(ctx.message.date * 1e3),
1315
1444
  replyTo: ctx.message.reply_to_message ? String(ctx.message.reply_to_message.message_id) : void 0
1316
1445
  };
1317
- for (const handler of this.handlers) {
1318
- await handler(incoming);
1446
+ for (const handler2 of this.handlers) {
1447
+ await handler2(incoming);
1319
1448
  }
1320
1449
  });
1321
1450
  registerMediaHandlers(this.bot, (id) => this.isUserAllowed(id), this.handlers, (userId, ts) => this.handleRejected(userId, Math.floor(ts.getTime() / 1e3), config.rejectMessage));
@@ -1344,8 +1473,8 @@ var TelegramChannel = class {
1344
1473
  });
1345
1474
  }
1346
1475
  }
1347
- onMessage(handler) {
1348
- this.handlers.push(handler);
1476
+ onMessage(handler2) {
1477
+ this.handlers.push(handler2);
1349
1478
  }
1350
1479
  async start() {
1351
1480
  await this.bot.start();
@@ -2216,6 +2345,4006 @@ ${result.stderr}`);
2216
2345
  }
2217
2346
  };
2218
2347
 
2348
+ // ../../node_modules/.pnpm/universal-user-agent@7.0.3/node_modules/universal-user-agent/index.js
2349
+ function getUserAgent() {
2350
+ if (typeof navigator === "object" && "userAgent" in navigator) {
2351
+ return navigator.userAgent;
2352
+ }
2353
+ if (typeof process === "object" && process.version !== void 0) {
2354
+ return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;
2355
+ }
2356
+ return "<environment undetectable>";
2357
+ }
2358
+
2359
+ // ../../node_modules/.pnpm/before-after-hook@4.0.0/node_modules/before-after-hook/lib/register.js
2360
+ function register(state, name, method, options) {
2361
+ if (typeof method !== "function") {
2362
+ throw new Error("method for before hook must be a function");
2363
+ }
2364
+ if (!options) {
2365
+ options = {};
2366
+ }
2367
+ if (Array.isArray(name)) {
2368
+ return name.reverse().reduce((callback, name2) => {
2369
+ return register.bind(null, state, name2, callback, options);
2370
+ }, method)();
2371
+ }
2372
+ return Promise.resolve().then(() => {
2373
+ if (!state.registry[name]) {
2374
+ return method(options);
2375
+ }
2376
+ return state.registry[name].reduce((method2, registered) => {
2377
+ return registered.hook.bind(null, method2, options);
2378
+ }, method)();
2379
+ });
2380
+ }
2381
+
2382
+ // ../../node_modules/.pnpm/before-after-hook@4.0.0/node_modules/before-after-hook/lib/add.js
2383
+ function addHook(state, kind, name, hook2) {
2384
+ const orig = hook2;
2385
+ if (!state.registry[name]) {
2386
+ state.registry[name] = [];
2387
+ }
2388
+ if (kind === "before") {
2389
+ hook2 = (method, options) => {
2390
+ return Promise.resolve().then(orig.bind(null, options)).then(method.bind(null, options));
2391
+ };
2392
+ }
2393
+ if (kind === "after") {
2394
+ hook2 = (method, options) => {
2395
+ let result;
2396
+ return Promise.resolve().then(method.bind(null, options)).then((result_) => {
2397
+ result = result_;
2398
+ return orig(result, options);
2399
+ }).then(() => {
2400
+ return result;
2401
+ });
2402
+ };
2403
+ }
2404
+ if (kind === "error") {
2405
+ hook2 = (method, options) => {
2406
+ return Promise.resolve().then(method.bind(null, options)).catch((error) => {
2407
+ return orig(error, options);
2408
+ });
2409
+ };
2410
+ }
2411
+ state.registry[name].push({
2412
+ hook: hook2,
2413
+ orig
2414
+ });
2415
+ }
2416
+
2417
+ // ../../node_modules/.pnpm/before-after-hook@4.0.0/node_modules/before-after-hook/lib/remove.js
2418
+ function removeHook(state, name, method) {
2419
+ if (!state.registry[name]) {
2420
+ return;
2421
+ }
2422
+ const index = state.registry[name].map((registered) => {
2423
+ return registered.orig;
2424
+ }).indexOf(method);
2425
+ if (index === -1) {
2426
+ return;
2427
+ }
2428
+ state.registry[name].splice(index, 1);
2429
+ }
2430
+
2431
+ // ../../node_modules/.pnpm/before-after-hook@4.0.0/node_modules/before-after-hook/index.js
2432
+ var bind = Function.bind;
2433
+ var bindable = bind.bind(bind);
2434
+ function bindApi(hook2, state, name) {
2435
+ const removeHookRef = bindable(removeHook, null).apply(
2436
+ null,
2437
+ name ? [state, name] : [state]
2438
+ );
2439
+ hook2.api = { remove: removeHookRef };
2440
+ hook2.remove = removeHookRef;
2441
+ ["before", "error", "after", "wrap"].forEach((kind) => {
2442
+ const args = name ? [state, kind, name] : [state, kind];
2443
+ hook2[kind] = hook2.api[kind] = bindable(addHook, null).apply(null, args);
2444
+ });
2445
+ }
2446
+ function Singular() {
2447
+ const singularHookName = /* @__PURE__ */ Symbol("Singular");
2448
+ const singularHookState = {
2449
+ registry: {}
2450
+ };
2451
+ const singularHook = register.bind(null, singularHookState, singularHookName);
2452
+ bindApi(singularHook, singularHookState, singularHookName);
2453
+ return singularHook;
2454
+ }
2455
+ function Collection() {
2456
+ const state = {
2457
+ registry: {}
2458
+ };
2459
+ const hook2 = register.bind(null, state);
2460
+ bindApi(hook2, state);
2461
+ return hook2;
2462
+ }
2463
+ var before_after_hook_default = { Singular, Collection };
2464
+
2465
+ // ../../node_modules/.pnpm/@octokit+endpoint@11.0.3/node_modules/@octokit/endpoint/dist-bundle/index.js
2466
+ var VERSION = "0.0.0-development";
2467
+ var userAgent = `octokit-endpoint.js/${VERSION} ${getUserAgent()}`;
2468
+ var DEFAULTS = {
2469
+ method: "GET",
2470
+ baseUrl: "https://api.github.com",
2471
+ headers: {
2472
+ accept: "application/vnd.github.v3+json",
2473
+ "user-agent": userAgent
2474
+ },
2475
+ mediaType: {
2476
+ format: ""
2477
+ }
2478
+ };
2479
+ function lowercaseKeys(object) {
2480
+ if (!object) {
2481
+ return {};
2482
+ }
2483
+ return Object.keys(object).reduce((newObj, key) => {
2484
+ newObj[key.toLowerCase()] = object[key];
2485
+ return newObj;
2486
+ }, {});
2487
+ }
2488
+ function isPlainObject(value) {
2489
+ if (typeof value !== "object" || value === null) return false;
2490
+ if (Object.prototype.toString.call(value) !== "[object Object]") return false;
2491
+ const proto = Object.getPrototypeOf(value);
2492
+ if (proto === null) return true;
2493
+ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
2494
+ return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
2495
+ }
2496
+ function mergeDeep(defaults, options) {
2497
+ const result = Object.assign({}, defaults);
2498
+ Object.keys(options).forEach((key) => {
2499
+ if (isPlainObject(options[key])) {
2500
+ if (!(key in defaults)) Object.assign(result, { [key]: options[key] });
2501
+ else result[key] = mergeDeep(defaults[key], options[key]);
2502
+ } else {
2503
+ Object.assign(result, { [key]: options[key] });
2504
+ }
2505
+ });
2506
+ return result;
2507
+ }
2508
+ function removeUndefinedProperties(obj) {
2509
+ for (const key in obj) {
2510
+ if (obj[key] === void 0) {
2511
+ delete obj[key];
2512
+ }
2513
+ }
2514
+ return obj;
2515
+ }
2516
+ function merge(defaults, route, options) {
2517
+ if (typeof route === "string") {
2518
+ let [method, url] = route.split(" ");
2519
+ options = Object.assign(url ? { method, url } : { url: method }, options);
2520
+ } else {
2521
+ options = Object.assign({}, route);
2522
+ }
2523
+ options.headers = lowercaseKeys(options.headers);
2524
+ removeUndefinedProperties(options);
2525
+ removeUndefinedProperties(options.headers);
2526
+ const mergedOptions = mergeDeep(defaults || {}, options);
2527
+ if (options.url === "/graphql") {
2528
+ if (defaults && defaults.mediaType.previews?.length) {
2529
+ mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(
2530
+ (preview) => !mergedOptions.mediaType.previews.includes(preview)
2531
+ ).concat(mergedOptions.mediaType.previews);
2532
+ }
2533
+ mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, ""));
2534
+ }
2535
+ return mergedOptions;
2536
+ }
2537
+ function addQueryParameters(url, parameters) {
2538
+ const separator = /\?/.test(url) ? "&" : "?";
2539
+ const names = Object.keys(parameters);
2540
+ if (names.length === 0) {
2541
+ return url;
2542
+ }
2543
+ return url + separator + names.map((name) => {
2544
+ if (name === "q") {
2545
+ return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+");
2546
+ }
2547
+ return `${name}=${encodeURIComponent(parameters[name])}`;
2548
+ }).join("&");
2549
+ }
2550
+ var urlVariableRegex = /\{[^{}}]+\}/g;
2551
+ function removeNonChars(variableName) {
2552
+ return variableName.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g, "").split(/,/);
2553
+ }
2554
+ function extractUrlVariableNames(url) {
2555
+ const matches = url.match(urlVariableRegex);
2556
+ if (!matches) {
2557
+ return [];
2558
+ }
2559
+ return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);
2560
+ }
2561
+ function omit(object, keysToOmit) {
2562
+ const result = { __proto__: null };
2563
+ for (const key of Object.keys(object)) {
2564
+ if (keysToOmit.indexOf(key) === -1) {
2565
+ result[key] = object[key];
2566
+ }
2567
+ }
2568
+ return result;
2569
+ }
2570
+ function encodeReserved(str) {
2571
+ return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {
2572
+ if (!/%[0-9A-Fa-f]/.test(part)) {
2573
+ part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
2574
+ }
2575
+ return part;
2576
+ }).join("");
2577
+ }
2578
+ function encodeUnreserved(str) {
2579
+ return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
2580
+ return "%" + c.charCodeAt(0).toString(16).toUpperCase();
2581
+ });
2582
+ }
2583
+ function encodeValue(operator, value, key) {
2584
+ value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value);
2585
+ if (key) {
2586
+ return encodeUnreserved(key) + "=" + value;
2587
+ } else {
2588
+ return value;
2589
+ }
2590
+ }
2591
+ function isDefined(value) {
2592
+ return value !== void 0 && value !== null;
2593
+ }
2594
+ function isKeyOperator(operator) {
2595
+ return operator === ";" || operator === "&" || operator === "?";
2596
+ }
2597
+ function getValues(context, operator, key, modifier) {
2598
+ var value = context[key], result = [];
2599
+ if (isDefined(value) && value !== "") {
2600
+ if (typeof value === "string" || typeof value === "number" || typeof value === "bigint" || typeof value === "boolean") {
2601
+ value = value.toString();
2602
+ if (modifier && modifier !== "*") {
2603
+ value = value.substring(0, parseInt(modifier, 10));
2604
+ }
2605
+ result.push(
2606
+ encodeValue(operator, value, isKeyOperator(operator) ? key : "")
2607
+ );
2608
+ } else {
2609
+ if (modifier === "*") {
2610
+ if (Array.isArray(value)) {
2611
+ value.filter(isDefined).forEach(function(value2) {
2612
+ result.push(
2613
+ encodeValue(operator, value2, isKeyOperator(operator) ? key : "")
2614
+ );
2615
+ });
2616
+ } else {
2617
+ Object.keys(value).forEach(function(k) {
2618
+ if (isDefined(value[k])) {
2619
+ result.push(encodeValue(operator, value[k], k));
2620
+ }
2621
+ });
2622
+ }
2623
+ } else {
2624
+ const tmp = [];
2625
+ if (Array.isArray(value)) {
2626
+ value.filter(isDefined).forEach(function(value2) {
2627
+ tmp.push(encodeValue(operator, value2));
2628
+ });
2629
+ } else {
2630
+ Object.keys(value).forEach(function(k) {
2631
+ if (isDefined(value[k])) {
2632
+ tmp.push(encodeUnreserved(k));
2633
+ tmp.push(encodeValue(operator, value[k].toString()));
2634
+ }
2635
+ });
2636
+ }
2637
+ if (isKeyOperator(operator)) {
2638
+ result.push(encodeUnreserved(key) + "=" + tmp.join(","));
2639
+ } else if (tmp.length !== 0) {
2640
+ result.push(tmp.join(","));
2641
+ }
2642
+ }
2643
+ }
2644
+ } else {
2645
+ if (operator === ";") {
2646
+ if (isDefined(value)) {
2647
+ result.push(encodeUnreserved(key));
2648
+ }
2649
+ } else if (value === "" && (operator === "&" || operator === "?")) {
2650
+ result.push(encodeUnreserved(key) + "=");
2651
+ } else if (value === "") {
2652
+ result.push("");
2653
+ }
2654
+ }
2655
+ return result;
2656
+ }
2657
+ function parseUrl(template) {
2658
+ return {
2659
+ expand: expand.bind(null, template)
2660
+ };
2661
+ }
2662
+ function expand(template, context) {
2663
+ var operators = ["+", "#", ".", "/", ";", "?", "&"];
2664
+ template = template.replace(
2665
+ /\{([^\{\}]+)\}|([^\{\}]+)/g,
2666
+ function(_, expression, literal) {
2667
+ if (expression) {
2668
+ let operator = "";
2669
+ const values = [];
2670
+ if (operators.indexOf(expression.charAt(0)) !== -1) {
2671
+ operator = expression.charAt(0);
2672
+ expression = expression.substr(1);
2673
+ }
2674
+ expression.split(/,/g).forEach(function(variable) {
2675
+ var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
2676
+ values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
2677
+ });
2678
+ if (operator && operator !== "+") {
2679
+ var separator = ",";
2680
+ if (operator === "?") {
2681
+ separator = "&";
2682
+ } else if (operator !== "#") {
2683
+ separator = operator;
2684
+ }
2685
+ return (values.length !== 0 ? operator : "") + values.join(separator);
2686
+ } else {
2687
+ return values.join(",");
2688
+ }
2689
+ } else {
2690
+ return encodeReserved(literal);
2691
+ }
2692
+ }
2693
+ );
2694
+ if (template === "/") {
2695
+ return template;
2696
+ } else {
2697
+ return template.replace(/\/$/, "");
2698
+ }
2699
+ }
2700
+ function parse(options) {
2701
+ let method = options.method.toUpperCase();
2702
+ let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}");
2703
+ let headers = Object.assign({}, options.headers);
2704
+ let body;
2705
+ let parameters = omit(options, [
2706
+ "method",
2707
+ "baseUrl",
2708
+ "url",
2709
+ "headers",
2710
+ "request",
2711
+ "mediaType"
2712
+ ]);
2713
+ const urlVariableNames = extractUrlVariableNames(url);
2714
+ url = parseUrl(url).expand(parameters);
2715
+ if (!/^http/.test(url)) {
2716
+ url = options.baseUrl + url;
2717
+ }
2718
+ const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl");
2719
+ const remainingParameters = omit(parameters, omittedParameters);
2720
+ const isBinaryRequest = /application\/octet-stream/i.test(headers.accept);
2721
+ if (!isBinaryRequest) {
2722
+ if (options.mediaType.format) {
2723
+ headers.accept = headers.accept.split(/,/).map(
2724
+ (format) => format.replace(
2725
+ /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,
2726
+ `application/vnd$1$2.${options.mediaType.format}`
2727
+ )
2728
+ ).join(",");
2729
+ }
2730
+ if (url.endsWith("/graphql")) {
2731
+ if (options.mediaType.previews?.length) {
2732
+ const previewsFromAcceptHeader = headers.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g) || [];
2733
+ headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => {
2734
+ const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json";
2735
+ return `application/vnd.github.${preview}-preview${format}`;
2736
+ }).join(",");
2737
+ }
2738
+ }
2739
+ }
2740
+ if (["GET", "HEAD"].includes(method)) {
2741
+ url = addQueryParameters(url, remainingParameters);
2742
+ } else {
2743
+ if ("data" in remainingParameters) {
2744
+ body = remainingParameters.data;
2745
+ } else {
2746
+ if (Object.keys(remainingParameters).length) {
2747
+ body = remainingParameters;
2748
+ }
2749
+ }
2750
+ }
2751
+ if (!headers["content-type"] && typeof body !== "undefined") {
2752
+ headers["content-type"] = "application/json; charset=utf-8";
2753
+ }
2754
+ if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") {
2755
+ body = "";
2756
+ }
2757
+ return Object.assign(
2758
+ { method, url, headers },
2759
+ typeof body !== "undefined" ? { body } : null,
2760
+ options.request ? { request: options.request } : null
2761
+ );
2762
+ }
2763
+ function endpointWithDefaults(defaults, route, options) {
2764
+ return parse(merge(defaults, route, options));
2765
+ }
2766
+ function withDefaults(oldDefaults, newDefaults) {
2767
+ const DEFAULTS2 = merge(oldDefaults, newDefaults);
2768
+ const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2);
2769
+ return Object.assign(endpoint2, {
2770
+ DEFAULTS: DEFAULTS2,
2771
+ defaults: withDefaults.bind(null, DEFAULTS2),
2772
+ merge: merge.bind(null, DEFAULTS2),
2773
+ parse
2774
+ });
2775
+ }
2776
+ var endpoint = withDefaults(null, DEFAULTS);
2777
+
2778
+ // ../../node_modules/.pnpm/@octokit+request@10.0.8/node_modules/@octokit/request/dist-bundle/index.js
2779
+ var import_fast_content_type_parse = __toESM(require_fast_content_type_parse(), 1);
2780
+
2781
+ // ../../node_modules/.pnpm/json-with-bigint@3.5.3/node_modules/json-with-bigint/json-with-bigint.js
2782
+ var noiseValue = /^-?\d+n+$/;
2783
+ var originalStringify = JSON.stringify;
2784
+ var originalParse = JSON.parse;
2785
+ var JSONStringify = (value, replacer, space) => {
2786
+ if ("rawJSON" in JSON) {
2787
+ return originalStringify(
2788
+ value,
2789
+ (key, value2) => {
2790
+ if (typeof value2 === "bigint") return JSON.rawJSON(value2.toString());
2791
+ if (typeof replacer === "function") return replacer(key, value2);
2792
+ if (Array.isArray(replacer) && replacer.includes(key)) return value2;
2793
+ return value2;
2794
+ },
2795
+ space
2796
+ );
2797
+ }
2798
+ if (!value) return originalStringify(value, replacer, space);
2799
+ const bigInts = /([\[:])?"(-?\d+)n"($|([\\n]|\s)*(\s|[\\n])*[,\}\]])/g;
2800
+ const noise = /([\[:])?("-?\d+n+)n("$|"([\\n]|\s)*(\s|[\\n])*[,\}\]])/g;
2801
+ const convertedToCustomJSON = originalStringify(
2802
+ value,
2803
+ (key, value2) => {
2804
+ const isNoise = typeof value2 === "string" && Boolean(value2.match(noiseValue));
2805
+ if (isNoise) return value2.toString() + "n";
2806
+ if (typeof value2 === "bigint") return value2.toString() + "n";
2807
+ if (typeof replacer === "function") return replacer(key, value2);
2808
+ if (Array.isArray(replacer) && replacer.includes(key)) return value2;
2809
+ return value2;
2810
+ },
2811
+ space
2812
+ );
2813
+ const processedJSON = convertedToCustomJSON.replace(bigInts, "$1$2$3");
2814
+ const denoisedJSON = processedJSON.replace(noise, "$1$2$3");
2815
+ return denoisedJSON;
2816
+ };
2817
+ var isContextSourceSupported = () => JSON.parse("1", (_, __, context) => !!context && context.source === "1");
2818
+ var JSONParseV2 = (text, reviver) => {
2819
+ const intRegex = /^-?\d+$/;
2820
+ return JSON.parse(text, (key, value, context) => {
2821
+ const isBigNumber = typeof value === "number" && (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER);
2822
+ const isInt = intRegex.test(context.source);
2823
+ const isBigInt = isBigNumber && isInt;
2824
+ if (isBigInt) return BigInt(context.source);
2825
+ if (typeof reviver !== "function") return value;
2826
+ return reviver(key, value, context);
2827
+ });
2828
+ };
2829
+ var JSONParse = (text, reviver) => {
2830
+ if (!text) return originalParse(text, reviver);
2831
+ if (isContextSourceSupported()) return JSONParseV2(text, reviver);
2832
+ const MAX_INT = Number.MAX_SAFE_INTEGER.toString();
2833
+ const MAX_DIGITS = MAX_INT.length;
2834
+ const stringsOrLargeNumbers = /"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g;
2835
+ const noiseValueWithQuotes = /^"-?\d+n+"$/;
2836
+ const customFormat = /^-?\d+n$/;
2837
+ const serializedData = text.replace(
2838
+ stringsOrLargeNumbers,
2839
+ (text2, digits, fractional, exponential) => {
2840
+ const isString = text2[0] === '"';
2841
+ const isNoise = isString && Boolean(text2.match(noiseValueWithQuotes));
2842
+ if (isNoise) return text2.substring(0, text2.length - 1) + 'n"';
2843
+ const isFractionalOrExponential = fractional || exponential;
2844
+ const isLessThanMaxSafeInt = digits && (digits.length < MAX_DIGITS || digits.length === MAX_DIGITS && digits <= MAX_INT);
2845
+ if (isString || isFractionalOrExponential || isLessThanMaxSafeInt)
2846
+ return text2;
2847
+ return '"' + text2 + 'n"';
2848
+ }
2849
+ );
2850
+ return originalParse(serializedData, (key, value, context) => {
2851
+ const isCustomFormatBigInt = typeof value === "string" && Boolean(value.match(customFormat));
2852
+ if (isCustomFormatBigInt)
2853
+ return BigInt(value.substring(0, value.length - 1));
2854
+ const isNoiseValue = typeof value === "string" && Boolean(value.match(noiseValue));
2855
+ if (isNoiseValue) return value.substring(0, value.length - 1);
2856
+ if (typeof reviver !== "function") return value;
2857
+ return reviver(key, value, context);
2858
+ });
2859
+ };
2860
+
2861
+ // ../../node_modules/.pnpm/@octokit+request-error@7.1.0/node_modules/@octokit/request-error/dist-src/index.js
2862
+ var RequestError = class extends Error {
2863
+ name;
2864
+ /**
2865
+ * http status code
2866
+ */
2867
+ status;
2868
+ /**
2869
+ * Request options that lead to the error.
2870
+ */
2871
+ request;
2872
+ /**
2873
+ * Response object if a response was received
2874
+ */
2875
+ response;
2876
+ constructor(message, statusCode, options) {
2877
+ super(message, { cause: options.cause });
2878
+ this.name = "HttpError";
2879
+ this.status = Number.parseInt(statusCode);
2880
+ if (Number.isNaN(this.status)) {
2881
+ this.status = 0;
2882
+ }
2883
+ if ("response" in options) {
2884
+ this.response = options.response;
2885
+ }
2886
+ const requestCopy = Object.assign({}, options.request);
2887
+ if (options.request.headers.authorization) {
2888
+ requestCopy.headers = Object.assign({}, options.request.headers, {
2889
+ authorization: options.request.headers.authorization.replace(
2890
+ /(?<! ) .*$/,
2891
+ " [REDACTED]"
2892
+ )
2893
+ });
2894
+ }
2895
+ requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]");
2896
+ this.request = requestCopy;
2897
+ }
2898
+ };
2899
+
2900
+ // ../../node_modules/.pnpm/@octokit+request@10.0.8/node_modules/@octokit/request/dist-bundle/index.js
2901
+ var VERSION2 = "10.0.8";
2902
+ var defaults_default = {
2903
+ headers: {
2904
+ "user-agent": `octokit-request.js/${VERSION2} ${getUserAgent()}`
2905
+ }
2906
+ };
2907
+ function isPlainObject2(value) {
2908
+ if (typeof value !== "object" || value === null) return false;
2909
+ if (Object.prototype.toString.call(value) !== "[object Object]") return false;
2910
+ const proto = Object.getPrototypeOf(value);
2911
+ if (proto === null) return true;
2912
+ const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor;
2913
+ return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value);
2914
+ }
2915
+ var noop2 = () => "";
2916
+ async function fetchWrapper(requestOptions) {
2917
+ const fetch2 = requestOptions.request?.fetch || globalThis.fetch;
2918
+ if (!fetch2) {
2919
+ throw new Error(
2920
+ "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"
2921
+ );
2922
+ }
2923
+ const log = requestOptions.request?.log || console;
2924
+ const parseSuccessResponseBody = requestOptions.request?.parseSuccessResponseBody !== false;
2925
+ const body = isPlainObject2(requestOptions.body) || Array.isArray(requestOptions.body) ? JSONStringify(requestOptions.body) : requestOptions.body;
2926
+ const requestHeaders = Object.fromEntries(
2927
+ Object.entries(requestOptions.headers).map(([name, value]) => [
2928
+ name,
2929
+ String(value)
2930
+ ])
2931
+ );
2932
+ let fetchResponse;
2933
+ try {
2934
+ fetchResponse = await fetch2(requestOptions.url, {
2935
+ method: requestOptions.method,
2936
+ body,
2937
+ redirect: requestOptions.request?.redirect,
2938
+ headers: requestHeaders,
2939
+ signal: requestOptions.request?.signal,
2940
+ // duplex must be set if request.body is ReadableStream or Async Iterables.
2941
+ // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex.
2942
+ ...requestOptions.body && { duplex: "half" }
2943
+ });
2944
+ } catch (error) {
2945
+ let message = "Unknown Error";
2946
+ if (error instanceof Error) {
2947
+ if (error.name === "AbortError") {
2948
+ error.status = 500;
2949
+ throw error;
2950
+ }
2951
+ message = error.message;
2952
+ if (error.name === "TypeError" && "cause" in error) {
2953
+ if (error.cause instanceof Error) {
2954
+ message = error.cause.message;
2955
+ } else if (typeof error.cause === "string") {
2956
+ message = error.cause;
2957
+ }
2958
+ }
2959
+ }
2960
+ const requestError = new RequestError(message, 500, {
2961
+ request: requestOptions
2962
+ });
2963
+ requestError.cause = error;
2964
+ throw requestError;
2965
+ }
2966
+ const status = fetchResponse.status;
2967
+ const url = fetchResponse.url;
2968
+ const responseHeaders = {};
2969
+ for (const [key, value] of fetchResponse.headers) {
2970
+ responseHeaders[key] = value;
2971
+ }
2972
+ const octokitResponse = {
2973
+ url,
2974
+ status,
2975
+ headers: responseHeaders,
2976
+ data: ""
2977
+ };
2978
+ if ("deprecation" in responseHeaders) {
2979
+ const matches = responseHeaders.link && responseHeaders.link.match(/<([^<>]+)>; rel="deprecation"/);
2980
+ const deprecationLink = matches && matches.pop();
2981
+ log.warn(
2982
+ `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${responseHeaders.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`
2983
+ );
2984
+ }
2985
+ if (status === 204 || status === 205) {
2986
+ return octokitResponse;
2987
+ }
2988
+ if (requestOptions.method === "HEAD") {
2989
+ if (status < 400) {
2990
+ return octokitResponse;
2991
+ }
2992
+ throw new RequestError(fetchResponse.statusText, status, {
2993
+ response: octokitResponse,
2994
+ request: requestOptions
2995
+ });
2996
+ }
2997
+ if (status === 304) {
2998
+ octokitResponse.data = await getResponseData(fetchResponse);
2999
+ throw new RequestError("Not modified", status, {
3000
+ response: octokitResponse,
3001
+ request: requestOptions
3002
+ });
3003
+ }
3004
+ if (status >= 400) {
3005
+ octokitResponse.data = await getResponseData(fetchResponse);
3006
+ throw new RequestError(toErrorMessage(octokitResponse.data), status, {
3007
+ response: octokitResponse,
3008
+ request: requestOptions
3009
+ });
3010
+ }
3011
+ octokitResponse.data = parseSuccessResponseBody ? await getResponseData(fetchResponse) : fetchResponse.body;
3012
+ return octokitResponse;
3013
+ }
3014
+ async function getResponseData(response) {
3015
+ const contentType = response.headers.get("content-type");
3016
+ if (!contentType) {
3017
+ return response.text().catch(noop2);
3018
+ }
3019
+ const mimetype = (0, import_fast_content_type_parse.safeParse)(contentType);
3020
+ if (isJSONResponse(mimetype)) {
3021
+ let text = "";
3022
+ try {
3023
+ text = await response.text();
3024
+ return JSONParse(text);
3025
+ } catch (err2) {
3026
+ return text;
3027
+ }
3028
+ } else if (mimetype.type.startsWith("text/") || mimetype.parameters.charset?.toLowerCase() === "utf-8") {
3029
+ return response.text().catch(noop2);
3030
+ } else {
3031
+ return response.arrayBuffer().catch(
3032
+ /* v8 ignore next -- @preserve */
3033
+ () => new ArrayBuffer(0)
3034
+ );
3035
+ }
3036
+ }
3037
+ function isJSONResponse(mimetype) {
3038
+ return mimetype.type === "application/json" || mimetype.type === "application/scim+json";
3039
+ }
3040
+ function toErrorMessage(data) {
3041
+ if (typeof data === "string") {
3042
+ return data;
3043
+ }
3044
+ if (data instanceof ArrayBuffer) {
3045
+ return "Unknown error";
3046
+ }
3047
+ if ("message" in data) {
3048
+ const suffix = "documentation_url" in data ? ` - ${data.documentation_url}` : "";
3049
+ return Array.isArray(data.errors) ? `${data.message}: ${data.errors.map((v) => JSON.stringify(v)).join(", ")}${suffix}` : `${data.message}${suffix}`;
3050
+ }
3051
+ return `Unknown error: ${JSON.stringify(data)}`;
3052
+ }
3053
+ function withDefaults2(oldEndpoint, newDefaults) {
3054
+ const endpoint2 = oldEndpoint.defaults(newDefaults);
3055
+ const newApi = function(route, parameters) {
3056
+ const endpointOptions = endpoint2.merge(route, parameters);
3057
+ if (!endpointOptions.request || !endpointOptions.request.hook) {
3058
+ return fetchWrapper(endpoint2.parse(endpointOptions));
3059
+ }
3060
+ const request2 = (route2, parameters2) => {
3061
+ return fetchWrapper(
3062
+ endpoint2.parse(endpoint2.merge(route2, parameters2))
3063
+ );
3064
+ };
3065
+ Object.assign(request2, {
3066
+ endpoint: endpoint2,
3067
+ defaults: withDefaults2.bind(null, endpoint2)
3068
+ });
3069
+ return endpointOptions.request.hook(request2, endpointOptions);
3070
+ };
3071
+ return Object.assign(newApi, {
3072
+ endpoint: endpoint2,
3073
+ defaults: withDefaults2.bind(null, endpoint2)
3074
+ });
3075
+ }
3076
+ var request = withDefaults2(endpoint, defaults_default);
3077
+
3078
+ // ../../node_modules/.pnpm/@octokit+graphql@9.0.3/node_modules/@octokit/graphql/dist-bundle/index.js
3079
+ var VERSION3 = "0.0.0-development";
3080
+ function _buildMessageForResponseErrors(data) {
3081
+ return `Request failed due to following response errors:
3082
+ ` + data.errors.map((e) => ` - ${e.message}`).join("\n");
3083
+ }
3084
+ var GraphqlResponseError = class extends Error {
3085
+ constructor(request2, headers, response) {
3086
+ super(_buildMessageForResponseErrors(response));
3087
+ this.request = request2;
3088
+ this.headers = headers;
3089
+ this.response = response;
3090
+ this.errors = response.errors;
3091
+ this.data = response.data;
3092
+ if (Error.captureStackTrace) {
3093
+ Error.captureStackTrace(this, this.constructor);
3094
+ }
3095
+ }
3096
+ name = "GraphqlResponseError";
3097
+ errors;
3098
+ data;
3099
+ };
3100
+ var NON_VARIABLE_OPTIONS = [
3101
+ "method",
3102
+ "baseUrl",
3103
+ "url",
3104
+ "headers",
3105
+ "request",
3106
+ "query",
3107
+ "mediaType",
3108
+ "operationName"
3109
+ ];
3110
+ var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"];
3111
+ var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/;
3112
+ function graphql(request2, query, options) {
3113
+ if (options) {
3114
+ if (typeof query === "string" && "query" in options) {
3115
+ return Promise.reject(
3116
+ new Error(`[@octokit/graphql] "query" cannot be used as variable name`)
3117
+ );
3118
+ }
3119
+ for (const key in options) {
3120
+ if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;
3121
+ return Promise.reject(
3122
+ new Error(
3123
+ `[@octokit/graphql] "${key}" cannot be used as variable name`
3124
+ )
3125
+ );
3126
+ }
3127
+ }
3128
+ const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query;
3129
+ const requestOptions = Object.keys(
3130
+ parsedOptions
3131
+ ).reduce((result, key) => {
3132
+ if (NON_VARIABLE_OPTIONS.includes(key)) {
3133
+ result[key] = parsedOptions[key];
3134
+ return result;
3135
+ }
3136
+ if (!result.variables) {
3137
+ result.variables = {};
3138
+ }
3139
+ result.variables[key] = parsedOptions[key];
3140
+ return result;
3141
+ }, {});
3142
+ const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl;
3143
+ if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {
3144
+ requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql");
3145
+ }
3146
+ return request2(requestOptions).then((response) => {
3147
+ if (response.data.errors) {
3148
+ const headers = {};
3149
+ for (const key of Object.keys(response.headers)) {
3150
+ headers[key] = response.headers[key];
3151
+ }
3152
+ throw new GraphqlResponseError(
3153
+ requestOptions,
3154
+ headers,
3155
+ response.data
3156
+ );
3157
+ }
3158
+ return response.data.data;
3159
+ });
3160
+ }
3161
+ function withDefaults3(request2, newDefaults) {
3162
+ const newRequest = request2.defaults(newDefaults);
3163
+ const newApi = (query, options) => {
3164
+ return graphql(newRequest, query, options);
3165
+ };
3166
+ return Object.assign(newApi, {
3167
+ defaults: withDefaults3.bind(null, newRequest),
3168
+ endpoint: newRequest.endpoint
3169
+ });
3170
+ }
3171
+ var graphql2 = withDefaults3(request, {
3172
+ headers: {
3173
+ "user-agent": `octokit-graphql.js/${VERSION3} ${getUserAgent()}`
3174
+ },
3175
+ method: "POST",
3176
+ url: "/graphql"
3177
+ });
3178
+ function withCustomRequest(customRequest) {
3179
+ return withDefaults3(customRequest, {
3180
+ method: "POST",
3181
+ url: "/graphql"
3182
+ });
3183
+ }
3184
+
3185
+ // ../../node_modules/.pnpm/@octokit+auth-token@6.0.0/node_modules/@octokit/auth-token/dist-bundle/index.js
3186
+ var b64url = "(?:[a-zA-Z0-9_-]+)";
3187
+ var sep = "\\.";
3188
+ var jwtRE = new RegExp(`^${b64url}${sep}${b64url}${sep}${b64url}$`);
3189
+ var isJWT = jwtRE.test.bind(jwtRE);
3190
+ async function auth(token) {
3191
+ const isApp = isJWT(token);
3192
+ const isInstallation = token.startsWith("v1.") || token.startsWith("ghs_");
3193
+ const isUserToServer = token.startsWith("ghu_");
3194
+ const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth";
3195
+ return {
3196
+ type: "token",
3197
+ token,
3198
+ tokenType
3199
+ };
3200
+ }
3201
+ function withAuthorizationPrefix(token) {
3202
+ if (token.split(/\./).length === 3) {
3203
+ return `bearer ${token}`;
3204
+ }
3205
+ return `token ${token}`;
3206
+ }
3207
+ async function hook(token, request2, route, parameters) {
3208
+ const endpoint2 = request2.endpoint.merge(
3209
+ route,
3210
+ parameters
3211
+ );
3212
+ endpoint2.headers.authorization = withAuthorizationPrefix(token);
3213
+ return request2(endpoint2);
3214
+ }
3215
+ var createTokenAuth = function createTokenAuth2(token) {
3216
+ if (!token) {
3217
+ throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");
3218
+ }
3219
+ if (typeof token !== "string") {
3220
+ throw new Error(
3221
+ "[@octokit/auth-token] Token passed to createTokenAuth is not a string"
3222
+ );
3223
+ }
3224
+ token = token.replace(/^(token|bearer) +/i, "");
3225
+ return Object.assign(auth.bind(null, token), {
3226
+ hook: hook.bind(null, token)
3227
+ });
3228
+ };
3229
+
3230
+ // ../../node_modules/.pnpm/@octokit+core@7.0.6/node_modules/@octokit/core/dist-src/version.js
3231
+ var VERSION4 = "7.0.6";
3232
+
3233
+ // ../../node_modules/.pnpm/@octokit+core@7.0.6/node_modules/@octokit/core/dist-src/index.js
3234
+ var noop3 = () => {
3235
+ };
3236
+ var consoleWarn = console.warn.bind(console);
3237
+ var consoleError = console.error.bind(console);
3238
+ function createLogger2(logger = {}) {
3239
+ if (typeof logger.debug !== "function") {
3240
+ logger.debug = noop3;
3241
+ }
3242
+ if (typeof logger.info !== "function") {
3243
+ logger.info = noop3;
3244
+ }
3245
+ if (typeof logger.warn !== "function") {
3246
+ logger.warn = consoleWarn;
3247
+ }
3248
+ if (typeof logger.error !== "function") {
3249
+ logger.error = consoleError;
3250
+ }
3251
+ return logger;
3252
+ }
3253
+ var userAgentTrail = `octokit-core.js/${VERSION4} ${getUserAgent()}`;
3254
+ var Octokit = class {
3255
+ static VERSION = VERSION4;
3256
+ static defaults(defaults) {
3257
+ const OctokitWithDefaults = class extends this {
3258
+ constructor(...args) {
3259
+ const options = args[0] || {};
3260
+ if (typeof defaults === "function") {
3261
+ super(defaults(options));
3262
+ return;
3263
+ }
3264
+ super(
3265
+ Object.assign(
3266
+ {},
3267
+ defaults,
3268
+ options,
3269
+ options.userAgent && defaults.userAgent ? {
3270
+ userAgent: `${options.userAgent} ${defaults.userAgent}`
3271
+ } : null
3272
+ )
3273
+ );
3274
+ }
3275
+ };
3276
+ return OctokitWithDefaults;
3277
+ }
3278
+ static plugins = [];
3279
+ /**
3280
+ * Attach a plugin (or many) to your Octokit instance.
3281
+ *
3282
+ * @example
3283
+ * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)
3284
+ */
3285
+ static plugin(...newPlugins) {
3286
+ const currentPlugins = this.plugins;
3287
+ const NewOctokit = class extends this {
3288
+ static plugins = currentPlugins.concat(
3289
+ newPlugins.filter((plugin) => !currentPlugins.includes(plugin))
3290
+ );
3291
+ };
3292
+ return NewOctokit;
3293
+ }
3294
+ constructor(options = {}) {
3295
+ const hook2 = new before_after_hook_default.Collection();
3296
+ const requestDefaults = {
3297
+ baseUrl: request.endpoint.DEFAULTS.baseUrl,
3298
+ headers: {},
3299
+ request: Object.assign({}, options.request, {
3300
+ // @ts-ignore internal usage only, no need to type
3301
+ hook: hook2.bind(null, "request")
3302
+ }),
3303
+ mediaType: {
3304
+ previews: [],
3305
+ format: ""
3306
+ }
3307
+ };
3308
+ requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail;
3309
+ if (options.baseUrl) {
3310
+ requestDefaults.baseUrl = options.baseUrl;
3311
+ }
3312
+ if (options.previews) {
3313
+ requestDefaults.mediaType.previews = options.previews;
3314
+ }
3315
+ if (options.timeZone) {
3316
+ requestDefaults.headers["time-zone"] = options.timeZone;
3317
+ }
3318
+ this.request = request.defaults(requestDefaults);
3319
+ this.graphql = withCustomRequest(this.request).defaults(requestDefaults);
3320
+ this.log = createLogger2(options.log);
3321
+ this.hook = hook2;
3322
+ if (!options.authStrategy) {
3323
+ if (!options.auth) {
3324
+ this.auth = async () => ({
3325
+ type: "unauthenticated"
3326
+ });
3327
+ } else {
3328
+ const auth2 = createTokenAuth(options.auth);
3329
+ hook2.wrap("request", auth2.hook);
3330
+ this.auth = auth2;
3331
+ }
3332
+ } else {
3333
+ const { authStrategy, ...otherOptions } = options;
3334
+ const auth2 = authStrategy(
3335
+ Object.assign(
3336
+ {
3337
+ request: this.request,
3338
+ log: this.log,
3339
+ // we pass the current octokit instance as well as its constructor options
3340
+ // to allow for authentication strategies that return a new octokit instance
3341
+ // that shares the same internal state as the current one. The original
3342
+ // requirement for this was the "event-octokit" authentication strategy
3343
+ // of https://github.com/probot/octokit-auth-probot.
3344
+ octokit: this,
3345
+ octokitOptions: otherOptions
3346
+ },
3347
+ options.auth
3348
+ )
3349
+ );
3350
+ hook2.wrap("request", auth2.hook);
3351
+ this.auth = auth2;
3352
+ }
3353
+ const classConstructor = this.constructor;
3354
+ for (let i = 0; i < classConstructor.plugins.length; ++i) {
3355
+ Object.assign(this, classConstructor.plugins[i](this, options));
3356
+ }
3357
+ }
3358
+ // assigned during constructor
3359
+ request;
3360
+ graphql;
3361
+ log;
3362
+ hook;
3363
+ // TODO: type `octokit.auth` based on passed options.authStrategy
3364
+ auth;
3365
+ };
3366
+
3367
+ // ../../node_modules/.pnpm/@octokit+plugin-request-log@6.0.0_@octokit+core@7.0.6/node_modules/@octokit/plugin-request-log/dist-src/version.js
3368
+ var VERSION5 = "6.0.0";
3369
+
3370
+ // ../../node_modules/.pnpm/@octokit+plugin-request-log@6.0.0_@octokit+core@7.0.6/node_modules/@octokit/plugin-request-log/dist-src/index.js
3371
+ function requestLog(octokit) {
3372
+ octokit.hook.wrap("request", (request2, options) => {
3373
+ octokit.log.debug("request", options);
3374
+ const start = Date.now();
3375
+ const requestOptions = octokit.request.endpoint.parse(options);
3376
+ const path = requestOptions.url.replace(options.baseUrl, "");
3377
+ return request2(options).then((response) => {
3378
+ const requestId = response.headers["x-github-request-id"];
3379
+ octokit.log.info(
3380
+ `${requestOptions.method} ${path} - ${response.status} with id ${requestId} in ${Date.now() - start}ms`
3381
+ );
3382
+ return response;
3383
+ }).catch((error) => {
3384
+ const requestId = error.response?.headers["x-github-request-id"] || "UNKNOWN";
3385
+ octokit.log.error(
3386
+ `${requestOptions.method} ${path} - ${error.status} with id ${requestId} in ${Date.now() - start}ms`
3387
+ );
3388
+ throw error;
3389
+ });
3390
+ });
3391
+ }
3392
+ requestLog.VERSION = VERSION5;
3393
+
3394
+ // ../../node_modules/.pnpm/@octokit+plugin-paginate-rest@14.0.0_@octokit+core@7.0.6/node_modules/@octokit/plugin-paginate-rest/dist-bundle/index.js
3395
+ var VERSION6 = "0.0.0-development";
3396
+ function normalizePaginatedListResponse(response) {
3397
+ if (!response.data) {
3398
+ return {
3399
+ ...response,
3400
+ data: []
3401
+ };
3402
+ }
3403
+ const responseNeedsNormalization = ("total_count" in response.data || "total_commits" in response.data) && !("url" in response.data);
3404
+ if (!responseNeedsNormalization) return response;
3405
+ const incompleteResults = response.data.incomplete_results;
3406
+ const repositorySelection = response.data.repository_selection;
3407
+ const totalCount = response.data.total_count;
3408
+ const totalCommits = response.data.total_commits;
3409
+ delete response.data.incomplete_results;
3410
+ delete response.data.repository_selection;
3411
+ delete response.data.total_count;
3412
+ delete response.data.total_commits;
3413
+ const namespaceKey = Object.keys(response.data)[0];
3414
+ const data = response.data[namespaceKey];
3415
+ response.data = data;
3416
+ if (typeof incompleteResults !== "undefined") {
3417
+ response.data.incomplete_results = incompleteResults;
3418
+ }
3419
+ if (typeof repositorySelection !== "undefined") {
3420
+ response.data.repository_selection = repositorySelection;
3421
+ }
3422
+ response.data.total_count = totalCount;
3423
+ response.data.total_commits = totalCommits;
3424
+ return response;
3425
+ }
3426
+ function iterator(octokit, route, parameters) {
3427
+ const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);
3428
+ const requestMethod = typeof route === "function" ? route : octokit.request;
3429
+ const method = options.method;
3430
+ const headers = options.headers;
3431
+ let url = options.url;
3432
+ return {
3433
+ [Symbol.asyncIterator]: () => ({
3434
+ async next() {
3435
+ if (!url) return { done: true };
3436
+ try {
3437
+ const response = await requestMethod({ method, url, headers });
3438
+ const normalizedResponse = normalizePaginatedListResponse(response);
3439
+ url = ((normalizedResponse.headers.link || "").match(
3440
+ /<([^<>]+)>;\s*rel="next"/
3441
+ ) || [])[1];
3442
+ if (!url && "total_commits" in normalizedResponse.data) {
3443
+ const parsedUrl = new URL(normalizedResponse.url);
3444
+ const params = parsedUrl.searchParams;
3445
+ const page = parseInt(params.get("page") || "1", 10);
3446
+ const per_page = parseInt(params.get("per_page") || "250", 10);
3447
+ if (page * per_page < normalizedResponse.data.total_commits) {
3448
+ params.set("page", String(page + 1));
3449
+ url = parsedUrl.toString();
3450
+ }
3451
+ }
3452
+ return { value: normalizedResponse };
3453
+ } catch (error) {
3454
+ if (error.status !== 409) throw error;
3455
+ url = "";
3456
+ return {
3457
+ value: {
3458
+ status: 200,
3459
+ headers: {},
3460
+ data: []
3461
+ }
3462
+ };
3463
+ }
3464
+ }
3465
+ })
3466
+ };
3467
+ }
3468
+ function paginate(octokit, route, parameters, mapFn) {
3469
+ if (typeof parameters === "function") {
3470
+ mapFn = parameters;
3471
+ parameters = void 0;
3472
+ }
3473
+ return gather(
3474
+ octokit,
3475
+ [],
3476
+ iterator(octokit, route, parameters)[Symbol.asyncIterator](),
3477
+ mapFn
3478
+ );
3479
+ }
3480
+ function gather(octokit, results, iterator2, mapFn) {
3481
+ return iterator2.next().then((result) => {
3482
+ if (result.done) {
3483
+ return results;
3484
+ }
3485
+ let earlyExit = false;
3486
+ function done() {
3487
+ earlyExit = true;
3488
+ }
3489
+ results = results.concat(
3490
+ mapFn ? mapFn(result.value, done) : result.value.data
3491
+ );
3492
+ if (earlyExit) {
3493
+ return results;
3494
+ }
3495
+ return gather(octokit, results, iterator2, mapFn);
3496
+ });
3497
+ }
3498
+ var composePaginateRest = Object.assign(paginate, {
3499
+ iterator
3500
+ });
3501
+ function paginateRest(octokit) {
3502
+ return {
3503
+ paginate: Object.assign(paginate.bind(null, octokit), {
3504
+ iterator: iterator.bind(null, octokit)
3505
+ })
3506
+ };
3507
+ }
3508
+ paginateRest.VERSION = VERSION6;
3509
+
3510
+ // ../../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@17.0.0_@octokit+core@7.0.6/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/version.js
3511
+ var VERSION7 = "17.0.0";
3512
+
3513
+ // ../../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@17.0.0_@octokit+core@7.0.6/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/generated/endpoints.js
3514
+ var Endpoints = {
3515
+ actions: {
3516
+ addCustomLabelsToSelfHostedRunnerForOrg: [
3517
+ "POST /orgs/{org}/actions/runners/{runner_id}/labels"
3518
+ ],
3519
+ addCustomLabelsToSelfHostedRunnerForRepo: [
3520
+ "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
3521
+ ],
3522
+ addRepoAccessToSelfHostedRunnerGroupInOrg: [
3523
+ "PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"
3524
+ ],
3525
+ addSelectedRepoToOrgSecret: [
3526
+ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
3527
+ ],
3528
+ addSelectedRepoToOrgVariable: [
3529
+ "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
3530
+ ],
3531
+ approveWorkflowRun: [
3532
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"
3533
+ ],
3534
+ cancelWorkflowRun: [
3535
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"
3536
+ ],
3537
+ createEnvironmentVariable: [
3538
+ "POST /repos/{owner}/{repo}/environments/{environment_name}/variables"
3539
+ ],
3540
+ createHostedRunnerForOrg: ["POST /orgs/{org}/actions/hosted-runners"],
3541
+ createOrUpdateEnvironmentSecret: [
3542
+ "PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
3543
+ ],
3544
+ createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"],
3545
+ createOrUpdateRepoSecret: [
3546
+ "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"
3547
+ ],
3548
+ createOrgVariable: ["POST /orgs/{org}/actions/variables"],
3549
+ createRegistrationTokenForOrg: [
3550
+ "POST /orgs/{org}/actions/runners/registration-token"
3551
+ ],
3552
+ createRegistrationTokenForRepo: [
3553
+ "POST /repos/{owner}/{repo}/actions/runners/registration-token"
3554
+ ],
3555
+ createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"],
3556
+ createRemoveTokenForRepo: [
3557
+ "POST /repos/{owner}/{repo}/actions/runners/remove-token"
3558
+ ],
3559
+ createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"],
3560
+ createWorkflowDispatch: [
3561
+ "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"
3562
+ ],
3563
+ deleteActionsCacheById: [
3564
+ "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"
3565
+ ],
3566
+ deleteActionsCacheByKey: [
3567
+ "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"
3568
+ ],
3569
+ deleteArtifact: [
3570
+ "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"
3571
+ ],
3572
+ deleteCustomImageFromOrg: [
3573
+ "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
3574
+ ],
3575
+ deleteCustomImageVersionFromOrg: [
3576
+ "DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
3577
+ ],
3578
+ deleteEnvironmentSecret: [
3579
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
3580
+ ],
3581
+ deleteEnvironmentVariable: [
3582
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
3583
+ ],
3584
+ deleteHostedRunnerForOrg: [
3585
+ "DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
3586
+ ],
3587
+ deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"],
3588
+ deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"],
3589
+ deleteRepoSecret: [
3590
+ "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"
3591
+ ],
3592
+ deleteRepoVariable: [
3593
+ "DELETE /repos/{owner}/{repo}/actions/variables/{name}"
3594
+ ],
3595
+ deleteSelfHostedRunnerFromOrg: [
3596
+ "DELETE /orgs/{org}/actions/runners/{runner_id}"
3597
+ ],
3598
+ deleteSelfHostedRunnerFromRepo: [
3599
+ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"
3600
+ ],
3601
+ deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],
3602
+ deleteWorkflowRunLogs: [
3603
+ "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
3604
+ ],
3605
+ disableSelectedRepositoryGithubActionsOrganization: [
3606
+ "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"
3607
+ ],
3608
+ disableWorkflow: [
3609
+ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"
3610
+ ],
3611
+ downloadArtifact: [
3612
+ "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"
3613
+ ],
3614
+ downloadJobLogsForWorkflowRun: [
3615
+ "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"
3616
+ ],
3617
+ downloadWorkflowRunAttemptLogs: [
3618
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"
3619
+ ],
3620
+ downloadWorkflowRunLogs: [
3621
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"
3622
+ ],
3623
+ enableSelectedRepositoryGithubActionsOrganization: [
3624
+ "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"
3625
+ ],
3626
+ enableWorkflow: [
3627
+ "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"
3628
+ ],
3629
+ forceCancelWorkflowRun: [
3630
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"
3631
+ ],
3632
+ generateRunnerJitconfigForOrg: [
3633
+ "POST /orgs/{org}/actions/runners/generate-jitconfig"
3634
+ ],
3635
+ generateRunnerJitconfigForRepo: [
3636
+ "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"
3637
+ ],
3638
+ getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"],
3639
+ getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"],
3640
+ getActionsCacheUsageByRepoForOrg: [
3641
+ "GET /orgs/{org}/actions/cache/usage-by-repository"
3642
+ ],
3643
+ getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"],
3644
+ getAllowedActionsOrganization: [
3645
+ "GET /orgs/{org}/actions/permissions/selected-actions"
3646
+ ],
3647
+ getAllowedActionsRepository: [
3648
+ "GET /repos/{owner}/{repo}/actions/permissions/selected-actions"
3649
+ ],
3650
+ getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],
3651
+ getCustomImageForOrg: [
3652
+ "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"
3653
+ ],
3654
+ getCustomImageVersionForOrg: [
3655
+ "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"
3656
+ ],
3657
+ getCustomOidcSubClaimForRepo: [
3658
+ "GET /repos/{owner}/{repo}/actions/oidc/customization/sub"
3659
+ ],
3660
+ getEnvironmentPublicKey: [
3661
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"
3662
+ ],
3663
+ getEnvironmentSecret: [
3664
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"
3665
+ ],
3666
+ getEnvironmentVariable: [
3667
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
3668
+ ],
3669
+ getGithubActionsDefaultWorkflowPermissionsOrganization: [
3670
+ "GET /orgs/{org}/actions/permissions/workflow"
3671
+ ],
3672
+ getGithubActionsDefaultWorkflowPermissionsRepository: [
3673
+ "GET /repos/{owner}/{repo}/actions/permissions/workflow"
3674
+ ],
3675
+ getGithubActionsPermissionsOrganization: [
3676
+ "GET /orgs/{org}/actions/permissions"
3677
+ ],
3678
+ getGithubActionsPermissionsRepository: [
3679
+ "GET /repos/{owner}/{repo}/actions/permissions"
3680
+ ],
3681
+ getHostedRunnerForOrg: [
3682
+ "GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
3683
+ ],
3684
+ getHostedRunnersGithubOwnedImagesForOrg: [
3685
+ "GET /orgs/{org}/actions/hosted-runners/images/github-owned"
3686
+ ],
3687
+ getHostedRunnersLimitsForOrg: [
3688
+ "GET /orgs/{org}/actions/hosted-runners/limits"
3689
+ ],
3690
+ getHostedRunnersMachineSpecsForOrg: [
3691
+ "GET /orgs/{org}/actions/hosted-runners/machine-sizes"
3692
+ ],
3693
+ getHostedRunnersPartnerImagesForOrg: [
3694
+ "GET /orgs/{org}/actions/hosted-runners/images/partner"
3695
+ ],
3696
+ getHostedRunnersPlatformsForOrg: [
3697
+ "GET /orgs/{org}/actions/hosted-runners/platforms"
3698
+ ],
3699
+ getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],
3700
+ getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"],
3701
+ getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"],
3702
+ getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"],
3703
+ getPendingDeploymentsForRun: [
3704
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
3705
+ ],
3706
+ getRepoPermissions: [
3707
+ "GET /repos/{owner}/{repo}/actions/permissions",
3708
+ {},
3709
+ { renamed: ["actions", "getGithubActionsPermissionsRepository"] }
3710
+ ],
3711
+ getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"],
3712
+ getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],
3713
+ getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"],
3714
+ getReviewsForRun: [
3715
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"
3716
+ ],
3717
+ getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"],
3718
+ getSelfHostedRunnerForRepo: [
3719
+ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}"
3720
+ ],
3721
+ getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],
3722
+ getWorkflowAccessToRepository: [
3723
+ "GET /repos/{owner}/{repo}/actions/permissions/access"
3724
+ ],
3725
+ getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],
3726
+ getWorkflowRunAttempt: [
3727
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"
3728
+ ],
3729
+ getWorkflowRunUsage: [
3730
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"
3731
+ ],
3732
+ getWorkflowUsage: [
3733
+ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"
3734
+ ],
3735
+ listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"],
3736
+ listCustomImageVersionsForOrg: [
3737
+ "GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"
3738
+ ],
3739
+ listCustomImagesForOrg: [
3740
+ "GET /orgs/{org}/actions/hosted-runners/images/custom"
3741
+ ],
3742
+ listEnvironmentSecrets: [
3743
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"
3744
+ ],
3745
+ listEnvironmentVariables: [
3746
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/variables"
3747
+ ],
3748
+ listGithubHostedRunnersInGroupForOrg: [
3749
+ "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"
3750
+ ],
3751
+ listHostedRunnersForOrg: ["GET /orgs/{org}/actions/hosted-runners"],
3752
+ listJobsForWorkflowRun: [
3753
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"
3754
+ ],
3755
+ listJobsForWorkflowRunAttempt: [
3756
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"
3757
+ ],
3758
+ listLabelsForSelfHostedRunnerForOrg: [
3759
+ "GET /orgs/{org}/actions/runners/{runner_id}/labels"
3760
+ ],
3761
+ listLabelsForSelfHostedRunnerForRepo: [
3762
+ "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
3763
+ ],
3764
+ listOrgSecrets: ["GET /orgs/{org}/actions/secrets"],
3765
+ listOrgVariables: ["GET /orgs/{org}/actions/variables"],
3766
+ listRepoOrganizationSecrets: [
3767
+ "GET /repos/{owner}/{repo}/actions/organization-secrets"
3768
+ ],
3769
+ listRepoOrganizationVariables: [
3770
+ "GET /repos/{owner}/{repo}/actions/organization-variables"
3771
+ ],
3772
+ listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"],
3773
+ listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"],
3774
+ listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"],
3775
+ listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"],
3776
+ listRunnerApplicationsForRepo: [
3777
+ "GET /repos/{owner}/{repo}/actions/runners/downloads"
3778
+ ],
3779
+ listSelectedReposForOrgSecret: [
3780
+ "GET /orgs/{org}/actions/secrets/{secret_name}/repositories"
3781
+ ],
3782
+ listSelectedReposForOrgVariable: [
3783
+ "GET /orgs/{org}/actions/variables/{name}/repositories"
3784
+ ],
3785
+ listSelectedRepositoriesEnabledGithubActionsOrganization: [
3786
+ "GET /orgs/{org}/actions/permissions/repositories"
3787
+ ],
3788
+ listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"],
3789
+ listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"],
3790
+ listWorkflowRunArtifacts: [
3791
+ "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"
3792
+ ],
3793
+ listWorkflowRuns: [
3794
+ "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"
3795
+ ],
3796
+ listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"],
3797
+ reRunJobForWorkflowRun: [
3798
+ "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"
3799
+ ],
3800
+ reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],
3801
+ reRunWorkflowFailedJobs: [
3802
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"
3803
+ ],
3804
+ removeAllCustomLabelsFromSelfHostedRunnerForOrg: [
3805
+ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels"
3806
+ ],
3807
+ removeAllCustomLabelsFromSelfHostedRunnerForRepo: [
3808
+ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
3809
+ ],
3810
+ removeCustomLabelFromSelfHostedRunnerForOrg: [
3811
+ "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"
3812
+ ],
3813
+ removeCustomLabelFromSelfHostedRunnerForRepo: [
3814
+ "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"
3815
+ ],
3816
+ removeSelectedRepoFromOrgSecret: [
3817
+ "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"
3818
+ ],
3819
+ removeSelectedRepoFromOrgVariable: [
3820
+ "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"
3821
+ ],
3822
+ reviewCustomGatesForRun: [
3823
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"
3824
+ ],
3825
+ reviewPendingDeploymentsForRun: [
3826
+ "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"
3827
+ ],
3828
+ setAllowedActionsOrganization: [
3829
+ "PUT /orgs/{org}/actions/permissions/selected-actions"
3830
+ ],
3831
+ setAllowedActionsRepository: [
3832
+ "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"
3833
+ ],
3834
+ setCustomLabelsForSelfHostedRunnerForOrg: [
3835
+ "PUT /orgs/{org}/actions/runners/{runner_id}/labels"
3836
+ ],
3837
+ setCustomLabelsForSelfHostedRunnerForRepo: [
3838
+ "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"
3839
+ ],
3840
+ setCustomOidcSubClaimForRepo: [
3841
+ "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"
3842
+ ],
3843
+ setGithubActionsDefaultWorkflowPermissionsOrganization: [
3844
+ "PUT /orgs/{org}/actions/permissions/workflow"
3845
+ ],
3846
+ setGithubActionsDefaultWorkflowPermissionsRepository: [
3847
+ "PUT /repos/{owner}/{repo}/actions/permissions/workflow"
3848
+ ],
3849
+ setGithubActionsPermissionsOrganization: [
3850
+ "PUT /orgs/{org}/actions/permissions"
3851
+ ],
3852
+ setGithubActionsPermissionsRepository: [
3853
+ "PUT /repos/{owner}/{repo}/actions/permissions"
3854
+ ],
3855
+ setSelectedReposForOrgSecret: [
3856
+ "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"
3857
+ ],
3858
+ setSelectedReposForOrgVariable: [
3859
+ "PUT /orgs/{org}/actions/variables/{name}/repositories"
3860
+ ],
3861
+ setSelectedRepositoriesEnabledGithubActionsOrganization: [
3862
+ "PUT /orgs/{org}/actions/permissions/repositories"
3863
+ ],
3864
+ setWorkflowAccessToRepository: [
3865
+ "PUT /repos/{owner}/{repo}/actions/permissions/access"
3866
+ ],
3867
+ updateEnvironmentVariable: [
3868
+ "PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"
3869
+ ],
3870
+ updateHostedRunnerForOrg: [
3871
+ "PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"
3872
+ ],
3873
+ updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"],
3874
+ updateRepoVariable: [
3875
+ "PATCH /repos/{owner}/{repo}/actions/variables/{name}"
3876
+ ]
3877
+ },
3878
+ activity: {
3879
+ checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"],
3880
+ deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"],
3881
+ deleteThreadSubscription: [
3882
+ "DELETE /notifications/threads/{thread_id}/subscription"
3883
+ ],
3884
+ getFeeds: ["GET /feeds"],
3885
+ getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"],
3886
+ getThread: ["GET /notifications/threads/{thread_id}"],
3887
+ getThreadSubscriptionForAuthenticatedUser: [
3888
+ "GET /notifications/threads/{thread_id}/subscription"
3889
+ ],
3890
+ listEventsForAuthenticatedUser: ["GET /users/{username}/events"],
3891
+ listNotificationsForAuthenticatedUser: ["GET /notifications"],
3892
+ listOrgEventsForAuthenticatedUser: [
3893
+ "GET /users/{username}/events/orgs/{org}"
3894
+ ],
3895
+ listPublicEvents: ["GET /events"],
3896
+ listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"],
3897
+ listPublicEventsForUser: ["GET /users/{username}/events/public"],
3898
+ listPublicOrgEvents: ["GET /orgs/{org}/events"],
3899
+ listReceivedEventsForUser: ["GET /users/{username}/received_events"],
3900
+ listReceivedPublicEventsForUser: [
3901
+ "GET /users/{username}/received_events/public"
3902
+ ],
3903
+ listRepoEvents: ["GET /repos/{owner}/{repo}/events"],
3904
+ listRepoNotificationsForAuthenticatedUser: [
3905
+ "GET /repos/{owner}/{repo}/notifications"
3906
+ ],
3907
+ listReposStarredByAuthenticatedUser: ["GET /user/starred"],
3908
+ listReposStarredByUser: ["GET /users/{username}/starred"],
3909
+ listReposWatchedByUser: ["GET /users/{username}/subscriptions"],
3910
+ listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"],
3911
+ listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"],
3912
+ listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"],
3913
+ markNotificationsAsRead: ["PUT /notifications"],
3914
+ markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"],
3915
+ markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"],
3916
+ markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"],
3917
+ setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"],
3918
+ setThreadSubscription: [
3919
+ "PUT /notifications/threads/{thread_id}/subscription"
3920
+ ],
3921
+ starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"],
3922
+ unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"]
3923
+ },
3924
+ apps: {
3925
+ addRepoToInstallation: [
3926
+ "PUT /user/installations/{installation_id}/repositories/{repository_id}",
3927
+ {},
3928
+ { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] }
3929
+ ],
3930
+ addRepoToInstallationForAuthenticatedUser: [
3931
+ "PUT /user/installations/{installation_id}/repositories/{repository_id}"
3932
+ ],
3933
+ checkToken: ["POST /applications/{client_id}/token"],
3934
+ createFromManifest: ["POST /app-manifests/{code}/conversions"],
3935
+ createInstallationAccessToken: [
3936
+ "POST /app/installations/{installation_id}/access_tokens"
3937
+ ],
3938
+ deleteAuthorization: ["DELETE /applications/{client_id}/grant"],
3939
+ deleteInstallation: ["DELETE /app/installations/{installation_id}"],
3940
+ deleteToken: ["DELETE /applications/{client_id}/token"],
3941
+ getAuthenticated: ["GET /app"],
3942
+ getBySlug: ["GET /apps/{app_slug}"],
3943
+ getInstallation: ["GET /app/installations/{installation_id}"],
3944
+ getOrgInstallation: ["GET /orgs/{org}/installation"],
3945
+ getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"],
3946
+ getSubscriptionPlanForAccount: [
3947
+ "GET /marketplace_listing/accounts/{account_id}"
3948
+ ],
3949
+ getSubscriptionPlanForAccountStubbed: [
3950
+ "GET /marketplace_listing/stubbed/accounts/{account_id}"
3951
+ ],
3952
+ getUserInstallation: ["GET /users/{username}/installation"],
3953
+ getWebhookConfigForApp: ["GET /app/hook/config"],
3954
+ getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"],
3955
+ listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"],
3956
+ listAccountsForPlanStubbed: [
3957
+ "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"
3958
+ ],
3959
+ listInstallationReposForAuthenticatedUser: [
3960
+ "GET /user/installations/{installation_id}/repositories"
3961
+ ],
3962
+ listInstallationRequestsForAuthenticatedApp: [
3963
+ "GET /app/installation-requests"
3964
+ ],
3965
+ listInstallations: ["GET /app/installations"],
3966
+ listInstallationsForAuthenticatedUser: ["GET /user/installations"],
3967
+ listPlans: ["GET /marketplace_listing/plans"],
3968
+ listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"],
3969
+ listReposAccessibleToInstallation: ["GET /installation/repositories"],
3970
+ listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"],
3971
+ listSubscriptionsForAuthenticatedUserStubbed: [
3972
+ "GET /user/marketplace_purchases/stubbed"
3973
+ ],
3974
+ listWebhookDeliveries: ["GET /app/hook/deliveries"],
3975
+ redeliverWebhookDelivery: [
3976
+ "POST /app/hook/deliveries/{delivery_id}/attempts"
3977
+ ],
3978
+ removeRepoFromInstallation: [
3979
+ "DELETE /user/installations/{installation_id}/repositories/{repository_id}",
3980
+ {},
3981
+ { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] }
3982
+ ],
3983
+ removeRepoFromInstallationForAuthenticatedUser: [
3984
+ "DELETE /user/installations/{installation_id}/repositories/{repository_id}"
3985
+ ],
3986
+ resetToken: ["PATCH /applications/{client_id}/token"],
3987
+ revokeInstallationAccessToken: ["DELETE /installation/token"],
3988
+ scopeToken: ["POST /applications/{client_id}/token/scoped"],
3989
+ suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"],
3990
+ unsuspendInstallation: [
3991
+ "DELETE /app/installations/{installation_id}/suspended"
3992
+ ],
3993
+ updateWebhookConfigForApp: ["PATCH /app/hook/config"]
3994
+ },
3995
+ billing: {
3996
+ getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"],
3997
+ getGithubActionsBillingUser: [
3998
+ "GET /users/{username}/settings/billing/actions"
3999
+ ],
4000
+ getGithubBillingPremiumRequestUsageReportOrg: [
4001
+ "GET /organizations/{org}/settings/billing/premium_request/usage"
4002
+ ],
4003
+ getGithubBillingPremiumRequestUsageReportUser: [
4004
+ "GET /users/{username}/settings/billing/premium_request/usage"
4005
+ ],
4006
+ getGithubBillingUsageReportOrg: [
4007
+ "GET /organizations/{org}/settings/billing/usage"
4008
+ ],
4009
+ getGithubBillingUsageReportUser: [
4010
+ "GET /users/{username}/settings/billing/usage"
4011
+ ],
4012
+ getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"],
4013
+ getGithubPackagesBillingUser: [
4014
+ "GET /users/{username}/settings/billing/packages"
4015
+ ],
4016
+ getSharedStorageBillingOrg: [
4017
+ "GET /orgs/{org}/settings/billing/shared-storage"
4018
+ ],
4019
+ getSharedStorageBillingUser: [
4020
+ "GET /users/{username}/settings/billing/shared-storage"
4021
+ ]
4022
+ },
4023
+ campaigns: {
4024
+ createCampaign: ["POST /orgs/{org}/campaigns"],
4025
+ deleteCampaign: ["DELETE /orgs/{org}/campaigns/{campaign_number}"],
4026
+ getCampaignSummary: ["GET /orgs/{org}/campaigns/{campaign_number}"],
4027
+ listOrgCampaigns: ["GET /orgs/{org}/campaigns"],
4028
+ updateCampaign: ["PATCH /orgs/{org}/campaigns/{campaign_number}"]
4029
+ },
4030
+ checks: {
4031
+ create: ["POST /repos/{owner}/{repo}/check-runs"],
4032
+ createSuite: ["POST /repos/{owner}/{repo}/check-suites"],
4033
+ get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],
4034
+ getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],
4035
+ listAnnotations: [
4036
+ "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"
4037
+ ],
4038
+ listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],
4039
+ listForSuite: [
4040
+ "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"
4041
+ ],
4042
+ listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],
4043
+ rerequestRun: [
4044
+ "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"
4045
+ ],
4046
+ rerequestSuite: [
4047
+ "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"
4048
+ ],
4049
+ setSuitesPreferences: [
4050
+ "PATCH /repos/{owner}/{repo}/check-suites/preferences"
4051
+ ],
4052
+ update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]
4053
+ },
4054
+ codeScanning: {
4055
+ commitAutofix: [
4056
+ "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"
4057
+ ],
4058
+ createAutofix: [
4059
+ "POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
4060
+ ],
4061
+ createVariantAnalysis: [
4062
+ "POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"
4063
+ ],
4064
+ deleteAnalysis: [
4065
+ "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"
4066
+ ],
4067
+ deleteCodeqlDatabase: [
4068
+ "DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
4069
+ ],
4070
+ getAlert: [
4071
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",
4072
+ {},
4073
+ { renamedParameters: { alert_id: "alert_number" } }
4074
+ ],
4075
+ getAnalysis: [
4076
+ "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"
4077
+ ],
4078
+ getAutofix: [
4079
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"
4080
+ ],
4081
+ getCodeqlDatabase: [
4082
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"
4083
+ ],
4084
+ getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"],
4085
+ getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],
4086
+ getVariantAnalysis: [
4087
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"
4088
+ ],
4089
+ getVariantAnalysisRepoTask: [
4090
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"
4091
+ ],
4092
+ listAlertInstances: [
4093
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"
4094
+ ],
4095
+ listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"],
4096
+ listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"],
4097
+ listAlertsInstances: [
4098
+ "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",
4099
+ {},
4100
+ { renamed: ["codeScanning", "listAlertInstances"] }
4101
+ ],
4102
+ listCodeqlDatabases: [
4103
+ "GET /repos/{owner}/{repo}/code-scanning/codeql/databases"
4104
+ ],
4105
+ listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"],
4106
+ updateAlert: [
4107
+ "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"
4108
+ ],
4109
+ updateDefaultSetup: [
4110
+ "PATCH /repos/{owner}/{repo}/code-scanning/default-setup"
4111
+ ],
4112
+ uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"]
4113
+ },
4114
+ codeSecurity: {
4115
+ attachConfiguration: [
4116
+ "POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"
4117
+ ],
4118
+ attachEnterpriseConfiguration: [
4119
+ "POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"
4120
+ ],
4121
+ createConfiguration: ["POST /orgs/{org}/code-security/configurations"],
4122
+ createConfigurationForEnterprise: [
4123
+ "POST /enterprises/{enterprise}/code-security/configurations"
4124
+ ],
4125
+ deleteConfiguration: [
4126
+ "DELETE /orgs/{org}/code-security/configurations/{configuration_id}"
4127
+ ],
4128
+ deleteConfigurationForEnterprise: [
4129
+ "DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
4130
+ ],
4131
+ detachConfiguration: [
4132
+ "DELETE /orgs/{org}/code-security/configurations/detach"
4133
+ ],
4134
+ getConfiguration: [
4135
+ "GET /orgs/{org}/code-security/configurations/{configuration_id}"
4136
+ ],
4137
+ getConfigurationForRepository: [
4138
+ "GET /repos/{owner}/{repo}/code-security-configuration"
4139
+ ],
4140
+ getConfigurationsForEnterprise: [
4141
+ "GET /enterprises/{enterprise}/code-security/configurations"
4142
+ ],
4143
+ getConfigurationsForOrg: ["GET /orgs/{org}/code-security/configurations"],
4144
+ getDefaultConfigurations: [
4145
+ "GET /orgs/{org}/code-security/configurations/defaults"
4146
+ ],
4147
+ getDefaultConfigurationsForEnterprise: [
4148
+ "GET /enterprises/{enterprise}/code-security/configurations/defaults"
4149
+ ],
4150
+ getRepositoriesForConfiguration: [
4151
+ "GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"
4152
+ ],
4153
+ getRepositoriesForEnterpriseConfiguration: [
4154
+ "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"
4155
+ ],
4156
+ getSingleConfigurationForEnterprise: [
4157
+ "GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
4158
+ ],
4159
+ setConfigurationAsDefault: [
4160
+ "PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"
4161
+ ],
4162
+ setConfigurationAsDefaultForEnterprise: [
4163
+ "PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"
4164
+ ],
4165
+ updateConfiguration: [
4166
+ "PATCH /orgs/{org}/code-security/configurations/{configuration_id}"
4167
+ ],
4168
+ updateEnterpriseConfiguration: [
4169
+ "PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"
4170
+ ]
4171
+ },
4172
+ codesOfConduct: {
4173
+ getAllCodesOfConduct: ["GET /codes_of_conduct"],
4174
+ getConductCode: ["GET /codes_of_conduct/{key}"]
4175
+ },
4176
+ codespaces: {
4177
+ addRepositoryForSecretForAuthenticatedUser: [
4178
+ "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
4179
+ ],
4180
+ addSelectedRepoToOrgSecret: [
4181
+ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
4182
+ ],
4183
+ checkPermissionsForDevcontainer: [
4184
+ "GET /repos/{owner}/{repo}/codespaces/permissions_check"
4185
+ ],
4186
+ codespaceMachinesForAuthenticatedUser: [
4187
+ "GET /user/codespaces/{codespace_name}/machines"
4188
+ ],
4189
+ createForAuthenticatedUser: ["POST /user/codespaces"],
4190
+ createOrUpdateOrgSecret: [
4191
+ "PUT /orgs/{org}/codespaces/secrets/{secret_name}"
4192
+ ],
4193
+ createOrUpdateRepoSecret: [
4194
+ "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
4195
+ ],
4196
+ createOrUpdateSecretForAuthenticatedUser: [
4197
+ "PUT /user/codespaces/secrets/{secret_name}"
4198
+ ],
4199
+ createWithPrForAuthenticatedUser: [
4200
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"
4201
+ ],
4202
+ createWithRepoForAuthenticatedUser: [
4203
+ "POST /repos/{owner}/{repo}/codespaces"
4204
+ ],
4205
+ deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"],
4206
+ deleteFromOrganization: [
4207
+ "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"
4208
+ ],
4209
+ deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],
4210
+ deleteRepoSecret: [
4211
+ "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
4212
+ ],
4213
+ deleteSecretForAuthenticatedUser: [
4214
+ "DELETE /user/codespaces/secrets/{secret_name}"
4215
+ ],
4216
+ exportForAuthenticatedUser: [
4217
+ "POST /user/codespaces/{codespace_name}/exports"
4218
+ ],
4219
+ getCodespacesForUserInOrg: [
4220
+ "GET /orgs/{org}/members/{username}/codespaces"
4221
+ ],
4222
+ getExportDetailsForAuthenticatedUser: [
4223
+ "GET /user/codespaces/{codespace_name}/exports/{export_id}"
4224
+ ],
4225
+ getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"],
4226
+ getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"],
4227
+ getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"],
4228
+ getPublicKeyForAuthenticatedUser: [
4229
+ "GET /user/codespaces/secrets/public-key"
4230
+ ],
4231
+ getRepoPublicKey: [
4232
+ "GET /repos/{owner}/{repo}/codespaces/secrets/public-key"
4233
+ ],
4234
+ getRepoSecret: [
4235
+ "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"
4236
+ ],
4237
+ getSecretForAuthenticatedUser: [
4238
+ "GET /user/codespaces/secrets/{secret_name}"
4239
+ ],
4240
+ listDevcontainersInRepositoryForAuthenticatedUser: [
4241
+ "GET /repos/{owner}/{repo}/codespaces/devcontainers"
4242
+ ],
4243
+ listForAuthenticatedUser: ["GET /user/codespaces"],
4244
+ listInOrganization: [
4245
+ "GET /orgs/{org}/codespaces",
4246
+ {},
4247
+ { renamedParameters: { org_id: "org" } }
4248
+ ],
4249
+ listInRepositoryForAuthenticatedUser: [
4250
+ "GET /repos/{owner}/{repo}/codespaces"
4251
+ ],
4252
+ listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"],
4253
+ listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"],
4254
+ listRepositoriesForSecretForAuthenticatedUser: [
4255
+ "GET /user/codespaces/secrets/{secret_name}/repositories"
4256
+ ],
4257
+ listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"],
4258
+ listSelectedReposForOrgSecret: [
4259
+ "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
4260
+ ],
4261
+ preFlightWithRepoForAuthenticatedUser: [
4262
+ "GET /repos/{owner}/{repo}/codespaces/new"
4263
+ ],
4264
+ publishForAuthenticatedUser: [
4265
+ "POST /user/codespaces/{codespace_name}/publish"
4266
+ ],
4267
+ removeRepositoryForSecretForAuthenticatedUser: [
4268
+ "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"
4269
+ ],
4270
+ removeSelectedRepoFromOrgSecret: [
4271
+ "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"
4272
+ ],
4273
+ repoMachinesForAuthenticatedUser: [
4274
+ "GET /repos/{owner}/{repo}/codespaces/machines"
4275
+ ],
4276
+ setRepositoriesForSecretForAuthenticatedUser: [
4277
+ "PUT /user/codespaces/secrets/{secret_name}/repositories"
4278
+ ],
4279
+ setSelectedReposForOrgSecret: [
4280
+ "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"
4281
+ ],
4282
+ startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"],
4283
+ stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"],
4284
+ stopInOrganization: [
4285
+ "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"
4286
+ ],
4287
+ updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"]
4288
+ },
4289
+ copilot: {
4290
+ addCopilotSeatsForTeams: [
4291
+ "POST /orgs/{org}/copilot/billing/selected_teams"
4292
+ ],
4293
+ addCopilotSeatsForUsers: [
4294
+ "POST /orgs/{org}/copilot/billing/selected_users"
4295
+ ],
4296
+ cancelCopilotSeatAssignmentForTeams: [
4297
+ "DELETE /orgs/{org}/copilot/billing/selected_teams"
4298
+ ],
4299
+ cancelCopilotSeatAssignmentForUsers: [
4300
+ "DELETE /orgs/{org}/copilot/billing/selected_users"
4301
+ ],
4302
+ copilotMetricsForOrganization: ["GET /orgs/{org}/copilot/metrics"],
4303
+ copilotMetricsForTeam: ["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],
4304
+ getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"],
4305
+ getCopilotSeatDetailsForUser: [
4306
+ "GET /orgs/{org}/members/{username}/copilot"
4307
+ ],
4308
+ listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"]
4309
+ },
4310
+ credentials: { revoke: ["POST /credentials/revoke"] },
4311
+ dependabot: {
4312
+ addSelectedRepoToOrgSecret: [
4313
+ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
4314
+ ],
4315
+ createOrUpdateOrgSecret: [
4316
+ "PUT /orgs/{org}/dependabot/secrets/{secret_name}"
4317
+ ],
4318
+ createOrUpdateRepoSecret: [
4319
+ "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
4320
+ ],
4321
+ deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],
4322
+ deleteRepoSecret: [
4323
+ "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
4324
+ ],
4325
+ getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],
4326
+ getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"],
4327
+ getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"],
4328
+ getRepoPublicKey: [
4329
+ "GET /repos/{owner}/{repo}/dependabot/secrets/public-key"
4330
+ ],
4331
+ getRepoSecret: [
4332
+ "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"
4333
+ ],
4334
+ listAlertsForEnterprise: [
4335
+ "GET /enterprises/{enterprise}/dependabot/alerts"
4336
+ ],
4337
+ listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"],
4338
+ listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"],
4339
+ listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"],
4340
+ listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"],
4341
+ listSelectedReposForOrgSecret: [
4342
+ "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
4343
+ ],
4344
+ removeSelectedRepoFromOrgSecret: [
4345
+ "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"
4346
+ ],
4347
+ repositoryAccessForOrg: [
4348
+ "GET /organizations/{org}/dependabot/repository-access"
4349
+ ],
4350
+ setRepositoryAccessDefaultLevel: [
4351
+ "PUT /organizations/{org}/dependabot/repository-access/default-level"
4352
+ ],
4353
+ setSelectedReposForOrgSecret: [
4354
+ "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"
4355
+ ],
4356
+ updateAlert: [
4357
+ "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"
4358
+ ],
4359
+ updateRepositoryAccessForOrg: [
4360
+ "PATCH /organizations/{org}/dependabot/repository-access"
4361
+ ]
4362
+ },
4363
+ dependencyGraph: {
4364
+ createRepositorySnapshot: [
4365
+ "POST /repos/{owner}/{repo}/dependency-graph/snapshots"
4366
+ ],
4367
+ diffRange: [
4368
+ "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"
4369
+ ],
4370
+ exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"]
4371
+ },
4372
+ emojis: { get: ["GET /emojis"] },
4373
+ enterpriseTeamMemberships: {
4374
+ add: [
4375
+ "PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
4376
+ ],
4377
+ bulkAdd: [
4378
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"
4379
+ ],
4380
+ bulkRemove: [
4381
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"
4382
+ ],
4383
+ get: [
4384
+ "GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
4385
+ ],
4386
+ list: ["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],
4387
+ remove: [
4388
+ "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"
4389
+ ]
4390
+ },
4391
+ enterpriseTeamOrganizations: {
4392
+ add: [
4393
+ "PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
4394
+ ],
4395
+ bulkAdd: [
4396
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"
4397
+ ],
4398
+ bulkRemove: [
4399
+ "POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"
4400
+ ],
4401
+ delete: [
4402
+ "DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
4403
+ ],
4404
+ getAssignment: [
4405
+ "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"
4406
+ ],
4407
+ getAssignments: [
4408
+ "GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"
4409
+ ]
4410
+ },
4411
+ enterpriseTeams: {
4412
+ create: ["POST /enterprises/{enterprise}/teams"],
4413
+ delete: ["DELETE /enterprises/{enterprise}/teams/{team_slug}"],
4414
+ get: ["GET /enterprises/{enterprise}/teams/{team_slug}"],
4415
+ list: ["GET /enterprises/{enterprise}/teams"],
4416
+ update: ["PATCH /enterprises/{enterprise}/teams/{team_slug}"]
4417
+ },
4418
+ gists: {
4419
+ checkIsStarred: ["GET /gists/{gist_id}/star"],
4420
+ create: ["POST /gists"],
4421
+ createComment: ["POST /gists/{gist_id}/comments"],
4422
+ delete: ["DELETE /gists/{gist_id}"],
4423
+ deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"],
4424
+ fork: ["POST /gists/{gist_id}/forks"],
4425
+ get: ["GET /gists/{gist_id}"],
4426
+ getComment: ["GET /gists/{gist_id}/comments/{comment_id}"],
4427
+ getRevision: ["GET /gists/{gist_id}/{sha}"],
4428
+ list: ["GET /gists"],
4429
+ listComments: ["GET /gists/{gist_id}/comments"],
4430
+ listCommits: ["GET /gists/{gist_id}/commits"],
4431
+ listForUser: ["GET /users/{username}/gists"],
4432
+ listForks: ["GET /gists/{gist_id}/forks"],
4433
+ listPublic: ["GET /gists/public"],
4434
+ listStarred: ["GET /gists/starred"],
4435
+ star: ["PUT /gists/{gist_id}/star"],
4436
+ unstar: ["DELETE /gists/{gist_id}/star"],
4437
+ update: ["PATCH /gists/{gist_id}"],
4438
+ updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"]
4439
+ },
4440
+ git: {
4441
+ createBlob: ["POST /repos/{owner}/{repo}/git/blobs"],
4442
+ createCommit: ["POST /repos/{owner}/{repo}/git/commits"],
4443
+ createRef: ["POST /repos/{owner}/{repo}/git/refs"],
4444
+ createTag: ["POST /repos/{owner}/{repo}/git/tags"],
4445
+ createTree: ["POST /repos/{owner}/{repo}/git/trees"],
4446
+ deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],
4447
+ getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],
4448
+ getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],
4449
+ getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"],
4450
+ getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],
4451
+ getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],
4452
+ listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],
4453
+ updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]
4454
+ },
4455
+ gitignore: {
4456
+ getAllTemplates: ["GET /gitignore/templates"],
4457
+ getTemplate: ["GET /gitignore/templates/{name}"]
4458
+ },
4459
+ hostedCompute: {
4460
+ createNetworkConfigurationForOrg: [
4461
+ "POST /orgs/{org}/settings/network-configurations"
4462
+ ],
4463
+ deleteNetworkConfigurationFromOrg: [
4464
+ "DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"
4465
+ ],
4466
+ getNetworkConfigurationForOrg: [
4467
+ "GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"
4468
+ ],
4469
+ getNetworkSettingsForOrg: [
4470
+ "GET /orgs/{org}/settings/network-settings/{network_settings_id}"
4471
+ ],
4472
+ listNetworkConfigurationsForOrg: [
4473
+ "GET /orgs/{org}/settings/network-configurations"
4474
+ ],
4475
+ updateNetworkConfigurationForOrg: [
4476
+ "PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"
4477
+ ]
4478
+ },
4479
+ interactions: {
4480
+ getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"],
4481
+ getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"],
4482
+ getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"],
4483
+ getRestrictionsForYourPublicRepos: [
4484
+ "GET /user/interaction-limits",
4485
+ {},
4486
+ { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] }
4487
+ ],
4488
+ removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"],
4489
+ removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"],
4490
+ removeRestrictionsForRepo: [
4491
+ "DELETE /repos/{owner}/{repo}/interaction-limits"
4492
+ ],
4493
+ removeRestrictionsForYourPublicRepos: [
4494
+ "DELETE /user/interaction-limits",
4495
+ {},
4496
+ { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] }
4497
+ ],
4498
+ setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"],
4499
+ setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"],
4500
+ setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"],
4501
+ setRestrictionsForYourPublicRepos: [
4502
+ "PUT /user/interaction-limits",
4503
+ {},
4504
+ { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] }
4505
+ ]
4506
+ },
4507
+ issues: {
4508
+ addAssignees: [
4509
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"
4510
+ ],
4511
+ addBlockedByDependency: [
4512
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
4513
+ ],
4514
+ addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],
4515
+ addSubIssue: [
4516
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
4517
+ ],
4518
+ checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"],
4519
+ checkUserCanBeAssignedToIssue: [
4520
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"
4521
+ ],
4522
+ create: ["POST /repos/{owner}/{repo}/issues"],
4523
+ createComment: [
4524
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/comments"
4525
+ ],
4526
+ createLabel: ["POST /repos/{owner}/{repo}/labels"],
4527
+ createMilestone: ["POST /repos/{owner}/{repo}/milestones"],
4528
+ deleteComment: [
4529
+ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"
4530
+ ],
4531
+ deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"],
4532
+ deleteMilestone: [
4533
+ "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"
4534
+ ],
4535
+ get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"],
4536
+ getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],
4537
+ getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"],
4538
+ getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"],
4539
+ getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],
4540
+ getParent: ["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],
4541
+ list: ["GET /issues"],
4542
+ listAssignees: ["GET /repos/{owner}/{repo}/assignees"],
4543
+ listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],
4544
+ listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"],
4545
+ listDependenciesBlockedBy: [
4546
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"
4547
+ ],
4548
+ listDependenciesBlocking: [
4549
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"
4550
+ ],
4551
+ listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],
4552
+ listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"],
4553
+ listEventsForTimeline: [
4554
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"
4555
+ ],
4556
+ listForAuthenticatedUser: ["GET /user/issues"],
4557
+ listForOrg: ["GET /orgs/{org}/issues"],
4558
+ listForRepo: ["GET /repos/{owner}/{repo}/issues"],
4559
+ listLabelsForMilestone: [
4560
+ "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"
4561
+ ],
4562
+ listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"],
4563
+ listLabelsOnIssue: [
4564
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/labels"
4565
+ ],
4566
+ listMilestones: ["GET /repos/{owner}/{repo}/milestones"],
4567
+ listSubIssues: [
4568
+ "GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"
4569
+ ],
4570
+ lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],
4571
+ removeAllLabels: [
4572
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"
4573
+ ],
4574
+ removeAssignees: [
4575
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"
4576
+ ],
4577
+ removeDependencyBlockedBy: [
4578
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"
4579
+ ],
4580
+ removeLabel: [
4581
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"
4582
+ ],
4583
+ removeSubIssue: [
4584
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"
4585
+ ],
4586
+ reprioritizeSubIssue: [
4587
+ "PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"
4588
+ ],
4589
+ setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],
4590
+ unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],
4591
+ update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],
4592
+ updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],
4593
+ updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"],
4594
+ updateMilestone: [
4595
+ "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"
4596
+ ]
4597
+ },
4598
+ licenses: {
4599
+ get: ["GET /licenses/{license}"],
4600
+ getAllCommonlyUsed: ["GET /licenses"],
4601
+ getForRepo: ["GET /repos/{owner}/{repo}/license"]
4602
+ },
4603
+ markdown: {
4604
+ render: ["POST /markdown"],
4605
+ renderRaw: [
4606
+ "POST /markdown/raw",
4607
+ { headers: { "content-type": "text/plain; charset=utf-8" } }
4608
+ ]
4609
+ },
4610
+ meta: {
4611
+ get: ["GET /meta"],
4612
+ getAllVersions: ["GET /versions"],
4613
+ getOctocat: ["GET /octocat"],
4614
+ getZen: ["GET /zen"],
4615
+ root: ["GET /"]
4616
+ },
4617
+ migrations: {
4618
+ deleteArchiveForAuthenticatedUser: [
4619
+ "DELETE /user/migrations/{migration_id}/archive"
4620
+ ],
4621
+ deleteArchiveForOrg: [
4622
+ "DELETE /orgs/{org}/migrations/{migration_id}/archive"
4623
+ ],
4624
+ downloadArchiveForOrg: [
4625
+ "GET /orgs/{org}/migrations/{migration_id}/archive"
4626
+ ],
4627
+ getArchiveForAuthenticatedUser: [
4628
+ "GET /user/migrations/{migration_id}/archive"
4629
+ ],
4630
+ getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"],
4631
+ getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"],
4632
+ listForAuthenticatedUser: ["GET /user/migrations"],
4633
+ listForOrg: ["GET /orgs/{org}/migrations"],
4634
+ listReposForAuthenticatedUser: [
4635
+ "GET /user/migrations/{migration_id}/repositories"
4636
+ ],
4637
+ listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"],
4638
+ listReposForUser: [
4639
+ "GET /user/migrations/{migration_id}/repositories",
4640
+ {},
4641
+ { renamed: ["migrations", "listReposForAuthenticatedUser"] }
4642
+ ],
4643
+ startForAuthenticatedUser: ["POST /user/migrations"],
4644
+ startForOrg: ["POST /orgs/{org}/migrations"],
4645
+ unlockRepoForAuthenticatedUser: [
4646
+ "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"
4647
+ ],
4648
+ unlockRepoForOrg: [
4649
+ "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"
4650
+ ]
4651
+ },
4652
+ oidc: {
4653
+ getOidcCustomSubTemplateForOrg: [
4654
+ "GET /orgs/{org}/actions/oidc/customization/sub"
4655
+ ],
4656
+ updateOidcCustomSubTemplateForOrg: [
4657
+ "PUT /orgs/{org}/actions/oidc/customization/sub"
4658
+ ]
4659
+ },
4660
+ orgs: {
4661
+ addSecurityManagerTeam: [
4662
+ "PUT /orgs/{org}/security-managers/teams/{team_slug}",
4663
+ {},
4664
+ {
4665
+ deprecated: "octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"
4666
+ }
4667
+ ],
4668
+ assignTeamToOrgRole: [
4669
+ "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
4670
+ ],
4671
+ assignUserToOrgRole: [
4672
+ "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"
4673
+ ],
4674
+ blockUser: ["PUT /orgs/{org}/blocks/{username}"],
4675
+ cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"],
4676
+ checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"],
4677
+ checkMembershipForUser: ["GET /orgs/{org}/members/{username}"],
4678
+ checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"],
4679
+ convertMemberToOutsideCollaborator: [
4680
+ "PUT /orgs/{org}/outside_collaborators/{username}"
4681
+ ],
4682
+ createArtifactStorageRecord: [
4683
+ "POST /orgs/{org}/artifacts/metadata/storage-record"
4684
+ ],
4685
+ createInvitation: ["POST /orgs/{org}/invitations"],
4686
+ createIssueType: ["POST /orgs/{org}/issue-types"],
4687
+ createWebhook: ["POST /orgs/{org}/hooks"],
4688
+ customPropertiesForOrgsCreateOrUpdateOrganizationValues: [
4689
+ "PATCH /organizations/{org}/org-properties/values"
4690
+ ],
4691
+ customPropertiesForOrgsGetOrganizationValues: [
4692
+ "GET /organizations/{org}/org-properties/values"
4693
+ ],
4694
+ customPropertiesForReposCreateOrUpdateOrganizationDefinition: [
4695
+ "PUT /orgs/{org}/properties/schema/{custom_property_name}"
4696
+ ],
4697
+ customPropertiesForReposCreateOrUpdateOrganizationDefinitions: [
4698
+ "PATCH /orgs/{org}/properties/schema"
4699
+ ],
4700
+ customPropertiesForReposCreateOrUpdateOrganizationValues: [
4701
+ "PATCH /orgs/{org}/properties/values"
4702
+ ],
4703
+ customPropertiesForReposDeleteOrganizationDefinition: [
4704
+ "DELETE /orgs/{org}/properties/schema/{custom_property_name}"
4705
+ ],
4706
+ customPropertiesForReposGetOrganizationDefinition: [
4707
+ "GET /orgs/{org}/properties/schema/{custom_property_name}"
4708
+ ],
4709
+ customPropertiesForReposGetOrganizationDefinitions: [
4710
+ "GET /orgs/{org}/properties/schema"
4711
+ ],
4712
+ customPropertiesForReposGetOrganizationValues: [
4713
+ "GET /orgs/{org}/properties/values"
4714
+ ],
4715
+ delete: ["DELETE /orgs/{org}"],
4716
+ deleteAttestationsBulk: ["POST /orgs/{org}/attestations/delete-request"],
4717
+ deleteAttestationsById: [
4718
+ "DELETE /orgs/{org}/attestations/{attestation_id}"
4719
+ ],
4720
+ deleteAttestationsBySubjectDigest: [
4721
+ "DELETE /orgs/{org}/attestations/digest/{subject_digest}"
4722
+ ],
4723
+ deleteIssueType: ["DELETE /orgs/{org}/issue-types/{issue_type_id}"],
4724
+ deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"],
4725
+ disableSelectedRepositoryImmutableReleasesOrganization: [
4726
+ "DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
4727
+ ],
4728
+ enableSelectedRepositoryImmutableReleasesOrganization: [
4729
+ "PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"
4730
+ ],
4731
+ get: ["GET /orgs/{org}"],
4732
+ getImmutableReleasesSettings: [
4733
+ "GET /orgs/{org}/settings/immutable-releases"
4734
+ ],
4735
+ getImmutableReleasesSettingsRepositories: [
4736
+ "GET /orgs/{org}/settings/immutable-releases/repositories"
4737
+ ],
4738
+ getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"],
4739
+ getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"],
4740
+ getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"],
4741
+ getOrgRulesetHistory: ["GET /orgs/{org}/rulesets/{ruleset_id}/history"],
4742
+ getOrgRulesetVersion: [
4743
+ "GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"
4744
+ ],
4745
+ getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"],
4746
+ getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"],
4747
+ getWebhookDelivery: [
4748
+ "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"
4749
+ ],
4750
+ list: ["GET /organizations"],
4751
+ listAppInstallations: ["GET /orgs/{org}/installations"],
4752
+ listArtifactStorageRecords: [
4753
+ "GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"
4754
+ ],
4755
+ listAttestationRepositories: ["GET /orgs/{org}/attestations/repositories"],
4756
+ listAttestations: ["GET /orgs/{org}/attestations/{subject_digest}"],
4757
+ listAttestationsBulk: [
4758
+ "POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"
4759
+ ],
4760
+ listBlockedUsers: ["GET /orgs/{org}/blocks"],
4761
+ listFailedInvitations: ["GET /orgs/{org}/failed_invitations"],
4762
+ listForAuthenticatedUser: ["GET /user/orgs"],
4763
+ listForUser: ["GET /users/{username}/orgs"],
4764
+ listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"],
4765
+ listIssueTypes: ["GET /orgs/{org}/issue-types"],
4766
+ listMembers: ["GET /orgs/{org}/members"],
4767
+ listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"],
4768
+ listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"],
4769
+ listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"],
4770
+ listOrgRoles: ["GET /orgs/{org}/organization-roles"],
4771
+ listOrganizationFineGrainedPermissions: [
4772
+ "GET /orgs/{org}/organization-fine-grained-permissions"
4773
+ ],
4774
+ listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"],
4775
+ listPatGrantRepositories: [
4776
+ "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"
4777
+ ],
4778
+ listPatGrantRequestRepositories: [
4779
+ "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"
4780
+ ],
4781
+ listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"],
4782
+ listPatGrants: ["GET /orgs/{org}/personal-access-tokens"],
4783
+ listPendingInvitations: ["GET /orgs/{org}/invitations"],
4784
+ listPublicMembers: ["GET /orgs/{org}/public_members"],
4785
+ listSecurityManagerTeams: [
4786
+ "GET /orgs/{org}/security-managers",
4787
+ {},
4788
+ {
4789
+ deprecated: "octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"
4790
+ }
4791
+ ],
4792
+ listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"],
4793
+ listWebhooks: ["GET /orgs/{org}/hooks"],
4794
+ pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"],
4795
+ redeliverWebhookDelivery: [
4796
+ "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
4797
+ ],
4798
+ removeMember: ["DELETE /orgs/{org}/members/{username}"],
4799
+ removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"],
4800
+ removeOutsideCollaborator: [
4801
+ "DELETE /orgs/{org}/outside_collaborators/{username}"
4802
+ ],
4803
+ removePublicMembershipForAuthenticatedUser: [
4804
+ "DELETE /orgs/{org}/public_members/{username}"
4805
+ ],
4806
+ removeSecurityManagerTeam: [
4807
+ "DELETE /orgs/{org}/security-managers/teams/{team_slug}",
4808
+ {},
4809
+ {
4810
+ deprecated: "octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"
4811
+ }
4812
+ ],
4813
+ reviewPatGrantRequest: [
4814
+ "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"
4815
+ ],
4816
+ reviewPatGrantRequestsInBulk: [
4817
+ "POST /orgs/{org}/personal-access-token-requests"
4818
+ ],
4819
+ revokeAllOrgRolesTeam: [
4820
+ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}"
4821
+ ],
4822
+ revokeAllOrgRolesUser: [
4823
+ "DELETE /orgs/{org}/organization-roles/users/{username}"
4824
+ ],
4825
+ revokeOrgRoleTeam: [
4826
+ "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"
4827
+ ],
4828
+ revokeOrgRoleUser: [
4829
+ "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"
4830
+ ],
4831
+ setImmutableReleasesSettings: [
4832
+ "PUT /orgs/{org}/settings/immutable-releases"
4833
+ ],
4834
+ setImmutableReleasesSettingsRepositories: [
4835
+ "PUT /orgs/{org}/settings/immutable-releases/repositories"
4836
+ ],
4837
+ setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"],
4838
+ setPublicMembershipForAuthenticatedUser: [
4839
+ "PUT /orgs/{org}/public_members/{username}"
4840
+ ],
4841
+ unblockUser: ["DELETE /orgs/{org}/blocks/{username}"],
4842
+ update: ["PATCH /orgs/{org}"],
4843
+ updateIssueType: ["PUT /orgs/{org}/issue-types/{issue_type_id}"],
4844
+ updateMembershipForAuthenticatedUser: [
4845
+ "PATCH /user/memberships/orgs/{org}"
4846
+ ],
4847
+ updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"],
4848
+ updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"],
4849
+ updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"],
4850
+ updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"]
4851
+ },
4852
+ packages: {
4853
+ deletePackageForAuthenticatedUser: [
4854
+ "DELETE /user/packages/{package_type}/{package_name}"
4855
+ ],
4856
+ deletePackageForOrg: [
4857
+ "DELETE /orgs/{org}/packages/{package_type}/{package_name}"
4858
+ ],
4859
+ deletePackageForUser: [
4860
+ "DELETE /users/{username}/packages/{package_type}/{package_name}"
4861
+ ],
4862
+ deletePackageVersionForAuthenticatedUser: [
4863
+ "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
4864
+ ],
4865
+ deletePackageVersionForOrg: [
4866
+ "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
4867
+ ],
4868
+ deletePackageVersionForUser: [
4869
+ "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
4870
+ ],
4871
+ getAllPackageVersionsForAPackageOwnedByAnOrg: [
4872
+ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions",
4873
+ {},
4874
+ { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] }
4875
+ ],
4876
+ getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [
4877
+ "GET /user/packages/{package_type}/{package_name}/versions",
4878
+ {},
4879
+ {
4880
+ renamed: [
4881
+ "packages",
4882
+ "getAllPackageVersionsForPackageOwnedByAuthenticatedUser"
4883
+ ]
4884
+ }
4885
+ ],
4886
+ getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [
4887
+ "GET /user/packages/{package_type}/{package_name}/versions"
4888
+ ],
4889
+ getAllPackageVersionsForPackageOwnedByOrg: [
4890
+ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions"
4891
+ ],
4892
+ getAllPackageVersionsForPackageOwnedByUser: [
4893
+ "GET /users/{username}/packages/{package_type}/{package_name}/versions"
4894
+ ],
4895
+ getPackageForAuthenticatedUser: [
4896
+ "GET /user/packages/{package_type}/{package_name}"
4897
+ ],
4898
+ getPackageForOrganization: [
4899
+ "GET /orgs/{org}/packages/{package_type}/{package_name}"
4900
+ ],
4901
+ getPackageForUser: [
4902
+ "GET /users/{username}/packages/{package_type}/{package_name}"
4903
+ ],
4904
+ getPackageVersionForAuthenticatedUser: [
4905
+ "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"
4906
+ ],
4907
+ getPackageVersionForOrganization: [
4908
+ "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"
4909
+ ],
4910
+ getPackageVersionForUser: [
4911
+ "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"
4912
+ ],
4913
+ listDockerMigrationConflictingPackagesForAuthenticatedUser: [
4914
+ "GET /user/docker/conflicts"
4915
+ ],
4916
+ listDockerMigrationConflictingPackagesForOrganization: [
4917
+ "GET /orgs/{org}/docker/conflicts"
4918
+ ],
4919
+ listDockerMigrationConflictingPackagesForUser: [
4920
+ "GET /users/{username}/docker/conflicts"
4921
+ ],
4922
+ listPackagesForAuthenticatedUser: ["GET /user/packages"],
4923
+ listPackagesForOrganization: ["GET /orgs/{org}/packages"],
4924
+ listPackagesForUser: ["GET /users/{username}/packages"],
4925
+ restorePackageForAuthenticatedUser: [
4926
+ "POST /user/packages/{package_type}/{package_name}/restore{?token}"
4927
+ ],
4928
+ restorePackageForOrg: [
4929
+ "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"
4930
+ ],
4931
+ restorePackageForUser: [
4932
+ "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"
4933
+ ],
4934
+ restorePackageVersionForAuthenticatedUser: [
4935
+ "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
4936
+ ],
4937
+ restorePackageVersionForOrg: [
4938
+ "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
4939
+ ],
4940
+ restorePackageVersionForUser: [
4941
+ "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"
4942
+ ]
4943
+ },
4944
+ privateRegistries: {
4945
+ createOrgPrivateRegistry: ["POST /orgs/{org}/private-registries"],
4946
+ deleteOrgPrivateRegistry: [
4947
+ "DELETE /orgs/{org}/private-registries/{secret_name}"
4948
+ ],
4949
+ getOrgPrivateRegistry: ["GET /orgs/{org}/private-registries/{secret_name}"],
4950
+ getOrgPublicKey: ["GET /orgs/{org}/private-registries/public-key"],
4951
+ listOrgPrivateRegistries: ["GET /orgs/{org}/private-registries"],
4952
+ updateOrgPrivateRegistry: [
4953
+ "PATCH /orgs/{org}/private-registries/{secret_name}"
4954
+ ]
4955
+ },
4956
+ projects: {
4957
+ addItemForOrg: ["POST /orgs/{org}/projectsV2/{project_number}/items"],
4958
+ addItemForUser: [
4959
+ "POST /users/{username}/projectsV2/{project_number}/items"
4960
+ ],
4961
+ deleteItemForOrg: [
4962
+ "DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
4963
+ ],
4964
+ deleteItemForUser: [
4965
+ "DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"
4966
+ ],
4967
+ getFieldForOrg: [
4968
+ "GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"
4969
+ ],
4970
+ getFieldForUser: [
4971
+ "GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"
4972
+ ],
4973
+ getForOrg: ["GET /orgs/{org}/projectsV2/{project_number}"],
4974
+ getForUser: ["GET /users/{username}/projectsV2/{project_number}"],
4975
+ getOrgItem: ["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],
4976
+ getUserItem: [
4977
+ "GET /users/{username}/projectsV2/{project_number}/items/{item_id}"
4978
+ ],
4979
+ listFieldsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/fields"],
4980
+ listFieldsForUser: [
4981
+ "GET /users/{username}/projectsV2/{project_number}/fields"
4982
+ ],
4983
+ listForOrg: ["GET /orgs/{org}/projectsV2"],
4984
+ listForUser: ["GET /users/{username}/projectsV2"],
4985
+ listItemsForOrg: ["GET /orgs/{org}/projectsV2/{project_number}/items"],
4986
+ listItemsForUser: [
4987
+ "GET /users/{username}/projectsV2/{project_number}/items"
4988
+ ],
4989
+ updateItemForOrg: [
4990
+ "PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"
4991
+ ],
4992
+ updateItemForUser: [
4993
+ "PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"
4994
+ ]
4995
+ },
4996
+ pulls: {
4997
+ checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
4998
+ create: ["POST /repos/{owner}/{repo}/pulls"],
4999
+ createReplyForReviewComment: [
5000
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"
5001
+ ],
5002
+ createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
5003
+ createReviewComment: [
5004
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"
5005
+ ],
5006
+ deletePendingReview: [
5007
+ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
5008
+ ],
5009
+ deleteReviewComment: [
5010
+ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"
5011
+ ],
5012
+ dismissReview: [
5013
+ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"
5014
+ ],
5015
+ get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"],
5016
+ getReview: [
5017
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
5018
+ ],
5019
+ getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],
5020
+ list: ["GET /repos/{owner}/{repo}/pulls"],
5021
+ listCommentsForReview: [
5022
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"
5023
+ ],
5024
+ listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],
5025
+ listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],
5026
+ listRequestedReviewers: [
5027
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
5028
+ ],
5029
+ listReviewComments: [
5030
+ "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"
5031
+ ],
5032
+ listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"],
5033
+ listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],
5034
+ merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],
5035
+ removeRequestedReviewers: [
5036
+ "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
5037
+ ],
5038
+ requestReviewers: [
5039
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"
5040
+ ],
5041
+ submitReview: [
5042
+ "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"
5043
+ ],
5044
+ update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],
5045
+ updateBranch: [
5046
+ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"
5047
+ ],
5048
+ updateReview: [
5049
+ "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"
5050
+ ],
5051
+ updateReviewComment: [
5052
+ "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"
5053
+ ]
5054
+ },
5055
+ rateLimit: { get: ["GET /rate_limit"] },
5056
+ reactions: {
5057
+ createForCommitComment: [
5058
+ "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"
5059
+ ],
5060
+ createForIssue: [
5061
+ "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"
5062
+ ],
5063
+ createForIssueComment: [
5064
+ "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
5065
+ ],
5066
+ createForPullRequestReviewComment: [
5067
+ "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
5068
+ ],
5069
+ createForRelease: [
5070
+ "POST /repos/{owner}/{repo}/releases/{release_id}/reactions"
5071
+ ],
5072
+ createForTeamDiscussionCommentInOrg: [
5073
+ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
5074
+ ],
5075
+ createForTeamDiscussionInOrg: [
5076
+ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
5077
+ ],
5078
+ deleteForCommitComment: [
5079
+ "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"
5080
+ ],
5081
+ deleteForIssue: [
5082
+ "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"
5083
+ ],
5084
+ deleteForIssueComment: [
5085
+ "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"
5086
+ ],
5087
+ deleteForPullRequestComment: [
5088
+ "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"
5089
+ ],
5090
+ deleteForRelease: [
5091
+ "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"
5092
+ ],
5093
+ deleteForTeamDiscussion: [
5094
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"
5095
+ ],
5096
+ deleteForTeamDiscussionComment: [
5097
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"
5098
+ ],
5099
+ listForCommitComment: [
5100
+ "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"
5101
+ ],
5102
+ listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],
5103
+ listForIssueComment: [
5104
+ "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"
5105
+ ],
5106
+ listForPullRequestReviewComment: [
5107
+ "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"
5108
+ ],
5109
+ listForRelease: [
5110
+ "GET /repos/{owner}/{repo}/releases/{release_id}/reactions"
5111
+ ],
5112
+ listForTeamDiscussionCommentInOrg: [
5113
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"
5114
+ ],
5115
+ listForTeamDiscussionInOrg: [
5116
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"
5117
+ ]
5118
+ },
5119
+ repos: {
5120
+ acceptInvitation: [
5121
+ "PATCH /user/repository_invitations/{invitation_id}",
5122
+ {},
5123
+ { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] }
5124
+ ],
5125
+ acceptInvitationForAuthenticatedUser: [
5126
+ "PATCH /user/repository_invitations/{invitation_id}"
5127
+ ],
5128
+ addAppAccessRestrictions: [
5129
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
5130
+ {},
5131
+ { mapToData: "apps" }
5132
+ ],
5133
+ addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"],
5134
+ addStatusCheckContexts: [
5135
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
5136
+ {},
5137
+ { mapToData: "contexts" }
5138
+ ],
5139
+ addTeamAccessRestrictions: [
5140
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
5141
+ {},
5142
+ { mapToData: "teams" }
5143
+ ],
5144
+ addUserAccessRestrictions: [
5145
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
5146
+ {},
5147
+ { mapToData: "users" }
5148
+ ],
5149
+ cancelPagesDeployment: [
5150
+ "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"
5151
+ ],
5152
+ checkAutomatedSecurityFixes: [
5153
+ "GET /repos/{owner}/{repo}/automated-security-fixes"
5154
+ ],
5155
+ checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"],
5156
+ checkImmutableReleases: ["GET /repos/{owner}/{repo}/immutable-releases"],
5157
+ checkPrivateVulnerabilityReporting: [
5158
+ "GET /repos/{owner}/{repo}/private-vulnerability-reporting"
5159
+ ],
5160
+ checkVulnerabilityAlerts: [
5161
+ "GET /repos/{owner}/{repo}/vulnerability-alerts"
5162
+ ],
5163
+ codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"],
5164
+ compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"],
5165
+ compareCommitsWithBasehead: [
5166
+ "GET /repos/{owner}/{repo}/compare/{basehead}"
5167
+ ],
5168
+ createAttestation: ["POST /repos/{owner}/{repo}/attestations"],
5169
+ createAutolink: ["POST /repos/{owner}/{repo}/autolinks"],
5170
+ createCommitComment: [
5171
+ "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"
5172
+ ],
5173
+ createCommitSignatureProtection: [
5174
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
5175
+ ],
5176
+ createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"],
5177
+ createDeployKey: ["POST /repos/{owner}/{repo}/keys"],
5178
+ createDeployment: ["POST /repos/{owner}/{repo}/deployments"],
5179
+ createDeploymentBranchPolicy: [
5180
+ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
5181
+ ],
5182
+ createDeploymentProtectionRule: [
5183
+ "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
5184
+ ],
5185
+ createDeploymentStatus: [
5186
+ "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
5187
+ ],
5188
+ createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"],
5189
+ createForAuthenticatedUser: ["POST /user/repos"],
5190
+ createFork: ["POST /repos/{owner}/{repo}/forks"],
5191
+ createInOrg: ["POST /orgs/{org}/repos"],
5192
+ createOrUpdateEnvironment: [
5193
+ "PUT /repos/{owner}/{repo}/environments/{environment_name}"
5194
+ ],
5195
+ createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"],
5196
+ createOrgRuleset: ["POST /orgs/{org}/rulesets"],
5197
+ createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"],
5198
+ createPagesSite: ["POST /repos/{owner}/{repo}/pages"],
5199
+ createRelease: ["POST /repos/{owner}/{repo}/releases"],
5200
+ createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"],
5201
+ createUsingTemplate: [
5202
+ "POST /repos/{template_owner}/{template_repo}/generate"
5203
+ ],
5204
+ createWebhook: ["POST /repos/{owner}/{repo}/hooks"],
5205
+ customPropertiesForReposCreateOrUpdateRepositoryValues: [
5206
+ "PATCH /repos/{owner}/{repo}/properties/values"
5207
+ ],
5208
+ customPropertiesForReposGetRepositoryValues: [
5209
+ "GET /repos/{owner}/{repo}/properties/values"
5210
+ ],
5211
+ declineInvitation: [
5212
+ "DELETE /user/repository_invitations/{invitation_id}",
5213
+ {},
5214
+ { renamed: ["repos", "declineInvitationForAuthenticatedUser"] }
5215
+ ],
5216
+ declineInvitationForAuthenticatedUser: [
5217
+ "DELETE /user/repository_invitations/{invitation_id}"
5218
+ ],
5219
+ delete: ["DELETE /repos/{owner}/{repo}"],
5220
+ deleteAccessRestrictions: [
5221
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
5222
+ ],
5223
+ deleteAdminBranchProtection: [
5224
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
5225
+ ],
5226
+ deleteAnEnvironment: [
5227
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}"
5228
+ ],
5229
+ deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],
5230
+ deleteBranchProtection: [
5231
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection"
5232
+ ],
5233
+ deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],
5234
+ deleteCommitSignatureProtection: [
5235
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
5236
+ ],
5237
+ deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"],
5238
+ deleteDeployment: [
5239
+ "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"
5240
+ ],
5241
+ deleteDeploymentBranchPolicy: [
5242
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
5243
+ ],
5244
+ deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"],
5245
+ deleteInvitation: [
5246
+ "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"
5247
+ ],
5248
+ deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"],
5249
+ deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"],
5250
+ deletePullRequestReviewProtection: [
5251
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
5252
+ ],
5253
+ deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"],
5254
+ deleteReleaseAsset: [
5255
+ "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"
5256
+ ],
5257
+ deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
5258
+ deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],
5259
+ disableAutomatedSecurityFixes: [
5260
+ "DELETE /repos/{owner}/{repo}/automated-security-fixes"
5261
+ ],
5262
+ disableDeploymentProtectionRule: [
5263
+ "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
5264
+ ],
5265
+ disableImmutableReleases: [
5266
+ "DELETE /repos/{owner}/{repo}/immutable-releases"
5267
+ ],
5268
+ disablePrivateVulnerabilityReporting: [
5269
+ "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"
5270
+ ],
5271
+ disableVulnerabilityAlerts: [
5272
+ "DELETE /repos/{owner}/{repo}/vulnerability-alerts"
5273
+ ],
5274
+ downloadArchive: [
5275
+ "GET /repos/{owner}/{repo}/zipball/{ref}",
5276
+ {},
5277
+ { renamed: ["repos", "downloadZipballArchive"] }
5278
+ ],
5279
+ downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"],
5280
+ downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"],
5281
+ enableAutomatedSecurityFixes: [
5282
+ "PUT /repos/{owner}/{repo}/automated-security-fixes"
5283
+ ],
5284
+ enableImmutableReleases: ["PUT /repos/{owner}/{repo}/immutable-releases"],
5285
+ enablePrivateVulnerabilityReporting: [
5286
+ "PUT /repos/{owner}/{repo}/private-vulnerability-reporting"
5287
+ ],
5288
+ enableVulnerabilityAlerts: [
5289
+ "PUT /repos/{owner}/{repo}/vulnerability-alerts"
5290
+ ],
5291
+ generateReleaseNotes: [
5292
+ "POST /repos/{owner}/{repo}/releases/generate-notes"
5293
+ ],
5294
+ get: ["GET /repos/{owner}/{repo}"],
5295
+ getAccessRestrictions: [
5296
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"
5297
+ ],
5298
+ getAdminBranchProtection: [
5299
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
5300
+ ],
5301
+ getAllDeploymentProtectionRules: [
5302
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"
5303
+ ],
5304
+ getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"],
5305
+ getAllStatusCheckContexts: [
5306
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"
5307
+ ],
5308
+ getAllTopics: ["GET /repos/{owner}/{repo}/topics"],
5309
+ getAppsWithAccessToProtectedBranch: [
5310
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"
5311
+ ],
5312
+ getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],
5313
+ getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"],
5314
+ getBranchProtection: [
5315
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection"
5316
+ ],
5317
+ getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"],
5318
+ getClones: ["GET /repos/{owner}/{repo}/traffic/clones"],
5319
+ getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"],
5320
+ getCollaboratorPermissionLevel: [
5321
+ "GET /repos/{owner}/{repo}/collaborators/{username}/permission"
5322
+ ],
5323
+ getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"],
5324
+ getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"],
5325
+ getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"],
5326
+ getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"],
5327
+ getCommitSignatureProtection: [
5328
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"
5329
+ ],
5330
+ getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"],
5331
+ getContent: ["GET /repos/{owner}/{repo}/contents/{path}"],
5332
+ getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"],
5333
+ getCustomDeploymentProtectionRule: [
5334
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"
5335
+ ],
5336
+ getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"],
5337
+ getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],
5338
+ getDeploymentBranchPolicy: [
5339
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
5340
+ ],
5341
+ getDeploymentStatus: [
5342
+ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"
5343
+ ],
5344
+ getEnvironment: [
5345
+ "GET /repos/{owner}/{repo}/environments/{environment_name}"
5346
+ ],
5347
+ getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"],
5348
+ getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"],
5349
+ getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],
5350
+ getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"],
5351
+ getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"],
5352
+ getOrgRulesets: ["GET /orgs/{org}/rulesets"],
5353
+ getPages: ["GET /repos/{owner}/{repo}/pages"],
5354
+ getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],
5355
+ getPagesDeployment: [
5356
+ "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"
5357
+ ],
5358
+ getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"],
5359
+ getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"],
5360
+ getPullRequestReviewProtection: [
5361
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
5362
+ ],
5363
+ getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"],
5364
+ getReadme: ["GET /repos/{owner}/{repo}/readme"],
5365
+ getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"],
5366
+ getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"],
5367
+ getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],
5368
+ getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"],
5369
+ getRepoRuleSuite: [
5370
+ "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"
5371
+ ],
5372
+ getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"],
5373
+ getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
5374
+ getRepoRulesetHistory: [
5375
+ "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"
5376
+ ],
5377
+ getRepoRulesetVersion: [
5378
+ "GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"
5379
+ ],
5380
+ getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"],
5381
+ getStatusChecksProtection: [
5382
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
5383
+ ],
5384
+ getTeamsWithAccessToProtectedBranch: [
5385
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"
5386
+ ],
5387
+ getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"],
5388
+ getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"],
5389
+ getUsersWithAccessToProtectedBranch: [
5390
+ "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"
5391
+ ],
5392
+ getViews: ["GET /repos/{owner}/{repo}/traffic/views"],
5393
+ getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"],
5394
+ getWebhookConfigForRepo: [
5395
+ "GET /repos/{owner}/{repo}/hooks/{hook_id}/config"
5396
+ ],
5397
+ getWebhookDelivery: [
5398
+ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"
5399
+ ],
5400
+ listActivities: ["GET /repos/{owner}/{repo}/activity"],
5401
+ listAttestations: [
5402
+ "GET /repos/{owner}/{repo}/attestations/{subject_digest}"
5403
+ ],
5404
+ listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"],
5405
+ listBranches: ["GET /repos/{owner}/{repo}/branches"],
5406
+ listBranchesForHeadCommit: [
5407
+ "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"
5408
+ ],
5409
+ listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"],
5410
+ listCommentsForCommit: [
5411
+ "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"
5412
+ ],
5413
+ listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"],
5414
+ listCommitStatusesForRef: [
5415
+ "GET /repos/{owner}/{repo}/commits/{ref}/statuses"
5416
+ ],
5417
+ listCommits: ["GET /repos/{owner}/{repo}/commits"],
5418
+ listContributors: ["GET /repos/{owner}/{repo}/contributors"],
5419
+ listCustomDeploymentRuleIntegrations: [
5420
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"
5421
+ ],
5422
+ listDeployKeys: ["GET /repos/{owner}/{repo}/keys"],
5423
+ listDeploymentBranchPolicies: [
5424
+ "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"
5425
+ ],
5426
+ listDeploymentStatuses: [
5427
+ "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"
5428
+ ],
5429
+ listDeployments: ["GET /repos/{owner}/{repo}/deployments"],
5430
+ listForAuthenticatedUser: ["GET /user/repos"],
5431
+ listForOrg: ["GET /orgs/{org}/repos"],
5432
+ listForUser: ["GET /users/{username}/repos"],
5433
+ listForks: ["GET /repos/{owner}/{repo}/forks"],
5434
+ listInvitations: ["GET /repos/{owner}/{repo}/invitations"],
5435
+ listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"],
5436
+ listLanguages: ["GET /repos/{owner}/{repo}/languages"],
5437
+ listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"],
5438
+ listPublic: ["GET /repositories"],
5439
+ listPullRequestsAssociatedWithCommit: [
5440
+ "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"
5441
+ ],
5442
+ listReleaseAssets: [
5443
+ "GET /repos/{owner}/{repo}/releases/{release_id}/assets"
5444
+ ],
5445
+ listReleases: ["GET /repos/{owner}/{repo}/releases"],
5446
+ listTags: ["GET /repos/{owner}/{repo}/tags"],
5447
+ listTeams: ["GET /repos/{owner}/{repo}/teams"],
5448
+ listWebhookDeliveries: [
5449
+ "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"
5450
+ ],
5451
+ listWebhooks: ["GET /repos/{owner}/{repo}/hooks"],
5452
+ merge: ["POST /repos/{owner}/{repo}/merges"],
5453
+ mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"],
5454
+ pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],
5455
+ redeliverWebhookDelivery: [
5456
+ "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"
5457
+ ],
5458
+ removeAppAccessRestrictions: [
5459
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
5460
+ {},
5461
+ { mapToData: "apps" }
5462
+ ],
5463
+ removeCollaborator: [
5464
+ "DELETE /repos/{owner}/{repo}/collaborators/{username}"
5465
+ ],
5466
+ removeStatusCheckContexts: [
5467
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
5468
+ {},
5469
+ { mapToData: "contexts" }
5470
+ ],
5471
+ removeStatusCheckProtection: [
5472
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
5473
+ ],
5474
+ removeTeamAccessRestrictions: [
5475
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
5476
+ {},
5477
+ { mapToData: "teams" }
5478
+ ],
5479
+ removeUserAccessRestrictions: [
5480
+ "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
5481
+ {},
5482
+ { mapToData: "users" }
5483
+ ],
5484
+ renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"],
5485
+ replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"],
5486
+ requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"],
5487
+ setAdminBranchProtection: [
5488
+ "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"
5489
+ ],
5490
+ setAppAccessRestrictions: [
5491
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",
5492
+ {},
5493
+ { mapToData: "apps" }
5494
+ ],
5495
+ setStatusCheckContexts: [
5496
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",
5497
+ {},
5498
+ { mapToData: "contexts" }
5499
+ ],
5500
+ setTeamAccessRestrictions: [
5501
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",
5502
+ {},
5503
+ { mapToData: "teams" }
5504
+ ],
5505
+ setUserAccessRestrictions: [
5506
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",
5507
+ {},
5508
+ { mapToData: "users" }
5509
+ ],
5510
+ testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],
5511
+ transfer: ["POST /repos/{owner}/{repo}/transfer"],
5512
+ update: ["PATCH /repos/{owner}/{repo}"],
5513
+ updateBranchProtection: [
5514
+ "PUT /repos/{owner}/{repo}/branches/{branch}/protection"
5515
+ ],
5516
+ updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],
5517
+ updateDeploymentBranchPolicy: [
5518
+ "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"
5519
+ ],
5520
+ updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"],
5521
+ updateInvitation: [
5522
+ "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"
5523
+ ],
5524
+ updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"],
5525
+ updatePullRequestReviewProtection: [
5526
+ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"
5527
+ ],
5528
+ updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"],
5529
+ updateReleaseAsset: [
5530
+ "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"
5531
+ ],
5532
+ updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],
5533
+ updateStatusCheckPotection: [
5534
+ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",
5535
+ {},
5536
+ { renamed: ["repos", "updateStatusCheckProtection"] }
5537
+ ],
5538
+ updateStatusCheckProtection: [
5539
+ "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"
5540
+ ],
5541
+ updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],
5542
+ updateWebhookConfigForRepo: [
5543
+ "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"
5544
+ ],
5545
+ uploadReleaseAsset: [
5546
+ "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",
5547
+ { baseUrl: "https://uploads.github.com" }
5548
+ ]
5549
+ },
5550
+ search: {
5551
+ code: ["GET /search/code"],
5552
+ commits: ["GET /search/commits"],
5553
+ issuesAndPullRequests: ["GET /search/issues"],
5554
+ labels: ["GET /search/labels"],
5555
+ repos: ["GET /search/repositories"],
5556
+ topics: ["GET /search/topics"],
5557
+ users: ["GET /search/users"]
5558
+ },
5559
+ secretScanning: {
5560
+ createPushProtectionBypass: [
5561
+ "POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"
5562
+ ],
5563
+ getAlert: [
5564
+ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
5565
+ ],
5566
+ getScanHistory: ["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],
5567
+ listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"],
5568
+ listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"],
5569
+ listLocationsForAlert: [
5570
+ "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"
5571
+ ],
5572
+ listOrgPatternConfigs: [
5573
+ "GET /orgs/{org}/secret-scanning/pattern-configurations"
5574
+ ],
5575
+ updateAlert: [
5576
+ "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"
5577
+ ],
5578
+ updateOrgPatternConfigs: [
5579
+ "PATCH /orgs/{org}/secret-scanning/pattern-configurations"
5580
+ ]
5581
+ },
5582
+ securityAdvisories: {
5583
+ createFork: [
5584
+ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"
5585
+ ],
5586
+ createPrivateVulnerabilityReport: [
5587
+ "POST /repos/{owner}/{repo}/security-advisories/reports"
5588
+ ],
5589
+ createRepositoryAdvisory: [
5590
+ "POST /repos/{owner}/{repo}/security-advisories"
5591
+ ],
5592
+ createRepositoryAdvisoryCveRequest: [
5593
+ "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"
5594
+ ],
5595
+ getGlobalAdvisory: ["GET /advisories/{ghsa_id}"],
5596
+ getRepositoryAdvisory: [
5597
+ "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
5598
+ ],
5599
+ listGlobalAdvisories: ["GET /advisories"],
5600
+ listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"],
5601
+ listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"],
5602
+ updateRepositoryAdvisory: [
5603
+ "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"
5604
+ ]
5605
+ },
5606
+ teams: {
5607
+ addOrUpdateMembershipForUserInOrg: [
5608
+ "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"
5609
+ ],
5610
+ addOrUpdateRepoPermissionsInOrg: [
5611
+ "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
5612
+ ],
5613
+ checkPermissionsForRepoInOrg: [
5614
+ "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
5615
+ ],
5616
+ create: ["POST /orgs/{org}/teams"],
5617
+ createDiscussionCommentInOrg: [
5618
+ "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
5619
+ ],
5620
+ createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"],
5621
+ deleteDiscussionCommentInOrg: [
5622
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
5623
+ ],
5624
+ deleteDiscussionInOrg: [
5625
+ "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
5626
+ ],
5627
+ deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"],
5628
+ getByName: ["GET /orgs/{org}/teams/{team_slug}"],
5629
+ getDiscussionCommentInOrg: [
5630
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
5631
+ ],
5632
+ getDiscussionInOrg: [
5633
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
5634
+ ],
5635
+ getMembershipForUserInOrg: [
5636
+ "GET /orgs/{org}/teams/{team_slug}/memberships/{username}"
5637
+ ],
5638
+ list: ["GET /orgs/{org}/teams"],
5639
+ listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"],
5640
+ listDiscussionCommentsInOrg: [
5641
+ "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"
5642
+ ],
5643
+ listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"],
5644
+ listForAuthenticatedUser: ["GET /user/teams"],
5645
+ listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"],
5646
+ listPendingInvitationsInOrg: [
5647
+ "GET /orgs/{org}/teams/{team_slug}/invitations"
5648
+ ],
5649
+ listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"],
5650
+ removeMembershipForUserInOrg: [
5651
+ "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"
5652
+ ],
5653
+ removeRepoInOrg: [
5654
+ "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"
5655
+ ],
5656
+ updateDiscussionCommentInOrg: [
5657
+ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"
5658
+ ],
5659
+ updateDiscussionInOrg: [
5660
+ "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"
5661
+ ],
5662
+ updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"]
5663
+ },
5664
+ users: {
5665
+ addEmailForAuthenticated: [
5666
+ "POST /user/emails",
5667
+ {},
5668
+ { renamed: ["users", "addEmailForAuthenticatedUser"] }
5669
+ ],
5670
+ addEmailForAuthenticatedUser: ["POST /user/emails"],
5671
+ addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"],
5672
+ block: ["PUT /user/blocks/{username}"],
5673
+ checkBlocked: ["GET /user/blocks/{username}"],
5674
+ checkFollowingForUser: ["GET /users/{username}/following/{target_user}"],
5675
+ checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"],
5676
+ createGpgKeyForAuthenticated: [
5677
+ "POST /user/gpg_keys",
5678
+ {},
5679
+ { renamed: ["users", "createGpgKeyForAuthenticatedUser"] }
5680
+ ],
5681
+ createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"],
5682
+ createPublicSshKeyForAuthenticated: [
5683
+ "POST /user/keys",
5684
+ {},
5685
+ { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] }
5686
+ ],
5687
+ createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"],
5688
+ createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"],
5689
+ deleteAttestationsBulk: [
5690
+ "POST /users/{username}/attestations/delete-request"
5691
+ ],
5692
+ deleteAttestationsById: [
5693
+ "DELETE /users/{username}/attestations/{attestation_id}"
5694
+ ],
5695
+ deleteAttestationsBySubjectDigest: [
5696
+ "DELETE /users/{username}/attestations/digest/{subject_digest}"
5697
+ ],
5698
+ deleteEmailForAuthenticated: [
5699
+ "DELETE /user/emails",
5700
+ {},
5701
+ { renamed: ["users", "deleteEmailForAuthenticatedUser"] }
5702
+ ],
5703
+ deleteEmailForAuthenticatedUser: ["DELETE /user/emails"],
5704
+ deleteGpgKeyForAuthenticated: [
5705
+ "DELETE /user/gpg_keys/{gpg_key_id}",
5706
+ {},
5707
+ { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] }
5708
+ ],
5709
+ deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"],
5710
+ deletePublicSshKeyForAuthenticated: [
5711
+ "DELETE /user/keys/{key_id}",
5712
+ {},
5713
+ { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] }
5714
+ ],
5715
+ deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"],
5716
+ deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"],
5717
+ deleteSshSigningKeyForAuthenticatedUser: [
5718
+ "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"
5719
+ ],
5720
+ follow: ["PUT /user/following/{username}"],
5721
+ getAuthenticated: ["GET /user"],
5722
+ getById: ["GET /user/{account_id}"],
5723
+ getByUsername: ["GET /users/{username}"],
5724
+ getContextForUser: ["GET /users/{username}/hovercard"],
5725
+ getGpgKeyForAuthenticated: [
5726
+ "GET /user/gpg_keys/{gpg_key_id}",
5727
+ {},
5728
+ { renamed: ["users", "getGpgKeyForAuthenticatedUser"] }
5729
+ ],
5730
+ getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"],
5731
+ getPublicSshKeyForAuthenticated: [
5732
+ "GET /user/keys/{key_id}",
5733
+ {},
5734
+ { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] }
5735
+ ],
5736
+ getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"],
5737
+ getSshSigningKeyForAuthenticatedUser: [
5738
+ "GET /user/ssh_signing_keys/{ssh_signing_key_id}"
5739
+ ],
5740
+ list: ["GET /users"],
5741
+ listAttestations: ["GET /users/{username}/attestations/{subject_digest}"],
5742
+ listAttestationsBulk: [
5743
+ "POST /users/{username}/attestations/bulk-list{?per_page,before,after}"
5744
+ ],
5745
+ listBlockedByAuthenticated: [
5746
+ "GET /user/blocks",
5747
+ {},
5748
+ { renamed: ["users", "listBlockedByAuthenticatedUser"] }
5749
+ ],
5750
+ listBlockedByAuthenticatedUser: ["GET /user/blocks"],
5751
+ listEmailsForAuthenticated: [
5752
+ "GET /user/emails",
5753
+ {},
5754
+ { renamed: ["users", "listEmailsForAuthenticatedUser"] }
5755
+ ],
5756
+ listEmailsForAuthenticatedUser: ["GET /user/emails"],
5757
+ listFollowedByAuthenticated: [
5758
+ "GET /user/following",
5759
+ {},
5760
+ { renamed: ["users", "listFollowedByAuthenticatedUser"] }
5761
+ ],
5762
+ listFollowedByAuthenticatedUser: ["GET /user/following"],
5763
+ listFollowersForAuthenticatedUser: ["GET /user/followers"],
5764
+ listFollowersForUser: ["GET /users/{username}/followers"],
5765
+ listFollowingForUser: ["GET /users/{username}/following"],
5766
+ listGpgKeysForAuthenticated: [
5767
+ "GET /user/gpg_keys",
5768
+ {},
5769
+ { renamed: ["users", "listGpgKeysForAuthenticatedUser"] }
5770
+ ],
5771
+ listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"],
5772
+ listGpgKeysForUser: ["GET /users/{username}/gpg_keys"],
5773
+ listPublicEmailsForAuthenticated: [
5774
+ "GET /user/public_emails",
5775
+ {},
5776
+ { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] }
5777
+ ],
5778
+ listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"],
5779
+ listPublicKeysForUser: ["GET /users/{username}/keys"],
5780
+ listPublicSshKeysForAuthenticated: [
5781
+ "GET /user/keys",
5782
+ {},
5783
+ { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] }
5784
+ ],
5785
+ listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"],
5786
+ listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"],
5787
+ listSocialAccountsForUser: ["GET /users/{username}/social_accounts"],
5788
+ listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"],
5789
+ listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"],
5790
+ setPrimaryEmailVisibilityForAuthenticated: [
5791
+ "PATCH /user/email/visibility",
5792
+ {},
5793
+ { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] }
5794
+ ],
5795
+ setPrimaryEmailVisibilityForAuthenticatedUser: [
5796
+ "PATCH /user/email/visibility"
5797
+ ],
5798
+ unblock: ["DELETE /user/blocks/{username}"],
5799
+ unfollow: ["DELETE /user/following/{username}"],
5800
+ updateAuthenticated: ["PATCH /user"]
5801
+ }
5802
+ };
5803
+ var endpoints_default = Endpoints;
5804
+
5805
+ // ../../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@17.0.0_@octokit+core@7.0.6/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/endpoints-to-methods.js
5806
+ var endpointMethodsMap = /* @__PURE__ */ new Map();
5807
+ for (const [scope, endpoints] of Object.entries(endpoints_default)) {
5808
+ for (const [methodName, endpoint2] of Object.entries(endpoints)) {
5809
+ const [route, defaults, decorations] = endpoint2;
5810
+ const [method, url] = route.split(/ /);
5811
+ const endpointDefaults = Object.assign(
5812
+ {
5813
+ method,
5814
+ url
5815
+ },
5816
+ defaults
5817
+ );
5818
+ if (!endpointMethodsMap.has(scope)) {
5819
+ endpointMethodsMap.set(scope, /* @__PURE__ */ new Map());
5820
+ }
5821
+ endpointMethodsMap.get(scope).set(methodName, {
5822
+ scope,
5823
+ methodName,
5824
+ endpointDefaults,
5825
+ decorations
5826
+ });
5827
+ }
5828
+ }
5829
+ var handler = {
5830
+ has({ scope }, methodName) {
5831
+ return endpointMethodsMap.get(scope).has(methodName);
5832
+ },
5833
+ getOwnPropertyDescriptor(target, methodName) {
5834
+ return {
5835
+ value: this.get(target, methodName),
5836
+ // ensures method is in the cache
5837
+ configurable: true,
5838
+ writable: true,
5839
+ enumerable: true
5840
+ };
5841
+ },
5842
+ defineProperty(target, methodName, descriptor) {
5843
+ Object.defineProperty(target.cache, methodName, descriptor);
5844
+ return true;
5845
+ },
5846
+ deleteProperty(target, methodName) {
5847
+ delete target.cache[methodName];
5848
+ return true;
5849
+ },
5850
+ ownKeys({ scope }) {
5851
+ return [...endpointMethodsMap.get(scope).keys()];
5852
+ },
5853
+ set(target, methodName, value) {
5854
+ return target.cache[methodName] = value;
5855
+ },
5856
+ get({ octokit, scope, cache }, methodName) {
5857
+ if (cache[methodName]) {
5858
+ return cache[methodName];
5859
+ }
5860
+ const method = endpointMethodsMap.get(scope).get(methodName);
5861
+ if (!method) {
5862
+ return void 0;
5863
+ }
5864
+ const { endpointDefaults, decorations } = method;
5865
+ if (decorations) {
5866
+ cache[methodName] = decorate(
5867
+ octokit,
5868
+ scope,
5869
+ methodName,
5870
+ endpointDefaults,
5871
+ decorations
5872
+ );
5873
+ } else {
5874
+ cache[methodName] = octokit.request.defaults(endpointDefaults);
5875
+ }
5876
+ return cache[methodName];
5877
+ }
5878
+ };
5879
+ function endpointsToMethods(octokit) {
5880
+ const newMethods = {};
5881
+ for (const scope of endpointMethodsMap.keys()) {
5882
+ newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler);
5883
+ }
5884
+ return newMethods;
5885
+ }
5886
+ function decorate(octokit, scope, methodName, defaults, decorations) {
5887
+ const requestWithDefaults = octokit.request.defaults(defaults);
5888
+ function withDecorations(...args) {
5889
+ let options = requestWithDefaults.endpoint.merge(...args);
5890
+ if (decorations.mapToData) {
5891
+ options = Object.assign({}, options, {
5892
+ data: options[decorations.mapToData],
5893
+ [decorations.mapToData]: void 0
5894
+ });
5895
+ return requestWithDefaults(options);
5896
+ }
5897
+ if (decorations.renamed) {
5898
+ const [newScope, newMethodName] = decorations.renamed;
5899
+ octokit.log.warn(
5900
+ `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`
5901
+ );
5902
+ }
5903
+ if (decorations.deprecated) {
5904
+ octokit.log.warn(decorations.deprecated);
5905
+ }
5906
+ if (decorations.renamedParameters) {
5907
+ const options2 = requestWithDefaults.endpoint.merge(...args);
5908
+ for (const [name, alias] of Object.entries(
5909
+ decorations.renamedParameters
5910
+ )) {
5911
+ if (name in options2) {
5912
+ octokit.log.warn(
5913
+ `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`
5914
+ );
5915
+ if (!(alias in options2)) {
5916
+ options2[alias] = options2[name];
5917
+ }
5918
+ delete options2[name];
5919
+ }
5920
+ }
5921
+ return requestWithDefaults(options2);
5922
+ }
5923
+ return requestWithDefaults(...args);
5924
+ }
5925
+ return Object.assign(withDecorations, requestWithDefaults);
5926
+ }
5927
+
5928
+ // ../../node_modules/.pnpm/@octokit+plugin-rest-endpoint-methods@17.0.0_@octokit+core@7.0.6/node_modules/@octokit/plugin-rest-endpoint-methods/dist-src/index.js
5929
+ function restEndpointMethods(octokit) {
5930
+ const api = endpointsToMethods(octokit);
5931
+ return {
5932
+ rest: api
5933
+ };
5934
+ }
5935
+ restEndpointMethods.VERSION = VERSION7;
5936
+ function legacyRestEndpointMethods(octokit) {
5937
+ const api = endpointsToMethods(octokit);
5938
+ return {
5939
+ ...api,
5940
+ rest: api
5941
+ };
5942
+ }
5943
+ legacyRestEndpointMethods.VERSION = VERSION7;
5944
+
5945
+ // ../../node_modules/.pnpm/@octokit+rest@22.0.1/node_modules/@octokit/rest/dist-src/version.js
5946
+ var VERSION8 = "22.0.1";
5947
+
5948
+ // ../../node_modules/.pnpm/@octokit+rest@22.0.1/node_modules/@octokit/rest/dist-src/index.js
5949
+ var Octokit2 = Octokit.plugin(requestLog, legacyRestEndpointMethods, paginateRest).defaults(
5950
+ {
5951
+ userAgent: `octokit-rest.js/${VERSION8}`
5952
+ }
5953
+ );
5954
+
5955
+ // ../tools/dist/github.js
5956
+ function getClient(ctx) {
5957
+ const token = ctx.config.tools?.github?.token;
5958
+ if (!token)
5959
+ return null;
5960
+ return new Octokit2({ auth: token });
5961
+ }
5962
+ function truncate(text, max = 4e3) {
5963
+ if (text.length <= max)
5964
+ return text;
5965
+ return text.slice(0, max) + "\n... (truncated)";
5966
+ }
5967
+ var actions = {};
5968
+ function formatIssueRow(i) {
5969
+ const labels = i.labels.map((l) => l.name).join(", ");
5970
+ return `| #${i.number} | ${i.title} | ${i.state} | ${i.user?.login ?? ""} | ${labels} |`;
5971
+ }
5972
+ function formatIssueDetail(i) {
5973
+ const assignees = i.assignees.map((a) => a.login).join(", ") || "none";
5974
+ const labels = i.labels.map((l) => l.name).join(", ") || "none";
5975
+ return [
5976
+ `# #${i.number}: ${i.title}`,
5977
+ `**State:** ${i.state} **Author:** ${i.user?.login ?? "unknown"}`,
5978
+ `**Assignees:** ${assignees} **Labels:** ${labels}`,
5979
+ `**Comments:** ${i.comments} **Created:** ${i.created_at} **Updated:** ${i.updated_at}`,
5980
+ `**URL:** ${i.html_url}`,
5981
+ "",
5982
+ i.body ?? "_No description_"
5983
+ ].join("\n");
5984
+ }
5985
+ actions.list_issues = async (client, params) => {
5986
+ const { owner, repo, state, labels, per_page } = params;
5987
+ const { data } = await client.issues.listForRepo({
5988
+ owner,
5989
+ repo,
5990
+ state: state ?? "open",
5991
+ labels,
5992
+ per_page: per_page ?? 30
5993
+ });
5994
+ if (data.length === 0) {
5995
+ return { success: true, output: "No issues found." };
5996
+ }
5997
+ const header = "| # | Title | State | Author | Labels |\n|---|-------|-------|--------|--------|";
5998
+ const rows = data.map((i) => formatIssueRow(i));
5999
+ return { success: true, output: truncate(`${header}
6000
+ ${rows.join("\n")}`) };
6001
+ };
6002
+ actions.get_issue = async (client, params) => {
6003
+ const { owner, repo, issue_number } = params;
6004
+ const { data } = await client.issues.get({
6005
+ owner,
6006
+ repo,
6007
+ issue_number
6008
+ });
6009
+ return {
6010
+ success: true,
6011
+ output: truncate(formatIssueDetail(data))
6012
+ };
6013
+ };
6014
+ actions.create_issue = async (client, params) => {
6015
+ const { owner, repo, title, body, labels } = params;
6016
+ const { data } = await client.issues.create({
6017
+ owner,
6018
+ repo,
6019
+ title,
6020
+ body,
6021
+ labels: labels ? labels.split(",").map((l) => l.trim()) : void 0
6022
+ });
6023
+ return {
6024
+ success: true,
6025
+ output: `Created issue #${data.number}: ${data.html_url}`
6026
+ };
6027
+ };
6028
+ actions.update_issue = async (client, params) => {
6029
+ const { owner, repo, issue_number, title, body, state, labels } = params;
6030
+ const { data } = await client.issues.update({
6031
+ owner,
6032
+ repo,
6033
+ issue_number,
6034
+ title,
6035
+ body,
6036
+ state,
6037
+ labels: labels ? labels.split(",").map((l) => l.trim()) : void 0
6038
+ });
6039
+ return {
6040
+ success: true,
6041
+ output: `Updated issue #${data.number}: ${data.html_url}`
6042
+ };
6043
+ };
6044
+ actions.comment_issue = async (client, params) => {
6045
+ const { owner, repo, issue_number, body } = params;
6046
+ const { data } = await client.issues.createComment({
6047
+ owner,
6048
+ repo,
6049
+ issue_number,
6050
+ body
6051
+ });
6052
+ return {
6053
+ success: true,
6054
+ output: `Comment added: ${data.html_url}`
6055
+ };
6056
+ };
6057
+ function formatPrRow(pr) {
6058
+ const d = pr.draft ? " (draft)" : "";
6059
+ return `| #${pr.number} | ${pr.title}${d} | ${pr.state} | ${pr.user?.login ?? ""} |`;
6060
+ }
6061
+ function formatPrDetail(pr) {
6062
+ const d = pr.draft ? " (draft)" : "";
6063
+ return [
6064
+ `# #${pr.number}: ${pr.title}${d}`,
6065
+ `**State:** ${pr.state} **Author:** ${pr.user?.login ?? "unknown"} **Merged:** ${pr.merged}`,
6066
+ `**Branch:** ${pr.head.ref} -> ${pr.base.ref}`,
6067
+ `**Changes:** +${pr.additions} -${pr.deletions} in ${pr.changed_files} files`,
6068
+ `**Comments:** ${pr.comments} general, ${pr.review_comments} review`,
6069
+ `**Created:** ${pr.created_at} **Updated:** ${pr.updated_at}`,
6070
+ `**URL:** ${pr.html_url}`,
6071
+ "",
6072
+ pr.body ?? "_No description_"
6073
+ ].join("\n");
6074
+ }
6075
+ actions.list_prs = async (client, params) => {
6076
+ const { owner, repo, state, per_page } = params;
6077
+ const { data } = await client.pulls.list({
6078
+ owner,
6079
+ repo,
6080
+ state: state ?? "open",
6081
+ per_page: per_page ?? 30
6082
+ });
6083
+ if (data.length === 0) {
6084
+ return { success: true, output: "No pull requests found." };
6085
+ }
6086
+ const header = "| # | Title | State | Author |\n|---|-------|-------|--------|";
6087
+ const rows = data.map((pr) => formatPrRow(pr));
6088
+ return { success: true, output: truncate(`${header}
6089
+ ${rows.join("\n")}`) };
6090
+ };
6091
+ actions.get_pr = async (client, params) => {
6092
+ const { owner, repo, pull_number } = params;
6093
+ const { data } = await client.pulls.get({
6094
+ owner,
6095
+ repo,
6096
+ pull_number
6097
+ });
6098
+ return {
6099
+ success: true,
6100
+ output: truncate(formatPrDetail(data))
6101
+ };
6102
+ };
6103
+ actions.create_pr = async (client, params) => {
6104
+ const { owner, repo, title, body, head, base, draft } = params;
6105
+ const { data } = await client.pulls.create({
6106
+ owner,
6107
+ repo,
6108
+ title,
6109
+ body,
6110
+ head,
6111
+ base,
6112
+ draft
6113
+ });
6114
+ return {
6115
+ success: true,
6116
+ output: `Created PR #${data.number}: ${data.html_url}`
6117
+ };
6118
+ };
6119
+ actions.review_pr = async (client, params) => {
6120
+ const { owner, repo, pull_number, event, body } = params;
6121
+ const { data } = await client.pulls.createReview({
6122
+ owner,
6123
+ repo,
6124
+ pull_number,
6125
+ event,
6126
+ body
6127
+ });
6128
+ return {
6129
+ success: true,
6130
+ output: `Review submitted (${data.state}): ${data.html_url}`
6131
+ };
6132
+ };
6133
+ actions.merge_pr = async (client, params) => {
6134
+ const { owner, repo, pull_number, merge_method } = params;
6135
+ const { data } = await client.pulls.merge({
6136
+ owner,
6137
+ repo,
6138
+ pull_number,
6139
+ merge_method: merge_method ?? "merge"
6140
+ });
6141
+ return {
6142
+ success: true,
6143
+ output: `Merged: ${data.message} (SHA: ${data.sha})`
6144
+ };
6145
+ };
6146
+ actions.list_repos = async (client, params) => {
6147
+ const { owner, per_page } = params;
6148
+ const { data } = owner ? await client.repos.listForUser({ username: owner, per_page: per_page ?? 30 }) : await client.repos.listForAuthenticatedUser({ per_page: per_page ?? 30 });
6149
+ if (data.length === 0) {
6150
+ return { success: true, output: "No repositories found." };
6151
+ }
6152
+ const header = "| Repository | Description | Stars | Language | Private |\n|------------|-------------|-------|----------|---------|\n";
6153
+ const rows = data.map((r) => `| ${r.full_name} | ${r.description ?? ""} | ${r.stargazers_count} | ${r.language ?? ""} | ${r.private} |`);
6154
+ return { success: true, output: truncate(`${header}${rows.join("\n")}`) };
6155
+ };
6156
+ actions.get_repo = async (client, params) => {
6157
+ const { owner, repo } = params;
6158
+ const { data } = await client.repos.get({ owner, repo });
6159
+ const r = data;
6160
+ const topics = r.topics.length > 0 ? r.topics.join(", ") : "none";
6161
+ const out = [
6162
+ `# ${r.full_name}`,
6163
+ r.description ?? "_No description_",
6164
+ "",
6165
+ `**Stars:** ${r.stargazers_count} **Forks:** ${r.forks_count} **Open issues:** ${r.open_issues_count}`,
6166
+ `**Language:** ${r.language ?? "N/A"} **Default branch:** ${r.default_branch} **Private:** ${r.private}`,
6167
+ `**Topics:** ${topics}`,
6168
+ `**Created:** ${r.created_at} **Updated:** ${r.updated_at}`,
6169
+ `**URL:** ${r.html_url}`
6170
+ ].join("\n");
6171
+ return { success: true, output: truncate(out) };
6172
+ };
6173
+ actions.list_releases = async (client, params) => {
6174
+ const { owner, repo, per_page } = params;
6175
+ const { data } = await client.repos.listReleases({
6176
+ owner,
6177
+ repo,
6178
+ per_page: per_page ?? 10
6179
+ });
6180
+ if (data.length === 0) {
6181
+ return { success: true, output: "No releases found." };
6182
+ }
6183
+ const header = "| Tag | Name | Draft | Prerelease | Published |\n|-----|------|-------|------------|-----------|";
6184
+ const rows = data.map((r) => `| ${r.tag_name} | ${r.name ?? ""} | ${r.draft} | ${r.prerelease} | ${r.published_at ?? ""} |`);
6185
+ return { success: true, output: truncate(`${header}
6186
+ ${rows.join("\n")}`) };
6187
+ };
6188
+ actions.create_release = async (client, params) => {
6189
+ const { owner, repo, tag_name, title, body, target_commitish, draft } = params;
6190
+ const { data } = await client.repos.createRelease({
6191
+ owner,
6192
+ repo,
6193
+ tag_name,
6194
+ name: title,
6195
+ body,
6196
+ target_commitish,
6197
+ draft
6198
+ });
6199
+ return {
6200
+ success: true,
6201
+ output: `Created release ${data.tag_name}: ${data.html_url}`
6202
+ };
6203
+ };
6204
+ actions.search_issues = async (client, params) => {
6205
+ const { query, per_page } = params;
6206
+ const { data } = await client.search.issuesAndPullRequests({
6207
+ q: query,
6208
+ per_page: per_page ?? 20
6209
+ });
6210
+ if (data.total_count === 0) {
6211
+ return { success: true, output: "No results found." };
6212
+ }
6213
+ const header = "| # | Title | State | Repo |\n|---|-------|-------|------|";
6214
+ const rows = data.items.map((i) => {
6215
+ const repo = i.repository_url.replace("https://api.github.com/repos/", "");
6216
+ return `| #${i.number} | ${i.title} | ${i.state} | ${repo} |`;
6217
+ });
6218
+ return {
6219
+ success: true,
6220
+ output: truncate(`Found ${data.total_count} results:
6221
+ ${header}
6222
+ ${rows.join("\n")}`)
6223
+ };
6224
+ };
6225
+ actions.search_code = async (client, params) => {
6226
+ const { query, per_page } = params;
6227
+ const { data } = await client.search.code({
6228
+ q: query,
6229
+ per_page: per_page ?? 20
6230
+ });
6231
+ if (data.total_count === 0) {
6232
+ return { success: true, output: "No results found." };
6233
+ }
6234
+ const header = "| File | Path | Repo |\n|------|------|------|";
6235
+ const rows = data.items.map((i) => `| ${i.name} | ${i.path} | ${i.repository.full_name} |`);
6236
+ return {
6237
+ success: true,
6238
+ output: truncate(`Found ${data.total_count} results:
6239
+ ${header}
6240
+ ${rows.join("\n")}`)
6241
+ };
6242
+ };
6243
+ actions.search_repos = async (client, params) => {
6244
+ const { query, per_page } = params;
6245
+ const { data } = await client.search.repos({
6246
+ q: query,
6247
+ per_page: per_page ?? 20
6248
+ });
6249
+ if (data.total_count === 0) {
6250
+ return { success: true, output: "No results found." };
6251
+ }
6252
+ const header = "| Repository | Description | Stars | Language |\n|------------|-------------|-------|----------|";
6253
+ const rows = data.items.map((i) => `| [${i.full_name}](${i.html_url}) | ${i.description ?? ""} | ${i.stargazers_count} | ${i.language ?? ""} |`);
6254
+ return {
6255
+ success: true,
6256
+ output: truncate(`Found ${data.total_count} results:
6257
+ ${header}
6258
+ ${rows.join("\n")}`)
6259
+ };
6260
+ };
6261
+ var githubTool = {
6262
+ name: "github",
6263
+ description: "Interact with GitHub: issues, pull requests, repos, releases, and search",
6264
+ configCheck: (ctx) => ctx.config.tools?.github?.token ? null : "This tool requires configuration. See https://augure.dev/docs/tools/github",
6265
+ parameters: {
6266
+ type: "object",
6267
+ properties: {
6268
+ action: {
6269
+ type: "string",
6270
+ enum: [
6271
+ "list_issues",
6272
+ "get_issue",
6273
+ "create_issue",
6274
+ "update_issue",
6275
+ "comment_issue",
6276
+ "list_prs",
6277
+ "get_pr",
6278
+ "create_pr",
6279
+ "review_pr",
6280
+ "merge_pr",
6281
+ "list_repos",
6282
+ "get_repo",
6283
+ "list_releases",
6284
+ "create_release",
6285
+ "search_issues",
6286
+ "search_code",
6287
+ "search_repos"
6288
+ ],
6289
+ description: "The GitHub action to perform"
6290
+ },
6291
+ owner: { type: "string", description: "Repository owner (user or org)" },
6292
+ repo: { type: "string", description: "Repository name" },
6293
+ issue_number: { type: "number", description: "Issue number" },
6294
+ pull_number: { type: "number", description: "Pull request number" },
6295
+ title: { type: "string", description: "Title (for create actions)" },
6296
+ body: { type: "string", description: "Body text" },
6297
+ state: { type: "string", description: "State filter (open/closed/all)" },
6298
+ labels: {
6299
+ type: "string",
6300
+ description: "Comma-separated labels"
6301
+ },
6302
+ base: { type: "string", description: "Base branch (for PRs)" },
6303
+ head: { type: "string", description: "Head branch (for PRs)" },
6304
+ event: {
6305
+ type: "string",
6306
+ description: "Review event: APPROVE, REQUEST_CHANGES, or COMMENT"
6307
+ },
6308
+ merge_method: {
6309
+ type: "string",
6310
+ description: "Merge method: merge, squash, or rebase"
6311
+ },
6312
+ tag_name: { type: "string", description: "Tag name (for releases)" },
6313
+ target_commitish: {
6314
+ type: "string",
6315
+ description: "Target branch/commit (for releases)"
6316
+ },
6317
+ draft: { type: "boolean", description: "Whether this is a draft" },
6318
+ query: { type: "string", description: "Search query" },
6319
+ per_page: { type: "number", description: "Results per page (max 100)" }
6320
+ },
6321
+ required: ["action"]
6322
+ },
6323
+ execute: async (params, ctx) => {
6324
+ const p = params;
6325
+ const action = p.action;
6326
+ const client = getClient(ctx);
6327
+ if (!client) {
6328
+ return {
6329
+ success: false,
6330
+ output: "GitHub token not configured. Set tools.github.token in your config."
6331
+ };
6332
+ }
6333
+ const handler2 = actions[action];
6334
+ if (!handler2) {
6335
+ return { success: false, output: `Unknown action: ${action}` };
6336
+ }
6337
+ try {
6338
+ return await handler2(client, p);
6339
+ } catch (err2) {
6340
+ return {
6341
+ success: false,
6342
+ output: err2 instanceof Error ? err2.message : String(err2)
6343
+ };
6344
+ }
6345
+ }
6346
+ };
6347
+
2219
6348
  // ../core/dist/main.js
2220
6349
  import Dockerode from "dockerode";
2221
6350
 
@@ -2727,8 +6856,8 @@ var CronScheduler = class {
2727
6856
  constructor(store) {
2728
6857
  this.store = store;
2729
6858
  }
2730
- onJobTrigger(handler) {
2731
- this.handlers.push(handler);
6859
+ onJobTrigger(handler2) {
6860
+ this.handlers.push(handler2);
2732
6861
  }
2733
6862
  addJob(job) {
2734
6863
  if (!job.cron && !job.runAt) {
@@ -2843,8 +6972,8 @@ var CronScheduler = class {
2843
6972
  }
2844
6973
  async executeHandlers(job) {
2845
6974
  console.log(`[scheduler] Executing ${this.handlers.length} handlers for job ${job.id}`);
2846
- for (const handler of this.handlers) {
2847
- await handler(job);
6975
+ for (const handler2 of this.handlers) {
6976
+ await handler2(job);
2848
6977
  }
2849
6978
  }
2850
6979
  };
@@ -3342,20 +7471,20 @@ var SkillGenerator = class {
3342
7471
  constructor(llm) {
3343
7472
  this.llm = llm;
3344
7473
  }
3345
- async generate(request) {
3346
- const id = slugify(request.description);
7474
+ async generate(request2) {
7475
+ const id = slugify(request2.description);
3347
7476
  if (!id) {
3348
7477
  return { success: false, error: "Could not generate a valid skill ID from description" };
3349
7478
  }
3350
7479
  const userPrompt = [
3351
7480
  `Create a skill with the following specification:`,
3352
7481
  `- ID: ${id}`,
3353
- `- Description: ${request.description}`,
3354
- `- Trigger type: ${request.trigger.type}`,
3355
- request.trigger.schedule ? `- Schedule: ${request.trigger.schedule}` : null,
3356
- request.trigger.channel ? `- Channel: ${request.trigger.channel}` : null,
3357
- request.tags?.length ? `- Tags: ${request.tags.join(", ")}` : null,
3358
- `- Sandbox: ${request.sandbox !== false}`
7482
+ `- Description: ${request2.description}`,
7483
+ `- Trigger type: ${request2.trigger.type}`,
7484
+ request2.trigger.schedule ? `- Schedule: ${request2.trigger.schedule}` : null,
7485
+ request2.trigger.channel ? `- Channel: ${request2.trigger.channel}` : null,
7486
+ request2.tags?.length ? `- Tags: ${request2.tags.join(", ")}` : null,
7487
+ `- Sandbox: ${request2.sandbox !== false}`
3359
7488
  ].filter(Boolean).join("\n");
3360
7489
  try {
3361
7490
  const response = await this.llm.chat([
@@ -4338,6 +8467,7 @@ async function startAgent(configPath, opts) {
4338
8467
  tools.register(emailTool);
4339
8468
  tools.register(sandboxExecTool);
4340
8469
  tools.register(opencodeTool);
8470
+ tools.register(githubTool);
4341
8471
  const jobStorePath = resolve(configPath, "..", "jobs.json");
4342
8472
  const jobStore = new JobStore(jobStorePath);
4343
8473
  const scheduler = new CronScheduler(jobStore);
@@ -5064,3 +9194,12 @@ var main = defineCommand4({
5064
9194
  }
5065
9195
  });
5066
9196
  runMain(main);
9197
+ /*! Bundled license information:
9198
+
9199
+ @octokit/request-error/dist-src/index.js:
9200
+ (* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist *)
9201
+
9202
+ @octokit/request/dist-bundle/index.js:
9203
+ (* v8 ignore next -- @preserve *)
9204
+ (* v8 ignore else -- @preserve *)
9205
+ */