@pome-sh/cli 0.23.38 → 0.23.40
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.
- package/dist/build-info.json +3 -3
- package/dist/{checks-PZSMAVLY.js → checks-A5EFOMZS.js} +1 -1
- package/dist/{chunk-3OVV6JUQ.js → chunk-2A5HJP46.js} +3 -3
- package/dist/{chunk-MUQX7EHA.js → chunk-ATIYRECS.js} +1 -1
- package/dist/{chunk-YL4FHI3J.js → chunk-EJFMWBZE.js} +1 -1
- package/dist/{chunk-7GHIB4HM.js → chunk-F4V3FN3A.js} +2 -2
- package/dist/{chunk-EKQQYW7E.js → chunk-UHX5HOBR.js} +4 -2
- package/dist/{runDemo-F722I6AW.js → runDemo-4YTN6E2H.js} +4 -4
- package/dist/{runTrialGroup-6FWGZGNM.js → runTrialGroup-OOTTXL3B.js} +3 -3
- package/dist/src/cli/main.js +12 -12
- package/dist/{src-ATIALTX2.js → src-XBWNIRBG.js} +746 -44
- package/dist/twinHarness-NMFJCPJE.js +5 -0
- package/dist/{twinStart-J42TT766.js → twinStart-IIF4JZJS.js} +2 -2
- package/package.json +1 -1
- package/dist/twinHarness-XO47SYBH.js +0 -5
package/dist/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "pome-sh",
|
|
3
|
-
"version": "0.23.
|
|
4
|
-
"git_sha": "
|
|
5
|
-
"build_time": "2026-08-
|
|
3
|
+
"version": "0.23.40",
|
|
4
|
+
"git_sha": "3768d4bce739655695ed55d6167ac3076ce188bd",
|
|
5
|
+
"build_time": "2026-08-13T02:18:00.852Z"
|
|
6
6
|
}
|
|
@@ -183,7 +183,7 @@ async function checkTwinReachable(_configDir) {
|
|
|
183
183
|
});
|
|
184
184
|
let harness;
|
|
185
185
|
try {
|
|
186
|
-
const { bootTwin } = await import('./twinHarness-
|
|
186
|
+
const { bootTwin } = await import('./twinHarness-NMFJCPJE.js');
|
|
187
187
|
harness = await bootTwin({
|
|
188
188
|
twin: "github",
|
|
189
189
|
seedState: void 0,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// ../packages/twin-github/package.json
|
|
2
2
|
var package_default = {
|
|
3
|
-
version: "0.10.
|
|
3
|
+
version: "0.10.11"};
|
|
4
4
|
|
|
5
5
|
// ../packages/twin-slack/package.json
|
|
6
6
|
var package_default2 = {
|
|
@@ -39,7 +39,7 @@ var TWIN_REGISTRY = {
|
|
|
39
39
|
defaultSeedState,
|
|
40
40
|
GitHubDomain,
|
|
41
41
|
openGitHubCloneDatabase
|
|
42
|
-
} = await import('./src-
|
|
42
|
+
} = await import('./src-XBWNIRBG.js');
|
|
43
43
|
const db = openGitHubCloneDatabase();
|
|
44
44
|
const domain = new GitHubDomain(db);
|
|
45
45
|
domain.seed(seedState === void 0 ? defaultSeedState() : seedState);
|
|
@@ -173,7 +173,7 @@ var TWIN_REGISTRY = {
|
|
|
173
173
|
}
|
|
174
174
|
};
|
|
175
175
|
async function createGitHubSmokeApp() {
|
|
176
|
-
const { createGitHubCloneApp } = await import('./src-
|
|
176
|
+
const { createGitHubCloneApp } = await import('./src-XBWNIRBG.js');
|
|
177
177
|
return createGitHubCloneApp();
|
|
178
178
|
}
|
|
179
179
|
function defaultPortFor(twin, env = process.env) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { readManifest, normalizeManifestTwins } from './chunk-ABM3CMQB.js';
|
|
2
|
-
import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, evaluationCounts } from './chunk-
|
|
2
|
+
import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, evaluationCounts } from './chunk-UHX5HOBR.js';
|
|
3
3
|
import { MOUNTED_TWINS, HostedAuthError, HostedDiscardRefusedError, HostedQuotaError, HostedOrchError, HostedTrialError, agentResponseSchema } from './chunk-X66JOOO7.js';
|
|
4
4
|
import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
|
|
5
5
|
import { randomUUID, createHash } from 'node:crypto';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-
|
|
1
|
+
import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-2A5HJP46.js';
|
|
2
2
|
import { createFileBackedRecorderStore, createRecorderStore } from './chunk-OW7VVW6X.js';
|
|
3
3
|
|
|
4
4
|
// src/recorder/recorder.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getAvailablePort } from './chunk-XDU6TD4O.js';
|
|
2
2
|
import { buildEgressAllowlist, readBlockedEgress } from './chunk-CBFKZZBR.js';
|
|
3
|
-
import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-
|
|
4
|
-
import { createRecorder, bootTwin } from './chunk-
|
|
3
|
+
import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-UHX5HOBR.js';
|
|
4
|
+
import { createRecorder, bootTwin } from './chunk-EJFMWBZE.js';
|
|
5
5
|
import { eventSchema } from './chunk-VBATFCWR.js';
|
|
6
6
|
import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
|
|
7
7
|
import { serve } from '@hono/node-server';
|
|
@@ -2,7 +2,7 @@ import { criterionSchema, finalizeResponseSchema, HostedDiscardRefusedError, Hos
|
|
|
2
2
|
import { seedSchema, parseSeed, defaultSeedState as defaultSeedState$2 } from './chunk-KIUIKAVU.js';
|
|
3
3
|
import { gmailSeedSchema, defaultSeedState } from './chunk-NJ246QPJ.js';
|
|
4
4
|
import { linearSeedSchema, defaultSeedState as defaultSeedState$1 } from './chunk-ZKID2HS3.js';
|
|
5
|
-
import { isTwinName, TWIN_REGISTRY } from './chunk-
|
|
5
|
+
import { isTwinName, TWIN_REGISTRY } from './chunk-2A5HJP46.js';
|
|
6
6
|
import { toTwinHttpEventRow } from './chunk-OW7VVW6X.js';
|
|
7
7
|
import { redactEvent, redactSecrets } from './chunk-SG6ZTIMT.js';
|
|
8
8
|
import { mkdir, appendFile, writeFile, readFile } from 'node:fs/promises';
|
|
@@ -1248,13 +1248,15 @@ function normalizeAgentSdk(value) {
|
|
|
1248
1248
|
return trimmed.length > 0 ? trimmed : null;
|
|
1249
1249
|
}
|
|
1250
1250
|
|
|
1251
|
+
// ../packages/wire/dist/run-completeness.js
|
|
1252
|
+
var PRE_SATISFIED_REASON = "already_true_in_seed";
|
|
1253
|
+
|
|
1251
1254
|
// src/hosted/evalResultView.ts
|
|
1252
1255
|
function outcomeOf(result) {
|
|
1253
1256
|
if (result.outcome) return result.outcome;
|
|
1254
1257
|
if (result.skipped) return "skipped";
|
|
1255
1258
|
return result.passed ? "passed" : "failed";
|
|
1256
1259
|
}
|
|
1257
|
-
var PRE_SATISFIED_REASON = "already_true_in_seed";
|
|
1258
1260
|
function isPreSatisfied(result) {
|
|
1259
1261
|
return result.skipped && result.reason === PRE_SATISFIED_REASON;
|
|
1260
1262
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { newGroupId, reassuranceBox, twinReadyLine, trialsHeaderLine, trialLine, summaryLines, evaluatingLine, criterionPhrase } from './chunk-RGZBC7NF.js';
|
|
2
2
|
import { DemoCapacityError, capacityLabel, parseCapacityMarker, capacityKindFrom } from './chunk-ZX4WNSZ5.js';
|
|
3
|
-
import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-
|
|
3
|
+
import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-F4V3FN3A.js';
|
|
4
4
|
import { getAvailablePort } from './chunk-XDU6TD4O.js';
|
|
5
5
|
import './chunk-CBFKZZBR.js';
|
|
6
|
-
import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-
|
|
6
|
+
import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-UHX5HOBR.js';
|
|
7
7
|
import './chunk-NW7HGA2K.js';
|
|
8
8
|
import { HostedQuotaError, HostedOrchError } from './chunk-X66JOOO7.js';
|
|
9
9
|
import './chunk-KIUIKAVU.js';
|
|
10
10
|
import './chunk-NJ246QPJ.js';
|
|
11
11
|
import './chunk-ZKID2HS3.js';
|
|
12
|
-
import { bootTwin } from './chunk-
|
|
13
|
-
import './chunk-
|
|
12
|
+
import { bootTwin } from './chunk-EJFMWBZE.js';
|
|
13
|
+
import './chunk-2A5HJP46.js';
|
|
14
14
|
import './chunk-OW7VVW6X.js';
|
|
15
15
|
import './chunk-VBATFCWR.js';
|
|
16
16
|
import './chunk-SG6ZTIMT.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { newGroupId, criterionPhrase } from './chunk-RGZBC7NF.js';
|
|
2
|
-
import { runTaskHosted, resolveRunAgentIdentity } from './chunk-
|
|
2
|
+
import { runTaskHosted, resolveRunAgentIdentity } from './chunk-ATIYRECS.js';
|
|
3
3
|
import './chunk-ABM3CMQB.js';
|
|
4
|
-
import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-
|
|
4
|
+
import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-UHX5HOBR.js';
|
|
5
5
|
import './chunk-NW7HGA2K.js';
|
|
6
6
|
import { HostedQuotaError, HostedTrialError } from './chunk-X66JOOO7.js';
|
|
7
7
|
import './chunk-KIUIKAVU.js';
|
|
8
8
|
import './chunk-NJ246QPJ.js';
|
|
9
9
|
import './chunk-ZKID2HS3.js';
|
|
10
|
-
import './chunk-
|
|
10
|
+
import './chunk-2A5HJP46.js';
|
|
11
11
|
import './chunk-OW7VVW6X.js';
|
|
12
12
|
import './chunk-VBATFCWR.js';
|
|
13
13
|
import './chunk-SG6ZTIMT.js';
|
package/dist/src/cli/main.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, VERDICT_ARTIFACT_VERSION, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-
|
|
2
|
+
import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, VERDICT_ARTIFACT_VERSION, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-ATIYRECS.js';
|
|
3
3
|
import { readManifest, writeManifest, MANIFEST_JSON, readRequiredManifest, normalizeManifestTwins } from '../../chunk-ABM3CMQB.js';
|
|
4
|
-
import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-
|
|
4
|
+
import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-F4V3FN3A.js';
|
|
5
5
|
import '../../chunk-XDU6TD4O.js';
|
|
6
6
|
import '../../chunk-CBFKZZBR.js';
|
|
7
|
-
import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, outcomeOf, readConfigTwins, scoreCountsSummary, markerFor, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs, isPreSatisfied } from '../../chunk-
|
|
7
|
+
import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, outcomeOf, readConfigTwins, scoreCountsSummary, markerFor, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs, isPreSatisfied } from '../../chunk-UHX5HOBR.js';
|
|
8
8
|
import '../../chunk-NW7HGA2K.js';
|
|
9
9
|
import { MOUNTED_TWINS, deriveAgentSlug, exitCodeFor, HostedUsageError, HostedOrchError, HostedAuthError, HostedQuotaError } from '../../chunk-X66JOOO7.js';
|
|
10
10
|
import { TAPE_ASSERTABLE_TOOLS } from '../../chunk-FKZZWWYC.js';
|
|
@@ -15,8 +15,8 @@ import '../../chunk-NJ246QPJ.js';
|
|
|
15
15
|
import { LINEAR_CHECKS } from '../../chunk-XBT6ZLBG.js';
|
|
16
16
|
import '../../chunk-ZKID2HS3.js';
|
|
17
17
|
import { oneOf, defineCheck, repoRef, VACUITY_SENTINEL_NUMBER, childStatePath, VACUITY_SENTINEL, statePath, templateSlots, renderCheck, checksDigest, checkPattern, checkNearMissPattern } from '../../chunk-JWJYNAWI.js';
|
|
18
|
-
import '../../chunk-
|
|
19
|
-
import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-
|
|
18
|
+
import '../../chunk-EJFMWBZE.js';
|
|
19
|
+
import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-2A5HJP46.js';
|
|
20
20
|
import '../../chunk-OW7VVW6X.js';
|
|
21
21
|
import { isLegacyEventRow, eventSchema } from '../../chunk-VBATFCWR.js';
|
|
22
22
|
import { redactEvent, redactSecrets } from '../../chunk-SG6ZTIMT.js';
|
|
@@ -850,7 +850,7 @@ async function throwForStatus(res) {
|
|
|
850
850
|
|
|
851
851
|
// src/task/seed-verifier.ts
|
|
852
852
|
async function verifySeedWithTwin(seed) {
|
|
853
|
-
const { GitHubDomain, openGitHubCloneDatabase } = await import('../../src-
|
|
853
|
+
const { GitHubDomain, openGitHubCloneDatabase } = await import('../../src-XBWNIRBG.js');
|
|
854
854
|
const db = openGitHubCloneDatabase(":memory:");
|
|
855
855
|
try {
|
|
856
856
|
new GitHubDomain(db).seed(seed);
|
|
@@ -4580,7 +4580,7 @@ var DEFAULT_AGENT_COMMAND = `node ${DEFAULT_AGENT_FILE}`;
|
|
|
4580
4580
|
var MANIFEST_SCHEMA_URL = "https://pome.sh/schemas/v1/pome.json";
|
|
4581
4581
|
var MAX_UNREADABLE_PATHS_SHOWN = 5;
|
|
4582
4582
|
function readPackageVersion() {
|
|
4583
|
-
if ("0.23.
|
|
4583
|
+
if ("0.23.40".length > 0) return "0.23.40";
|
|
4584
4584
|
try {
|
|
4585
4585
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
4586
4586
|
const candidates = [
|
|
@@ -5035,7 +5035,7 @@ function createProgram() {
|
|
|
5035
5035
|
return;
|
|
5036
5036
|
}
|
|
5037
5037
|
{
|
|
5038
|
-
const { runDoctorChecks } = await import('../../checks-
|
|
5038
|
+
const { runDoctorChecks } = await import('../../checks-A5EFOMZS.js');
|
|
5039
5039
|
const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
|
|
5040
5040
|
const doctorReport = await runDoctorChecks({ mode: useLocal ? "full" : "hosted" });
|
|
5041
5041
|
if (!doctorReport.ok) {
|
|
@@ -5073,7 +5073,7 @@ function createProgram() {
|
|
|
5073
5073
|
taskForRuns.config.runs
|
|
5074
5074
|
);
|
|
5075
5075
|
if (k > 1) {
|
|
5076
|
-
const { runTrialGroup } = await import('../../runTrialGroup-
|
|
5076
|
+
const { runTrialGroup } = await import('../../runTrialGroup-OOTTXL3B.js');
|
|
5077
5077
|
const fileForRerun = relative(process.cwd(), file);
|
|
5078
5078
|
const rerunCommand = defaultTask ? options.trials !== void 0 ? `pome run -n ${k}` : "pome run" : `pome run ${fileForRerun && !fileForRerun.startsWith("..") ? fileForRerun : file} -n ${k}`;
|
|
5079
5079
|
const groupResult = await runTrialGroup({
|
|
@@ -5167,7 +5167,7 @@ function createProgram() {
|
|
|
5167
5167
|
process.exitCode = 5;
|
|
5168
5168
|
return;
|
|
5169
5169
|
}
|
|
5170
|
-
const { runDemo } = await import('../../runDemo-
|
|
5170
|
+
const { runDemo } = await import('../../runDemo-4YTN6E2H.js');
|
|
5171
5171
|
const result = await runDemo({
|
|
5172
5172
|
apiBase: opts.apiUrl.replace(/\/$/, ""),
|
|
5173
5173
|
dashboardBase: process.env.POME_DASHBOARD_URL ?? DEFAULT_DASHBOARD_URL,
|
|
@@ -5185,7 +5185,7 @@ function createProgram() {
|
|
|
5185
5185
|
program.command("doctor").description(
|
|
5186
5186
|
"Check the agent\u2194twin wiring: pome.json (or pome.yaml) present + valid, the local twin boots + serves, requests routed to the twin (not a hardcoded production host), egress floor active. On failure prints one named cause (file:line where knowable) + one concrete fix and exits non-zero."
|
|
5187
5187
|
).action(async () => {
|
|
5188
|
-
const { runDoctorChecks } = await import('../../checks-
|
|
5188
|
+
const { runDoctorChecks } = await import('../../checks-A5EFOMZS.js');
|
|
5189
5189
|
const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
|
|
5190
5190
|
const report = await runDoctorChecks();
|
|
5191
5191
|
for (const line of renderDoctorReport(report, { passNote: true })) console.error(line);
|
|
@@ -5361,7 +5361,7 @@ function createProgram() {
|
|
|
5361
5361
|
).description(
|
|
5362
5362
|
"Start a standalone twin as a long-lived foreground server (Ctrl-C to stop)"
|
|
5363
5363
|
).action(async (name, options) => {
|
|
5364
|
-
const { runTwinStartCommand } = await import('../../twinStart-
|
|
5364
|
+
const { runTwinStartCommand } = await import('../../twinStart-IIF4JZJS.js');
|
|
5365
5365
|
await runTwinStartCommand(name, options);
|
|
5366
5366
|
});
|
|
5367
5367
|
twin.command("reset").argument("[name]", "Twin name (default: github)", "github").description("Reset standalone twin state").action(async (name) => {
|
|
@@ -704,14 +704,33 @@ var TwinError = class extends Error {
|
|
|
704
704
|
this.documentationUrl = documentationUrl;
|
|
705
705
|
}
|
|
706
706
|
};
|
|
707
|
+
var GENERIC_DOCUMENTATION_URL = "https://docs.github.com/rest";
|
|
707
708
|
function githubError(message, status, errors, documentationUrl) {
|
|
708
709
|
return {
|
|
709
710
|
message,
|
|
710
|
-
documentation_url: documentationUrl ??
|
|
711
|
+
documentation_url: documentationUrl ?? GENERIC_DOCUMENTATION_URL,
|
|
711
712
|
status: String(status),
|
|
712
713
|
...errors ? { errors } : {}
|
|
713
714
|
};
|
|
714
715
|
}
|
|
716
|
+
function withOperationDocs(envelope, documentationUrl) {
|
|
717
|
+
if (envelope.status === 501)
|
|
718
|
+
return envelope;
|
|
719
|
+
const body = envelope.body;
|
|
720
|
+
if (!body || typeof body !== "object")
|
|
721
|
+
return envelope;
|
|
722
|
+
const current = body.documentation_url;
|
|
723
|
+
if (current !== GENERIC_DOCUMENTATION_URL)
|
|
724
|
+
return envelope;
|
|
725
|
+
return { status: envelope.status, body: { ...body, documentation_url: documentationUrl } };
|
|
726
|
+
}
|
|
727
|
+
function withDocumentationUrl(error, documentationUrl) {
|
|
728
|
+
if (!(error instanceof TwinError))
|
|
729
|
+
return error;
|
|
730
|
+
if (error.documentationUrl !== void 0 || error.status === 501)
|
|
731
|
+
return error;
|
|
732
|
+
return new TwinError(error.message, error.status, error.errors, documentationUrl);
|
|
733
|
+
}
|
|
715
734
|
function notFound(message = "Not Found") {
|
|
716
735
|
throw new TwinError(message, 404);
|
|
717
736
|
}
|
|
@@ -734,6 +753,673 @@ function validationFailed(field, code, value) {
|
|
|
734
753
|
]);
|
|
735
754
|
}
|
|
736
755
|
|
|
756
|
+
// ../packages/twin-github/dist/fixtures/operation-docs.raw.json
|
|
757
|
+
var operation_docs_raw_default = {
|
|
758
|
+
operations: {
|
|
759
|
+
"checks/create": {
|
|
760
|
+
method: "POST",
|
|
761
|
+
path: "/repos/{owner}/{repo}/check-runs",
|
|
762
|
+
category: "checks",
|
|
763
|
+
subcategory: "runs",
|
|
764
|
+
url: "https://docs.github.com/rest/checks/runs#create-a-check-run"
|
|
765
|
+
},
|
|
766
|
+
"checks/list-for-ref": {
|
|
767
|
+
method: "GET",
|
|
768
|
+
path: "/repos/{owner}/{repo}/commits/{ref}/check-runs",
|
|
769
|
+
category: "checks",
|
|
770
|
+
subcategory: "runs",
|
|
771
|
+
url: "https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference"
|
|
772
|
+
},
|
|
773
|
+
"git/create-ref": {
|
|
774
|
+
method: "POST",
|
|
775
|
+
path: "/repos/{owner}/{repo}/git/refs",
|
|
776
|
+
category: "git",
|
|
777
|
+
subcategory: "refs",
|
|
778
|
+
url: "https://docs.github.com/rest/git/refs#create-a-reference"
|
|
779
|
+
},
|
|
780
|
+
"git/delete-ref": {
|
|
781
|
+
method: "DELETE",
|
|
782
|
+
path: "/repos/{owner}/{repo}/git/refs/{ref}",
|
|
783
|
+
category: "git",
|
|
784
|
+
subcategory: "refs",
|
|
785
|
+
url: "https://docs.github.com/rest/git/refs#delete-a-reference"
|
|
786
|
+
},
|
|
787
|
+
"issues/add-assignees": {
|
|
788
|
+
method: "POST",
|
|
789
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}/assignees",
|
|
790
|
+
category: "issues",
|
|
791
|
+
subcategory: "assignees",
|
|
792
|
+
url: "https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue"
|
|
793
|
+
},
|
|
794
|
+
"issues/add-labels": {
|
|
795
|
+
method: "POST",
|
|
796
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}/labels",
|
|
797
|
+
category: "issues",
|
|
798
|
+
subcategory: "labels",
|
|
799
|
+
url: "https://docs.github.com/rest/issues/labels#add-labels-to-an-issue"
|
|
800
|
+
},
|
|
801
|
+
"issues/create": {
|
|
802
|
+
method: "POST",
|
|
803
|
+
path: "/repos/{owner}/{repo}/issues",
|
|
804
|
+
category: "issues",
|
|
805
|
+
subcategory: "issues",
|
|
806
|
+
url: "https://docs.github.com/rest/issues/issues#create-an-issue"
|
|
807
|
+
},
|
|
808
|
+
"issues/create-comment": {
|
|
809
|
+
method: "POST",
|
|
810
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}/comments",
|
|
811
|
+
category: "issues",
|
|
812
|
+
subcategory: "comments",
|
|
813
|
+
url: "https://docs.github.com/rest/issues/comments#create-an-issue-comment"
|
|
814
|
+
},
|
|
815
|
+
"issues/create-label": {
|
|
816
|
+
method: "POST",
|
|
817
|
+
path: "/repos/{owner}/{repo}/labels",
|
|
818
|
+
category: "issues",
|
|
819
|
+
subcategory: "labels",
|
|
820
|
+
url: "https://docs.github.com/rest/issues/labels#create-a-label"
|
|
821
|
+
},
|
|
822
|
+
"issues/create-milestone": {
|
|
823
|
+
method: "POST",
|
|
824
|
+
path: "/repos/{owner}/{repo}/milestones",
|
|
825
|
+
category: "issues",
|
|
826
|
+
subcategory: "milestones",
|
|
827
|
+
url: "https://docs.github.com/rest/issues/milestones#create-a-milestone"
|
|
828
|
+
},
|
|
829
|
+
"issues/delete-comment": {
|
|
830
|
+
method: "DELETE",
|
|
831
|
+
path: "/repos/{owner}/{repo}/issues/comments/{comment_id}",
|
|
832
|
+
category: "issues",
|
|
833
|
+
subcategory: "comments",
|
|
834
|
+
url: "https://docs.github.com/rest/issues/comments#delete-an-issue-comment"
|
|
835
|
+
},
|
|
836
|
+
"issues/delete-milestone": {
|
|
837
|
+
method: "DELETE",
|
|
838
|
+
path: "/repos/{owner}/{repo}/milestones/{milestone_number}",
|
|
839
|
+
category: "issues",
|
|
840
|
+
subcategory: "milestones",
|
|
841
|
+
url: "https://docs.github.com/rest/issues/milestones#delete-a-milestone"
|
|
842
|
+
},
|
|
843
|
+
"issues/get": {
|
|
844
|
+
method: "GET",
|
|
845
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}",
|
|
846
|
+
category: "issues",
|
|
847
|
+
subcategory: "issues",
|
|
848
|
+
url: "https://docs.github.com/rest/issues/issues#get-an-issue"
|
|
849
|
+
},
|
|
850
|
+
"issues/list-comments": {
|
|
851
|
+
method: "GET",
|
|
852
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}/comments",
|
|
853
|
+
category: "issues",
|
|
854
|
+
subcategory: "comments",
|
|
855
|
+
url: "https://docs.github.com/rest/issues/comments#list-issue-comments"
|
|
856
|
+
},
|
|
857
|
+
"issues/list-for-repo": {
|
|
858
|
+
method: "GET",
|
|
859
|
+
path: "/repos/{owner}/{repo}/issues",
|
|
860
|
+
category: "issues",
|
|
861
|
+
subcategory: "issues",
|
|
862
|
+
url: "https://docs.github.com/rest/issues/issues#list-repository-issues"
|
|
863
|
+
},
|
|
864
|
+
"issues/list-labels-for-repo": {
|
|
865
|
+
method: "GET",
|
|
866
|
+
path: "/repos/{owner}/{repo}/labels",
|
|
867
|
+
category: "issues",
|
|
868
|
+
subcategory: "labels",
|
|
869
|
+
url: "https://docs.github.com/rest/issues/labels#list-labels-for-a-repository"
|
|
870
|
+
},
|
|
871
|
+
"issues/list-labels-on-issue": {
|
|
872
|
+
method: "GET",
|
|
873
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}/labels",
|
|
874
|
+
category: "issues",
|
|
875
|
+
subcategory: "labels",
|
|
876
|
+
url: "https://docs.github.com/rest/issues/labels#list-labels-for-an-issue"
|
|
877
|
+
},
|
|
878
|
+
"issues/list-milestones": {
|
|
879
|
+
method: "GET",
|
|
880
|
+
path: "/repos/{owner}/{repo}/milestones",
|
|
881
|
+
category: "issues",
|
|
882
|
+
subcategory: "milestones",
|
|
883
|
+
url: "https://docs.github.com/rest/issues/milestones#list-milestones"
|
|
884
|
+
},
|
|
885
|
+
"issues/remove-label": {
|
|
886
|
+
method: "DELETE",
|
|
887
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}/labels/{name}",
|
|
888
|
+
category: "issues",
|
|
889
|
+
subcategory: "labels",
|
|
890
|
+
url: "https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue"
|
|
891
|
+
},
|
|
892
|
+
"issues/update": {
|
|
893
|
+
method: "PATCH",
|
|
894
|
+
path: "/repos/{owner}/{repo}/issues/{issue_number}",
|
|
895
|
+
category: "issues",
|
|
896
|
+
subcategory: "issues",
|
|
897
|
+
url: "https://docs.github.com/rest/issues/issues#update-an-issue"
|
|
898
|
+
},
|
|
899
|
+
"issues/update-comment": {
|
|
900
|
+
method: "PATCH",
|
|
901
|
+
path: "/repos/{owner}/{repo}/issues/comments/{comment_id}",
|
|
902
|
+
category: "issues",
|
|
903
|
+
subcategory: "comments",
|
|
904
|
+
url: "https://docs.github.com/rest/issues/comments#update-an-issue-comment"
|
|
905
|
+
},
|
|
906
|
+
"issues/update-milestone": {
|
|
907
|
+
method: "PATCH",
|
|
908
|
+
path: "/repos/{owner}/{repo}/milestones/{milestone_number}",
|
|
909
|
+
category: "issues",
|
|
910
|
+
subcategory: "milestones",
|
|
911
|
+
url: "https://docs.github.com/rest/issues/milestones#update-a-milestone"
|
|
912
|
+
},
|
|
913
|
+
"pulls/create": {
|
|
914
|
+
method: "POST",
|
|
915
|
+
path: "/repos/{owner}/{repo}/pulls",
|
|
916
|
+
category: "pulls",
|
|
917
|
+
subcategory: "pulls",
|
|
918
|
+
url: "https://docs.github.com/rest/pulls/pulls#create-a-pull-request"
|
|
919
|
+
},
|
|
920
|
+
"pulls/create-reply-for-review-comment": {
|
|
921
|
+
method: "POST",
|
|
922
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies",
|
|
923
|
+
category: "pulls",
|
|
924
|
+
subcategory: "comments",
|
|
925
|
+
url: "https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment"
|
|
926
|
+
},
|
|
927
|
+
"pulls/create-review": {
|
|
928
|
+
method: "POST",
|
|
929
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/reviews",
|
|
930
|
+
category: "pulls",
|
|
931
|
+
subcategory: "reviews",
|
|
932
|
+
url: "https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request"
|
|
933
|
+
},
|
|
934
|
+
"pulls/create-review-comment": {
|
|
935
|
+
method: "POST",
|
|
936
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/comments",
|
|
937
|
+
category: "pulls",
|
|
938
|
+
subcategory: "comments",
|
|
939
|
+
url: "https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request"
|
|
940
|
+
},
|
|
941
|
+
"pulls/get": {
|
|
942
|
+
method: "GET",
|
|
943
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}",
|
|
944
|
+
category: "pulls",
|
|
945
|
+
subcategory: "pulls",
|
|
946
|
+
url: "https://docs.github.com/rest/pulls/pulls#get-a-pull-request"
|
|
947
|
+
},
|
|
948
|
+
"pulls/list": {
|
|
949
|
+
method: "GET",
|
|
950
|
+
path: "/repos/{owner}/{repo}/pulls",
|
|
951
|
+
category: "pulls",
|
|
952
|
+
subcategory: "pulls",
|
|
953
|
+
url: "https://docs.github.com/rest/pulls/pulls#list-pull-requests"
|
|
954
|
+
},
|
|
955
|
+
"pulls/list-commits": {
|
|
956
|
+
method: "GET",
|
|
957
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/commits",
|
|
958
|
+
category: "pulls",
|
|
959
|
+
subcategory: "pulls",
|
|
960
|
+
url: "https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request"
|
|
961
|
+
},
|
|
962
|
+
"pulls/list-files": {
|
|
963
|
+
method: "GET",
|
|
964
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/files",
|
|
965
|
+
category: "pulls",
|
|
966
|
+
subcategory: "pulls",
|
|
967
|
+
url: "https://docs.github.com/rest/pulls/pulls#list-pull-requests-files"
|
|
968
|
+
},
|
|
969
|
+
"pulls/list-review-comments": {
|
|
970
|
+
method: "GET",
|
|
971
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/comments",
|
|
972
|
+
category: "pulls",
|
|
973
|
+
subcategory: "comments",
|
|
974
|
+
url: "https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request"
|
|
975
|
+
},
|
|
976
|
+
"pulls/list-reviews": {
|
|
977
|
+
method: "GET",
|
|
978
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/reviews",
|
|
979
|
+
category: "pulls",
|
|
980
|
+
subcategory: "reviews",
|
|
981
|
+
url: "https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request"
|
|
982
|
+
},
|
|
983
|
+
"pulls/merge": {
|
|
984
|
+
method: "PUT",
|
|
985
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/merge",
|
|
986
|
+
category: "pulls",
|
|
987
|
+
subcategory: "pulls",
|
|
988
|
+
url: "https://docs.github.com/rest/pulls/pulls#merge-a-pull-request"
|
|
989
|
+
},
|
|
990
|
+
"pulls/update": {
|
|
991
|
+
method: "PATCH",
|
|
992
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}",
|
|
993
|
+
category: "pulls",
|
|
994
|
+
subcategory: "pulls",
|
|
995
|
+
url: "https://docs.github.com/rest/pulls/pulls#update-a-pull-request"
|
|
996
|
+
},
|
|
997
|
+
"pulls/update-branch": {
|
|
998
|
+
method: "PUT",
|
|
999
|
+
path: "/repos/{owner}/{repo}/pulls/{pull_number}/update-branch",
|
|
1000
|
+
category: "pulls",
|
|
1001
|
+
subcategory: "pulls",
|
|
1002
|
+
url: "https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch"
|
|
1003
|
+
},
|
|
1004
|
+
"repos/add-collaborator": {
|
|
1005
|
+
method: "PUT",
|
|
1006
|
+
path: "/repos/{owner}/{repo}/collaborators/{username}",
|
|
1007
|
+
category: "collaborators",
|
|
1008
|
+
subcategory: "collaborators",
|
|
1009
|
+
url: "https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator"
|
|
1010
|
+
},
|
|
1011
|
+
"repos/check-collaborator": {
|
|
1012
|
+
method: "GET",
|
|
1013
|
+
path: "/repos/{owner}/{repo}/collaborators/{username}",
|
|
1014
|
+
category: "collaborators",
|
|
1015
|
+
subcategory: "collaborators",
|
|
1016
|
+
url: "https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator"
|
|
1017
|
+
},
|
|
1018
|
+
"repos/compare-commits": {
|
|
1019
|
+
method: "GET",
|
|
1020
|
+
path: "/repos/{owner}/{repo}/compare/{basehead}",
|
|
1021
|
+
category: "commits",
|
|
1022
|
+
subcategory: "commits",
|
|
1023
|
+
url: "https://docs.github.com/rest/commits/commits#compare-two-commits"
|
|
1024
|
+
},
|
|
1025
|
+
"repos/create-commit-status": {
|
|
1026
|
+
method: "POST",
|
|
1027
|
+
path: "/repos/{owner}/{repo}/statuses/{sha}",
|
|
1028
|
+
category: "commits",
|
|
1029
|
+
subcategory: "statuses",
|
|
1030
|
+
url: "https://docs.github.com/rest/commits/statuses#create-a-commit-status"
|
|
1031
|
+
},
|
|
1032
|
+
"repos/create-for-authenticated-user": {
|
|
1033
|
+
method: "POST",
|
|
1034
|
+
path: "/user/repos",
|
|
1035
|
+
category: "repos",
|
|
1036
|
+
subcategory: "repos",
|
|
1037
|
+
url: "https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user"
|
|
1038
|
+
},
|
|
1039
|
+
"repos/create-fork": {
|
|
1040
|
+
method: "POST",
|
|
1041
|
+
path: "/repos/{owner}/{repo}/forks",
|
|
1042
|
+
category: "repos",
|
|
1043
|
+
subcategory: "forks",
|
|
1044
|
+
url: "https://docs.github.com/rest/repos/forks#create-a-fork"
|
|
1045
|
+
},
|
|
1046
|
+
"repos/create-in-org": {
|
|
1047
|
+
method: "POST",
|
|
1048
|
+
path: "/orgs/{org}/repos",
|
|
1049
|
+
category: "repos",
|
|
1050
|
+
subcategory: "repos",
|
|
1051
|
+
url: "https://docs.github.com/rest/repos/repos#create-an-organization-repository"
|
|
1052
|
+
},
|
|
1053
|
+
"repos/create-or-update-file-contents": {
|
|
1054
|
+
method: "PUT",
|
|
1055
|
+
path: "/repos/{owner}/{repo}/contents/{path}",
|
|
1056
|
+
category: "repos",
|
|
1057
|
+
subcategory: "contents",
|
|
1058
|
+
url: "https://docs.github.com/rest/repos/contents#create-or-update-file-contents"
|
|
1059
|
+
},
|
|
1060
|
+
"repos/create-release": {
|
|
1061
|
+
method: "POST",
|
|
1062
|
+
path: "/repos/{owner}/{repo}/releases",
|
|
1063
|
+
category: "releases",
|
|
1064
|
+
subcategory: "releases",
|
|
1065
|
+
url: "https://docs.github.com/rest/releases/releases#create-a-release"
|
|
1066
|
+
},
|
|
1067
|
+
"repos/delete-file": {
|
|
1068
|
+
method: "DELETE",
|
|
1069
|
+
path: "/repos/{owner}/{repo}/contents/{path}",
|
|
1070
|
+
category: "repos",
|
|
1071
|
+
subcategory: "contents",
|
|
1072
|
+
url: "https://docs.github.com/rest/repos/contents#delete-a-file"
|
|
1073
|
+
},
|
|
1074
|
+
"repos/get": {
|
|
1075
|
+
method: "GET",
|
|
1076
|
+
path: "/repos/{owner}/{repo}",
|
|
1077
|
+
category: "repos",
|
|
1078
|
+
subcategory: "repos",
|
|
1079
|
+
url: "https://docs.github.com/rest/repos/repos#get-a-repository"
|
|
1080
|
+
},
|
|
1081
|
+
"repos/get-branch": {
|
|
1082
|
+
method: "GET",
|
|
1083
|
+
path: "/repos/{owner}/{repo}/branches/{branch}",
|
|
1084
|
+
category: "branches",
|
|
1085
|
+
subcategory: "branches",
|
|
1086
|
+
url: "https://docs.github.com/rest/branches/branches#get-a-branch"
|
|
1087
|
+
},
|
|
1088
|
+
"repos/get-combined-status-for-ref": {
|
|
1089
|
+
method: "GET",
|
|
1090
|
+
path: "/repos/{owner}/{repo}/commits/{ref}/status",
|
|
1091
|
+
category: "commits",
|
|
1092
|
+
subcategory: "statuses",
|
|
1093
|
+
url: "https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference"
|
|
1094
|
+
},
|
|
1095
|
+
"repos/get-commit": {
|
|
1096
|
+
method: "GET",
|
|
1097
|
+
path: "/repos/{owner}/{repo}/commits/{ref}",
|
|
1098
|
+
category: "commits",
|
|
1099
|
+
subcategory: "commits",
|
|
1100
|
+
url: "https://docs.github.com/rest/commits/commits#get-a-commit"
|
|
1101
|
+
},
|
|
1102
|
+
"repos/get-content": {
|
|
1103
|
+
method: "GET",
|
|
1104
|
+
path: "/repos/{owner}/{repo}/contents/{path}",
|
|
1105
|
+
category: "repos",
|
|
1106
|
+
subcategory: "contents",
|
|
1107
|
+
url: "https://docs.github.com/rest/repos/contents#get-repository-content"
|
|
1108
|
+
},
|
|
1109
|
+
"repos/get-latest-release": {
|
|
1110
|
+
method: "GET",
|
|
1111
|
+
path: "/repos/{owner}/{repo}/releases/latest",
|
|
1112
|
+
category: "releases",
|
|
1113
|
+
subcategory: "releases",
|
|
1114
|
+
url: "https://docs.github.com/rest/releases/releases#get-the-latest-release"
|
|
1115
|
+
},
|
|
1116
|
+
"repos/get-release-by-tag": {
|
|
1117
|
+
method: "GET",
|
|
1118
|
+
path: "/repos/{owner}/{repo}/releases/tags/{tag}",
|
|
1119
|
+
category: "releases",
|
|
1120
|
+
subcategory: "releases",
|
|
1121
|
+
url: "https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name"
|
|
1122
|
+
},
|
|
1123
|
+
"repos/list-branches": {
|
|
1124
|
+
method: "GET",
|
|
1125
|
+
path: "/repos/{owner}/{repo}/branches",
|
|
1126
|
+
category: "branches",
|
|
1127
|
+
subcategory: "branches",
|
|
1128
|
+
url: "https://docs.github.com/rest/branches/branches#list-branches"
|
|
1129
|
+
},
|
|
1130
|
+
"repos/list-collaborators": {
|
|
1131
|
+
method: "GET",
|
|
1132
|
+
path: "/repos/{owner}/{repo}/collaborators",
|
|
1133
|
+
category: "collaborators",
|
|
1134
|
+
subcategory: "collaborators",
|
|
1135
|
+
url: "https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators"
|
|
1136
|
+
},
|
|
1137
|
+
"repos/list-commits": {
|
|
1138
|
+
method: "GET",
|
|
1139
|
+
path: "/repos/{owner}/{repo}/commits",
|
|
1140
|
+
category: "commits",
|
|
1141
|
+
subcategory: "commits",
|
|
1142
|
+
url: "https://docs.github.com/rest/commits/commits#list-commits"
|
|
1143
|
+
},
|
|
1144
|
+
"repos/list-releases": {
|
|
1145
|
+
method: "GET",
|
|
1146
|
+
path: "/repos/{owner}/{repo}/releases",
|
|
1147
|
+
category: "releases",
|
|
1148
|
+
subcategory: "releases",
|
|
1149
|
+
url: "https://docs.github.com/rest/releases/releases#list-releases"
|
|
1150
|
+
},
|
|
1151
|
+
"repos/list-tags": {
|
|
1152
|
+
method: "GET",
|
|
1153
|
+
path: "/repos/{owner}/{repo}/tags",
|
|
1154
|
+
category: "repos",
|
|
1155
|
+
subcategory: "repos",
|
|
1156
|
+
url: "https://docs.github.com/rest/repos/repos#list-repository-tags"
|
|
1157
|
+
},
|
|
1158
|
+
"search/code": {
|
|
1159
|
+
method: "GET",
|
|
1160
|
+
path: "/search/code",
|
|
1161
|
+
category: "search",
|
|
1162
|
+
subcategory: "search",
|
|
1163
|
+
url: "https://docs.github.com/rest/search/search#search-code"
|
|
1164
|
+
},
|
|
1165
|
+
"search/commits": {
|
|
1166
|
+
method: "GET",
|
|
1167
|
+
path: "/search/commits",
|
|
1168
|
+
category: "search",
|
|
1169
|
+
subcategory: "search",
|
|
1170
|
+
url: "https://docs.github.com/rest/search/search#search-commits"
|
|
1171
|
+
},
|
|
1172
|
+
"search/issues-and-pull-requests": {
|
|
1173
|
+
method: "GET",
|
|
1174
|
+
path: "/search/issues",
|
|
1175
|
+
category: "search",
|
|
1176
|
+
subcategory: "search",
|
|
1177
|
+
url: "https://docs.github.com/rest/search/search#search-issues-and-pull-requests"
|
|
1178
|
+
},
|
|
1179
|
+
"search/repos": {
|
|
1180
|
+
method: "GET",
|
|
1181
|
+
path: "/search/repositories",
|
|
1182
|
+
category: "search",
|
|
1183
|
+
subcategory: "search",
|
|
1184
|
+
url: "https://docs.github.com/rest/search/search#search-repositories"
|
|
1185
|
+
},
|
|
1186
|
+
"search/users": {
|
|
1187
|
+
method: "GET",
|
|
1188
|
+
path: "/search/users",
|
|
1189
|
+
category: "search",
|
|
1190
|
+
subcategory: "search",
|
|
1191
|
+
url: "https://docs.github.com/rest/search/search#search-users"
|
|
1192
|
+
},
|
|
1193
|
+
"users/get-authenticated": {
|
|
1194
|
+
method: "GET",
|
|
1195
|
+
path: "/user",
|
|
1196
|
+
category: "users",
|
|
1197
|
+
subcategory: "users",
|
|
1198
|
+
url: "https://docs.github.com/rest/users/users#get-the-authenticated-user"
|
|
1199
|
+
}
|
|
1200
|
+
},
|
|
1201
|
+
rest: {
|
|
1202
|
+
"DELETE /repos/:owner/:repo/contents/*": "repos/delete-file",
|
|
1203
|
+
"DELETE /repos/:owner/:repo/git/refs/heads/*": "git/delete-ref",
|
|
1204
|
+
"DELETE /repos/:owner/:repo/issues/:number/labels/:name": "issues/remove-label",
|
|
1205
|
+
"DELETE /repos/:owner/:repo/issues/comments/:comment_id": "issues/delete-comment",
|
|
1206
|
+
"DELETE /repos/:owner/:repo/milestones/:number": "issues/delete-milestone",
|
|
1207
|
+
"GET /repos/:owner/:repo": "repos/get",
|
|
1208
|
+
"GET /repos/:owner/:repo/branches": "repos/list-branches",
|
|
1209
|
+
"GET /repos/:owner/:repo/branches/*": "repos/get-branch",
|
|
1210
|
+
"GET /repos/:owner/:repo/collaborators": "repos/list-collaborators",
|
|
1211
|
+
"GET /repos/:owner/:repo/collaborators/:username": "repos/check-collaborator",
|
|
1212
|
+
"GET /repos/:owner/:repo/commits": "repos/list-commits",
|
|
1213
|
+
"GET /repos/:owner/:repo/commits/:ref": "repos/get-commit",
|
|
1214
|
+
"GET /repos/:owner/:repo/commits/:ref/check-runs": "checks/list-for-ref",
|
|
1215
|
+
"GET /repos/:owner/:repo/commits/:ref/status": "repos/get-combined-status-for-ref",
|
|
1216
|
+
"GET /repos/:owner/:repo/compare/:basehead{.+}": "repos/compare-commits",
|
|
1217
|
+
"GET /repos/:owner/:repo/contents": "repos/get-content",
|
|
1218
|
+
"GET /repos/:owner/:repo/contents/*": "repos/get-content",
|
|
1219
|
+
"GET /repos/:owner/:repo/issues": "issues/list-for-repo",
|
|
1220
|
+
"GET /repos/:owner/:repo/issues/:number": "issues/get",
|
|
1221
|
+
"GET /repos/:owner/:repo/issues/:number/comments": "issues/list-comments",
|
|
1222
|
+
"GET /repos/:owner/:repo/issues/:number/labels": "issues/list-labels-on-issue",
|
|
1223
|
+
"GET /repos/:owner/:repo/labels": "issues/list-labels-for-repo",
|
|
1224
|
+
"GET /repos/:owner/:repo/milestones": "issues/list-milestones",
|
|
1225
|
+
"GET /repos/:owner/:repo/pulls": "pulls/list",
|
|
1226
|
+
"GET /repos/:owner/:repo/pulls/:number": "pulls/get",
|
|
1227
|
+
"GET /repos/:owner/:repo/pulls/:number/comments": "pulls/list-review-comments",
|
|
1228
|
+
"GET /repos/:owner/:repo/pulls/:number/commits": "pulls/list-commits",
|
|
1229
|
+
"GET /repos/:owner/:repo/pulls/:number/diff": null,
|
|
1230
|
+
"GET /repos/:owner/:repo/pulls/:number/files": "pulls/list-files",
|
|
1231
|
+
"GET /repos/:owner/:repo/pulls/:number/reviews": "pulls/list-reviews",
|
|
1232
|
+
"GET /repos/:owner/:repo/pulls/:number/status": null,
|
|
1233
|
+
"GET /repos/:owner/:repo/releases": "repos/list-releases",
|
|
1234
|
+
"GET /repos/:owner/:repo/releases/latest": "repos/get-latest-release",
|
|
1235
|
+
"GET /repos/:owner/:repo/releases/tags/*": "repos/get-release-by-tag",
|
|
1236
|
+
"GET /repos/:owner/:repo/tags": "repos/list-tags",
|
|
1237
|
+
"GET /search/code": "search/code",
|
|
1238
|
+
"GET /search/commits": "search/commits",
|
|
1239
|
+
"GET /search/issues": "search/issues-and-pull-requests",
|
|
1240
|
+
"GET /search/repositories": "search/repos",
|
|
1241
|
+
"GET /search/users": "search/users",
|
|
1242
|
+
"GET /user": "users/get-authenticated",
|
|
1243
|
+
"PATCH /repos/:owner/:repo/issues/:number": "issues/update",
|
|
1244
|
+
"PATCH /repos/:owner/:repo/issues/comments/:comment_id": "issues/update-comment",
|
|
1245
|
+
"PATCH /repos/:owner/:repo/milestones/:number": "issues/update-milestone",
|
|
1246
|
+
"PATCH /repos/:owner/:repo/pulls/:number": "pulls/update",
|
|
1247
|
+
"POST /orgs/:owner/repos": "repos/create-in-org",
|
|
1248
|
+
"POST /repos/:owner/:repo/check-runs": "checks/create",
|
|
1249
|
+
"POST /repos/:owner/:repo/forks": "repos/create-fork",
|
|
1250
|
+
"POST /repos/:owner/:repo/git/refs": "git/create-ref",
|
|
1251
|
+
"POST /repos/:owner/:repo/issues": "issues/create",
|
|
1252
|
+
"POST /repos/:owner/:repo/issues/:number/assignees": "issues/add-assignees",
|
|
1253
|
+
"POST /repos/:owner/:repo/issues/:number/comments": "issues/create-comment",
|
|
1254
|
+
"POST /repos/:owner/:repo/issues/:number/labels": "issues/add-labels",
|
|
1255
|
+
"POST /repos/:owner/:repo/labels": "issues/create-label",
|
|
1256
|
+
"POST /repos/:owner/:repo/milestones": "issues/create-milestone",
|
|
1257
|
+
"POST /repos/:owner/:repo/pulls": "pulls/create",
|
|
1258
|
+
"POST /repos/:owner/:repo/pulls/:number/comments": "pulls/create-review-comment",
|
|
1259
|
+
"POST /repos/:owner/:repo/pulls/:number/comments/:comment_id/replies": "pulls/create-reply-for-review-comment",
|
|
1260
|
+
"POST /repos/:owner/:repo/pulls/:number/reviews": "pulls/create-review",
|
|
1261
|
+
"POST /repos/:owner/:repo/releases": "repos/create-release",
|
|
1262
|
+
"POST /repos/:owner/:repo/statuses/:sha": "repos/create-commit-status",
|
|
1263
|
+
"POST /user/repos": "repos/create-for-authenticated-user",
|
|
1264
|
+
"PUT /repos/:owner/:repo/collaborators/:username": "repos/add-collaborator",
|
|
1265
|
+
"PUT /repos/:owner/:repo/contents/*": "repos/create-or-update-file-contents",
|
|
1266
|
+
"PUT /repos/:owner/:repo/pulls/:number/merge": "pulls/merge",
|
|
1267
|
+
"PUT /repos/:owner/:repo/pulls/:number/update-branch": "pulls/update-branch"
|
|
1268
|
+
},
|
|
1269
|
+
mcp: {
|
|
1270
|
+
add_issue_comment: {
|
|
1271
|
+
operationId: "issues/create-comment"
|
|
1272
|
+
},
|
|
1273
|
+
add_reply_to_pull_request_comment: {
|
|
1274
|
+
operationId: "pulls/create-reply-for-review-comment"
|
|
1275
|
+
},
|
|
1276
|
+
create_branch: null,
|
|
1277
|
+
create_issue: {
|
|
1278
|
+
operationId: "issues/create"
|
|
1279
|
+
},
|
|
1280
|
+
create_or_update_file: {
|
|
1281
|
+
operationId: "repos/create-or-update-file-contents"
|
|
1282
|
+
},
|
|
1283
|
+
create_pull_request: {
|
|
1284
|
+
operationId: "pulls/create"
|
|
1285
|
+
},
|
|
1286
|
+
create_pull_request_review: {
|
|
1287
|
+
operationId: "pulls/create-review"
|
|
1288
|
+
},
|
|
1289
|
+
create_repository: {
|
|
1290
|
+
byArgument: {
|
|
1291
|
+
argument: "owner",
|
|
1292
|
+
present: "repos/create-in-org",
|
|
1293
|
+
absent: "repos/create-for-authenticated-user"
|
|
1294
|
+
}
|
|
1295
|
+
},
|
|
1296
|
+
delete_file: {
|
|
1297
|
+
operationId: "repos/delete-file"
|
|
1298
|
+
},
|
|
1299
|
+
fork_repository: {
|
|
1300
|
+
operationId: "repos/create-fork"
|
|
1301
|
+
},
|
|
1302
|
+
get_commit: {
|
|
1303
|
+
operationId: "repos/get-commit"
|
|
1304
|
+
},
|
|
1305
|
+
get_file_contents: {
|
|
1306
|
+
operationId: "repos/get-content"
|
|
1307
|
+
},
|
|
1308
|
+
get_latest_release: {
|
|
1309
|
+
operationId: "repos/get-latest-release"
|
|
1310
|
+
},
|
|
1311
|
+
get_me: {
|
|
1312
|
+
operationId: "users/get-authenticated"
|
|
1313
|
+
},
|
|
1314
|
+
get_release_by_tag: {
|
|
1315
|
+
operationId: "repos/get-release-by-tag"
|
|
1316
|
+
},
|
|
1317
|
+
get_tag: null,
|
|
1318
|
+
issue_read: {
|
|
1319
|
+
byMethod: {
|
|
1320
|
+
get: "issues/get",
|
|
1321
|
+
get_comments: "issues/list-comments",
|
|
1322
|
+
get_labels: "issues/list-labels-on-issue"
|
|
1323
|
+
}
|
|
1324
|
+
},
|
|
1325
|
+
issue_write: {
|
|
1326
|
+
byMethod: {
|
|
1327
|
+
create: "issues/create",
|
|
1328
|
+
update: "issues/update"
|
|
1329
|
+
}
|
|
1330
|
+
},
|
|
1331
|
+
list_branches: {
|
|
1332
|
+
operationId: "repos/list-branches"
|
|
1333
|
+
},
|
|
1334
|
+
list_commits: {
|
|
1335
|
+
operationId: "repos/list-commits"
|
|
1336
|
+
},
|
|
1337
|
+
list_issues: {
|
|
1338
|
+
operationId: "issues/list-for-repo"
|
|
1339
|
+
},
|
|
1340
|
+
list_pull_requests: {
|
|
1341
|
+
operationId: "pulls/list"
|
|
1342
|
+
},
|
|
1343
|
+
list_releases: {
|
|
1344
|
+
operationId: "repos/list-releases"
|
|
1345
|
+
},
|
|
1346
|
+
list_repository_collaborators: {
|
|
1347
|
+
operationId: "repos/list-collaborators"
|
|
1348
|
+
},
|
|
1349
|
+
list_tags: {
|
|
1350
|
+
operationId: "repos/list-tags"
|
|
1351
|
+
},
|
|
1352
|
+
merge_pull_request: {
|
|
1353
|
+
operationId: "pulls/merge"
|
|
1354
|
+
},
|
|
1355
|
+
pull_request_read: {
|
|
1356
|
+
byMethod: {
|
|
1357
|
+
get: "pulls/get",
|
|
1358
|
+
get_diff: "pulls/get",
|
|
1359
|
+
get_status: "repos/get-combined-status-for-ref",
|
|
1360
|
+
get_files: "pulls/list-files",
|
|
1361
|
+
get_commits: "pulls/list-commits",
|
|
1362
|
+
get_reviews: "pulls/list-reviews",
|
|
1363
|
+
get_comments: "issues/list-comments",
|
|
1364
|
+
get_review_comments: "pulls/list-review-comments",
|
|
1365
|
+
get_check_runs: "checks/list-for-ref"
|
|
1366
|
+
}
|
|
1367
|
+
},
|
|
1368
|
+
pull_request_review_write: {
|
|
1369
|
+
byMethod: {
|
|
1370
|
+
create: "pulls/create-review"
|
|
1371
|
+
}
|
|
1372
|
+
},
|
|
1373
|
+
push_files: null,
|
|
1374
|
+
search_code: {
|
|
1375
|
+
operationId: "search/code"
|
|
1376
|
+
},
|
|
1377
|
+
search_commits: {
|
|
1378
|
+
operationId: "search/commits"
|
|
1379
|
+
},
|
|
1380
|
+
search_issues: {
|
|
1381
|
+
operationId: "search/issues-and-pull-requests"
|
|
1382
|
+
},
|
|
1383
|
+
search_repositories: {
|
|
1384
|
+
operationId: "search/repos"
|
|
1385
|
+
},
|
|
1386
|
+
search_users: {
|
|
1387
|
+
operationId: "search/users"
|
|
1388
|
+
},
|
|
1389
|
+
update_pull_request: {
|
|
1390
|
+
operationId: "pulls/update"
|
|
1391
|
+
},
|
|
1392
|
+
update_pull_request_branch: {
|
|
1393
|
+
operationId: "pulls/update-branch"
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
};
|
|
1397
|
+
|
|
1398
|
+
// ../packages/twin-github/dist/src/operation-docs.js
|
|
1399
|
+
var docs = operation_docs_raw_default;
|
|
1400
|
+
function urlFor(operationId) {
|
|
1401
|
+
if (!operationId)
|
|
1402
|
+
return void 0;
|
|
1403
|
+
return docs.operations[operationId]?.url;
|
|
1404
|
+
}
|
|
1405
|
+
function restOperationDocumentationUrl(surface) {
|
|
1406
|
+
return urlFor(docs.rest[surface]);
|
|
1407
|
+
}
|
|
1408
|
+
function toolOperationDocumentationUrl(tool, args) {
|
|
1409
|
+
const entry2 = docs.mcp[tool];
|
|
1410
|
+
if (!entry2)
|
|
1411
|
+
return void 0;
|
|
1412
|
+
if ("operationId" in entry2)
|
|
1413
|
+
return urlFor(entry2.operationId);
|
|
1414
|
+
const record = args && typeof args === "object" ? args : {};
|
|
1415
|
+
if ("byMethod" in entry2) {
|
|
1416
|
+
const method = record.method;
|
|
1417
|
+
return typeof method === "string" ? urlFor(entry2.byMethod[method]) : void 0;
|
|
1418
|
+
}
|
|
1419
|
+
const sent = record[entry2.byArgument.argument] !== void 0;
|
|
1420
|
+
return urlFor(sent ? entry2.byArgument.present : entry2.byArgument.absent);
|
|
1421
|
+
}
|
|
1422
|
+
|
|
737
1423
|
// ../packages/twin-github/dist/src/tools.js
|
|
738
1424
|
var githubToolFixture = loadMcpToolFixture({ raw: mcp_tools_list_raw_default, meta: mcp_tools_list_meta_default });
|
|
739
1425
|
var pageShape = {
|
|
@@ -1023,6 +1709,16 @@ function executeTool(domain, name, input, onDelta, options = {}) {
|
|
|
1023
1709
|
validationFailed("tool", "invalid", name);
|
|
1024
1710
|
}
|
|
1025
1711
|
const parsed = definition.schema.parse(input);
|
|
1712
|
+
const documentationUrl = toolOperationDocumentationUrl(name, parsed);
|
|
1713
|
+
if (documentationUrl === void 0)
|
|
1714
|
+
return dispatchTool(domain, name, parsed, onDelta, options);
|
|
1715
|
+
try {
|
|
1716
|
+
return dispatchTool(domain, name, parsed, onDelta, options);
|
|
1717
|
+
} catch (error) {
|
|
1718
|
+
throw withDocumentationUrl(error, documentationUrl);
|
|
1719
|
+
}
|
|
1720
|
+
}
|
|
1721
|
+
function dispatchTool(domain, name, parsed, onDelta, options = {}) {
|
|
1026
1722
|
switch (name) {
|
|
1027
1723
|
case "search_repositories":
|
|
1028
1724
|
return domain.searchRepositories(parsed);
|
|
@@ -4510,6 +5206,53 @@ var GitHubDomain = class {
|
|
|
4510
5206
|
this.db.prepare("INSERT INTO audit_log (ts, action, repo_full_name, payload_json) VALUES (?, ?, ?, ?)").run(nowIso(), action, repoFullName, JSON.stringify(payload));
|
|
4511
5207
|
}
|
|
4512
5208
|
};
|
|
5209
|
+
function zodIssues(err) {
|
|
5210
|
+
if (err instanceof ZodError)
|
|
5211
|
+
return err.issues;
|
|
5212
|
+
if (err instanceof Error && err.name === "ZodError" && Array.isArray(err.issues)) {
|
|
5213
|
+
return err.issues;
|
|
5214
|
+
}
|
|
5215
|
+
return void 0;
|
|
5216
|
+
}
|
|
5217
|
+
function githubErrorEnvelope(err) {
|
|
5218
|
+
if (err instanceof UnknownToolError) {
|
|
5219
|
+
return {
|
|
5220
|
+
status: 422,
|
|
5221
|
+
body: githubError("Validation Failed", 422, [
|
|
5222
|
+
{ resource: "Request", field: "tool", code: "invalid", value: err.tool }
|
|
5223
|
+
])
|
|
5224
|
+
};
|
|
5225
|
+
}
|
|
5226
|
+
if (err instanceof TwinError) {
|
|
5227
|
+
return {
|
|
5228
|
+
status: err.status,
|
|
5229
|
+
body: githubError(err.message, err.status, err.errors, err.documentationUrl)
|
|
5230
|
+
};
|
|
5231
|
+
}
|
|
5232
|
+
const issues = zodIssues(err);
|
|
5233
|
+
if (issues) {
|
|
5234
|
+
return {
|
|
5235
|
+
status: 422,
|
|
5236
|
+
body: githubError("Validation Failed", 422, issues.map((issue) => ({
|
|
5237
|
+
resource: "Request",
|
|
5238
|
+
field: issue.path.join("."),
|
|
5239
|
+
code: issue.code
|
|
5240
|
+
})))
|
|
5241
|
+
};
|
|
5242
|
+
}
|
|
5243
|
+
if (err instanceof SyntaxError) {
|
|
5244
|
+
return { status: 400, body: githubError("Problems parsing JSON", 400) };
|
|
5245
|
+
}
|
|
5246
|
+
return {
|
|
5247
|
+
status: 500,
|
|
5248
|
+
body: githubError(err instanceof Error ? err.message : "Internal Server Error", 500)
|
|
5249
|
+
};
|
|
5250
|
+
}
|
|
5251
|
+
function operationErrorEnvelope(documentationUrl) {
|
|
5252
|
+
if (documentationUrl === void 0)
|
|
5253
|
+
return githubErrorEnvelope;
|
|
5254
|
+
return (err) => withOperationDocs(githubErrorEnvelope(err), documentationUrl);
|
|
5255
|
+
}
|
|
4513
5256
|
|
|
4514
5257
|
// ../packages/twin-github/dist/src/rest-content.js
|
|
4515
5258
|
var BASE64 = /^[A-Za-z0-9+/]*={0,2}$/;
|
|
@@ -4535,7 +5278,8 @@ function captureDelta(fn) {
|
|
|
4535
5278
|
}
|
|
4536
5279
|
function registerGitHubRoutes(session, { domain, recorder }) {
|
|
4537
5280
|
const route = (declaration, handler, tool) => {
|
|
4538
|
-
|
|
5281
|
+
const errorEnvelope = operationErrorEnvelope(restOperationDocumentationUrl(declaration.surface));
|
|
5282
|
+
mountDeclaredRoute(session, declaration, recorder.handle({ mutation: false, errorEnvelope, ...tool ? { tool } : {} }, async (c) => {
|
|
4539
5283
|
const input = await parseDeclared(declaration, c);
|
|
4540
5284
|
const result = await handler(input, c);
|
|
4541
5285
|
return {
|
|
@@ -4803,48 +5547,6 @@ var seedParser = {
|
|
|
4803
5547
|
function actorFromSession(session) {
|
|
4804
5548
|
return typeof session?.login === "string" ? session.login : void 0;
|
|
4805
5549
|
}
|
|
4806
|
-
function zodIssues(err) {
|
|
4807
|
-
if (err instanceof ZodError)
|
|
4808
|
-
return err.issues;
|
|
4809
|
-
if (err instanceof Error && err.name === "ZodError" && Array.isArray(err.issues)) {
|
|
4810
|
-
return err.issues;
|
|
4811
|
-
}
|
|
4812
|
-
return void 0;
|
|
4813
|
-
}
|
|
4814
|
-
function githubErrorEnvelope(err) {
|
|
4815
|
-
if (err instanceof UnknownToolError) {
|
|
4816
|
-
return {
|
|
4817
|
-
status: 422,
|
|
4818
|
-
body: githubError("Validation Failed", 422, [
|
|
4819
|
-
{ resource: "Request", field: "tool", code: "invalid", value: err.tool }
|
|
4820
|
-
])
|
|
4821
|
-
};
|
|
4822
|
-
}
|
|
4823
|
-
if (err instanceof TwinError) {
|
|
4824
|
-
return {
|
|
4825
|
-
status: err.status,
|
|
4826
|
-
body: githubError(err.message, err.status, err.errors, err.documentationUrl)
|
|
4827
|
-
};
|
|
4828
|
-
}
|
|
4829
|
-
const issues = zodIssues(err);
|
|
4830
|
-
if (issues) {
|
|
4831
|
-
return {
|
|
4832
|
-
status: 422,
|
|
4833
|
-
body: githubError("Validation Failed", 422, issues.map((issue) => ({
|
|
4834
|
-
resource: "Request",
|
|
4835
|
-
field: issue.path.join("."),
|
|
4836
|
-
code: issue.code
|
|
4837
|
-
})))
|
|
4838
|
-
};
|
|
4839
|
-
}
|
|
4840
|
-
if (err instanceof SyntaxError) {
|
|
4841
|
-
return { status: 400, body: githubError("Problems parsing JSON", 400) };
|
|
4842
|
-
}
|
|
4843
|
-
return {
|
|
4844
|
-
status: 500,
|
|
4845
|
-
body: githubError(err instanceof Error ? err.message : "Internal Server Error", 500)
|
|
4846
|
-
};
|
|
4847
|
-
}
|
|
4848
5550
|
var githubToolImplementations = Object.fromEntries(toolArgumentSchemas.map((def) => [
|
|
4849
5551
|
def.name,
|
|
4850
5552
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { bootTwin } from './chunk-
|
|
2
|
-
import { isTwinName, TWIN_NAMES, defaultPortFor, TWIN_REGISTRY } from './chunk-
|
|
1
|
+
import { bootTwin } from './chunk-EJFMWBZE.js';
|
|
2
|
+
import { isTwinName, TWIN_NAMES, defaultPortFor, TWIN_REGISTRY } from './chunk-2A5HJP46.js';
|
|
3
3
|
import './chunk-OW7VVW6X.js';
|
|
4
4
|
import './chunk-VBATFCWR.js';
|
|
5
5
|
import './chunk-SG6ZTIMT.js';
|
package/package.json
CHANGED