@bridge_gpt/mcp-server 0.2.23 → 0.2.25
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/README.md +96 -24
- package/build/commands.generated.js +4 -4
- package/build/conductor/epic-reconcile.js +7 -1
- package/build/conductor/epic-runtime.js +5 -0
- package/build/connect-github-api.js +365 -0
- package/build/connect-github.js +415 -0
- package/build/decision-page-schema.js +34 -5
- package/build/decision-page-template.js +126 -39
- package/build/docs.generated.js +5 -0
- package/build/index.js +1872 -633
- package/build/init.js +29 -0
- package/build/install-bridge.js +739 -91
- package/build/install-doctor.js +64 -0
- package/build/pipelines.generated.js +122 -128
- package/build/readme.generated.js +1 -1
- package/build/sfcc/log-gate.js +85 -0
- package/build/sfcc/log-query.js +170 -0
- package/build/sfcc/register.js +10 -0
- package/build/sfcc/setup-status.js +33 -3
- package/build/start-tickets.js +48 -13
- package/build/version.generated.js +1 -1
- package/{CONDUCTOR.md → docs/CONDUCTOR.md} +2 -2
- package/docs/install/github-app.md +252 -0
- package/docs/install/mcp-tool-integrations.md +305 -0
- package/docs/install/sfcc-integration.md +140 -0
- package/package.json +5 -5
- package/pipelines/learn-repository.json +111 -119
- package/public/css/main.min.css +258 -65
- package/public/css/main.min.css.map +1 -1
- package/public/js/main.min.js +233 -74
- package/public/js/main.min.js.map +1 -1
- package/smoke-test/SMOKE-TEST.md +3 -2
package/build/install-doctor.js
CHANGED
|
@@ -141,6 +141,27 @@ function summarizeIntegrations(body) {
|
|
|
141
141
|
}
|
|
142
142
|
return { total, unconfigured };
|
|
143
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Read `github_app.is_configured` from a manifest response (BAPI-631).
|
|
146
|
+
*
|
|
147
|
+
* Returns null when the entry is absent or is not a boolean — the caller must render
|
|
148
|
+
* that as SKIP rather than inventing a configured/unconfigured verdict. GitHub is
|
|
149
|
+
* legitimately absent from the checklist on a Bitbucket project.
|
|
150
|
+
*/
|
|
151
|
+
function readGithubConfiguredFlag(body) {
|
|
152
|
+
if (!body || typeof body !== "object")
|
|
153
|
+
return null;
|
|
154
|
+
const integrations = body.integrations;
|
|
155
|
+
if (!Array.isArray(integrations))
|
|
156
|
+
return null;
|
|
157
|
+
for (const item of integrations) {
|
|
158
|
+
if (item?.id !== "github_app")
|
|
159
|
+
continue;
|
|
160
|
+
const configured = item.is_configured;
|
|
161
|
+
return typeof configured === "boolean" ? configured : null;
|
|
162
|
+
}
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
144
165
|
/**
|
|
145
166
|
* Collect the install-status checklist. Never throws; every failure path becomes
|
|
146
167
|
* a WARN or SKIP check line. Performs at most three read-only GETs, and only
|
|
@@ -333,6 +354,49 @@ export async function collectInstallStatusChecks(deps) {
|
|
|
333
354
|
detail: "manifest unavailable",
|
|
334
355
|
});
|
|
335
356
|
}
|
|
357
|
+
// --- GitHub connection (BAPI-631) ---
|
|
358
|
+
// Read-only, and derived from the SAME manifest response above — never from the
|
|
359
|
+
// nonce-scoped CLI status endpoint, which describes one transient connection attempt
|
|
360
|
+
// rather than the durable project binding doctor reports on. Doctor diagnoses; it
|
|
361
|
+
// never mints, syncs, confirms, opens a browser, writes a credential, or repairs.
|
|
362
|
+
if (manifest.ok && manifest.status === 200) {
|
|
363
|
+
const github = readGithubConfiguredFlag(manifest.body);
|
|
364
|
+
if (github === null) {
|
|
365
|
+
checks.push({
|
|
366
|
+
id: "github",
|
|
367
|
+
label: "GitHub connection",
|
|
368
|
+
status: "SKIP",
|
|
369
|
+
detail: "the manifest response carried no GitHub integration entry",
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
else if (github) {
|
|
373
|
+
checks.push({
|
|
374
|
+
id: "github",
|
|
375
|
+
label: "GitHub connection",
|
|
376
|
+
status: "PASS",
|
|
377
|
+
detail: "a GitHub repository is connected to this project",
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
checks.push({
|
|
382
|
+
id: "github",
|
|
383
|
+
label: "GitHub connection",
|
|
384
|
+
status: "WARN",
|
|
385
|
+
detail: "no GitHub repository is connected to this project",
|
|
386
|
+
remediation: `run 'npx -y @bridge_gpt/mcp-server@latest connect-github --repo ${target.repoName}'.`,
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
// Unavailable is NOT unconfigured: reporting either concrete state from a failed
|
|
392
|
+
// probe would be a fabricated finding.
|
|
393
|
+
checks.push({
|
|
394
|
+
id: "github",
|
|
395
|
+
label: "GitHub connection",
|
|
396
|
+
status: "SKIP",
|
|
397
|
+
detail: "manifest unavailable",
|
|
398
|
+
});
|
|
399
|
+
}
|
|
336
400
|
// --- indexing ---
|
|
337
401
|
const parse = await probeGet(deps, `${target.baseUrl}/jira/parse-status?${repoQuery}`, apiKey);
|
|
338
402
|
if (!parse.ok || parse.status !== 200) {
|