@floh-solutions/pharos-cli 0.23.0 → 0.25.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.
- package/README.md +409 -5
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +23 -0
- package/dist/capabilities.js.map +1 -1
- package/dist/cli.d.ts +4 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +362 -36
- package/dist/cli.js.map +1 -1
- package/dist/commands/comment-github.d.ts +138 -0
- package/dist/commands/comment-github.d.ts.map +1 -0
- package/dist/commands/comment-github.js +427 -0
- package/dist/commands/comment-github.js.map +1 -0
- package/dist/commands/comment.d.ts.map +1 -1
- package/dist/commands/comment.js +114 -19
- package/dist/commands/comment.js.map +1 -1
- package/dist/commands/doctor.d.ts +71 -2
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +414 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/issue.d.ts +75 -0
- package/dist/commands/issue.d.ts.map +1 -0
- package/dist/commands/issue.js +2466 -0
- package/dist/commands/issue.js.map +1 -0
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +114 -0
- package/dist/commands/setup.js.map +1 -1
- package/dist/half-link.d.ts +157 -0
- package/dist/half-link.d.ts.map +1 -0
- package/dist/half-link.js +257 -0
- package/dist/half-link.js.map +1 -0
- package/dist/issue-scan.d.ts +383 -0
- package/dist/issue-scan.d.ts.map +1 -0
- package/dist/issue-scan.js +455 -0
- package/dist/issue-scan.js.map +1 -0
- package/dist/output.d.ts +18 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +293 -0
- package/dist/output.js.map +1 -1
- package/dist/session.d.ts +101 -2
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +132 -11
- package/dist/session.js.map +1 -1
- package/dist/target.d.ts +40 -4
- package/dist/target.d.ts.map +1 -1
- package/dist/target.js +14 -3
- package/dist/target.js.map +1 -1
- package/package.json +3 -2
- package/skill/SKILL.md +422 -11
package/dist/commands/doctor.js
CHANGED
|
@@ -43,6 +43,31 @@ const PROBES = [
|
|
|
43
43
|
versionFrom: /^(\S+)/,
|
|
44
44
|
install: { brew: "pharos setup --convert", apt: "pharos setup --convert", winget: "pharos setup --convert" },
|
|
45
45
|
},
|
|
46
|
+
{
|
|
47
|
+
id: "gh",
|
|
48
|
+
name: "GitHub CLI",
|
|
49
|
+
tier: 1,
|
|
50
|
+
unlocks: "The GitHub bridge — `pharos issue` adopts an issue, links it to a work item and keeps "
|
|
51
|
+
+ "the trail readable from either end.",
|
|
52
|
+
without: "Every `pharos issue` verb is refused by name with the reason. The 27 Azure DevOps verbs "
|
|
53
|
+
+ "are untouched — narrowed, not broken.",
|
|
54
|
+
command: ["gh", "--version"],
|
|
55
|
+
versionFrom: /gh version (\S+)/,
|
|
56
|
+
install: { brew: "brew install gh", winget: "winget install --id GitHub.cli -e" },
|
|
57
|
+
// **No apt line, and that is not an oversight.** GitHub's own Linux
|
|
58
|
+
// instructions add their package repository rather than pointing at a distro
|
|
59
|
+
// package, and what `apt install gh` gets you varies by release — an old gh
|
|
60
|
+
// has no `auth token --user`, which is the flag the whole account model
|
|
61
|
+
// rests on (plan §2). `installCommand` answers null where we cannot say, so
|
|
62
|
+
// Linux gets this note instead of a command somebody would paste.
|
|
63
|
+
...(platform() === "darwin" || platform() === "win32"
|
|
64
|
+
? {}
|
|
65
|
+
: {
|
|
66
|
+
note: "On Linux, install from GitHub's own repository — https://cli.github.com/packages. "
|
|
67
|
+
+ "A distro package may predate `gh auth token --user`, which is how every call here "
|
|
68
|
+
+ "pins its account.",
|
|
69
|
+
}),
|
|
70
|
+
},
|
|
46
71
|
{
|
|
47
72
|
id: "libreoffice",
|
|
48
73
|
name: "LibreOffice",
|
|
@@ -135,14 +160,22 @@ export async function runDoctor(io, env, options, pretty, version) {
|
|
|
135
160
|
+ "It still works; it may convert differently from what the docs describe. "
|
|
136
161
|
+ "`pharos setup --convert` replaces it.";
|
|
137
162
|
}
|
|
138
|
-
// **The skill is what teaches a session this tool exists.** A CLI installed
|
|
139
|
-
// without it is a CLI nobody reaches for, so its absence belongs in tier 0
|
|
140
|
-
// beside the things that make pharos work at all.
|
|
141
|
-
checks.push(await skillCheck(env));
|
|
142
163
|
const config = configCheck(env);
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
164
|
+
// **Run together, reported in order.** These three are independent of each
|
|
165
|
+
// other and every one of them is slow for a different reason — `claude plugin
|
|
166
|
+
// list` shells out to another CLI, `--verify` makes two Azure DevOps calls,
|
|
167
|
+
// and `gh auth status` validates each token against github.com. Serially that
|
|
168
|
+
// is the sum; the report is assembled afterwards, so the order a reader sees
|
|
169
|
+
// is unchanged.
|
|
170
|
+
const [skill, scopes, github] = await Promise.all([
|
|
171
|
+
// The skill is what teaches a session this tool exists. A CLI installed
|
|
172
|
+
// without it is a CLI nobody reaches for, so its absence belongs in tier 0
|
|
173
|
+
// beside the things that make pharos work at all.
|
|
174
|
+
skillCheck(env),
|
|
175
|
+
options.verify ? verifyScopes(env, config.ok) : Promise.resolve([]),
|
|
176
|
+
githubChecks(env, checks.find((c) => c.id === "gh"), options.verify),
|
|
177
|
+
]);
|
|
178
|
+
checks.push(skill, config, ...scopes, ...github);
|
|
146
179
|
const result = {
|
|
147
180
|
ok: checks.filter((c) => c.tier === 0).every((c) => c.ok),
|
|
148
181
|
checks,
|
|
@@ -398,13 +431,365 @@ async function verifyScopes(env, configured) {
|
|
|
398
431
|
},
|
|
399
432
|
];
|
|
400
433
|
}
|
|
434
|
+
// MARK: - GitHub, where the configured account is not the active one
|
|
435
|
+
/**
|
|
436
|
+
* `gh-auth`, `gh-account` and `gh-repo-access` — plan §9.
|
|
437
|
+
*
|
|
438
|
+
* ## One detector, reached through `gh-core`
|
|
439
|
+
*
|
|
440
|
+
* Nothing here re-implements "is this account signed in" or "can I see this
|
|
441
|
+
* repo". `GhTokenSource` and `ReposApi.verifyAccess` are the implementations,
|
|
442
|
+
* the CLI and the app's wizard both come through them, and a second copy would
|
|
443
|
+
* be a second set of answers — the one that drifts being the one nobody is
|
|
444
|
+
* looking at. Same rule as `pharos-convert` and "is LibreOffice installed".
|
|
445
|
+
*
|
|
446
|
+
* ## `gh` is spawned at the path this command RESOLVED
|
|
447
|
+
*
|
|
448
|
+
* Not the bare name. The `gh` row above walked the PATH it was given and found,
|
|
449
|
+
* say, `/opt/homebrew/bin/gh`; handing that absolute path to `gh-core` means the
|
|
450
|
+
* binary these checks ask is provably the binary the report names. A GUI-
|
|
451
|
+
* launched app gets roughly `/usr/bin:/bin` from Finder, so "which gh" is a real
|
|
452
|
+
* question here and not a pedantic one — fourth appearance of that shape.
|
|
453
|
+
*
|
|
454
|
+
* ## Why `gh-auth` never says "you are signed out"
|
|
455
|
+
*
|
|
456
|
+
* **Measured on gh 2.87.3.** `gh auth status` validates every token against
|
|
457
|
+
* github.com, and with the host unreachable it words a connectivity fault as a
|
|
458
|
+
* credential fault: `X Failed to log in to github.com account ASNNetworks` /
|
|
459
|
+
* `The token in keyring is invalid`. A check that repeated that would tell
|
|
460
|
+
* somebody on a plane to run `gh auth login`, which is the one thing that cannot
|
|
461
|
+
* work there.
|
|
462
|
+
*
|
|
463
|
+
* **#793 has since landed in `gh-core`**, and it changed the shape of the
|
|
464
|
+
* problem rather than removing it. `gh auth status --json hosts` lists every
|
|
465
|
+
* account whatever happens, each carrying a `state`:
|
|
466
|
+
*
|
|
467
|
+
* | `state` | what it means | what to tell somebody |
|
|
468
|
+
* |---|---|---|
|
|
469
|
+
* | `valid` | GitHub answered for this token | nothing |
|
|
470
|
+
* | `rejected` | GitHub answered **401/403** — the credential really is bad | `gh auth login --user <login>` |
|
|
471
|
+
* | `unverified` | nobody judged it: host unreachable, GitHub erred, or `gh` too old | check the network, **not** the credential |
|
|
472
|
+
*
|
|
473
|
+
* So the failure this section was written about — an empty list on a machine
|
|
474
|
+
* holding two accounts — no longer happens for an unreachable host. **The
|
|
475
|
+
* hazard moved**: a listed account is no longer the same thing as a working
|
|
476
|
+
* one, and reading `accounts.length > 0` as "signed in" now reports a token
|
|
477
|
+
* GitHub has actively refused as healthy. {@link authCheck} branches on `state`
|
|
478
|
+
* for that reason.
|
|
479
|
+
*
|
|
480
|
+
* An empty list is still possible and still a disjunction, because `gh auth
|
|
481
|
+
* status` reads `$XDG_CONFIG_HOME/gh/hosts.yml` while `gh auth token --user`
|
|
482
|
+
* reads the keyring — a moved or overridden `GH_CONFIG_DIR` empties the first
|
|
483
|
+
* and not the second. The keyring cross-check below stays for that case, which
|
|
484
|
+
* is the only one it was ever able to settle.
|
|
485
|
+
*
|
|
486
|
+
* **One trap when reading an account:** `scopes` is empty whenever `state` is
|
|
487
|
+
* not `valid`, because `gh` takes them off the `X-OAuth-Scopes` *response*
|
|
488
|
+
* header. Empty means *not known*, never "no scopes" — the same overclaim as
|
|
489
|
+
* the original bug, one field along. Check `state` first.
|
|
490
|
+
*
|
|
491
|
+
* ## What is emitted, and what is deliberately not
|
|
492
|
+
*
|
|
493
|
+
* `gh-account` and `gh-repo-access` appear only when there is something
|
|
494
|
+
* configured to check — a bound repository, and for the second one `--verify`,
|
|
495
|
+
* which is what makes real API calls here as it already does for the Azure
|
|
496
|
+
* DevOps scopes. Emitting them as permanently-failing rows on every machine that
|
|
497
|
+
* does not use the bridge would make tier 1 red for everybody and teach people
|
|
498
|
+
* to ignore it. Their absence is named on `gh-auth` instead, because an absent
|
|
499
|
+
* line and a line nobody rendered look identical to the reader.
|
|
500
|
+
*/
|
|
501
|
+
async function githubChecks(env, gh, verify) {
|
|
502
|
+
const authBase = {
|
|
503
|
+
id: "gh-auth",
|
|
504
|
+
name: "GitHub sign-in",
|
|
505
|
+
tier: 1,
|
|
506
|
+
unlocks: "Which GitHub accounts `gh` holds a credential for, and which one it calls active.",
|
|
507
|
+
without: "`pharos issue` cannot authenticate as anybody.",
|
|
508
|
+
version: null,
|
|
509
|
+
path: null,
|
|
510
|
+
};
|
|
511
|
+
if (gh === undefined || !gh.ok) {
|
|
512
|
+
return [
|
|
513
|
+
{
|
|
514
|
+
...authBase,
|
|
515
|
+
ok: false,
|
|
516
|
+
install: "pharos setup --install gh",
|
|
517
|
+
note: "Skipped — `gh` was not found on the PATH above, so there is nothing to ask. "
|
|
518
|
+
+ "See the GitHub CLI row.",
|
|
519
|
+
},
|
|
520
|
+
];
|
|
521
|
+
}
|
|
522
|
+
const { GhTokenSource, GitHubClient, defaultReposPath, readReposConfig } = await import("@floh-solutions/gh-core");
|
|
523
|
+
const tokens = new GhTokenSource({
|
|
524
|
+
env,
|
|
525
|
+
// The resolved path, so this asks the binary the report just named.
|
|
526
|
+
...(gh.path === null ? {} : { ghPath: gh.path }),
|
|
527
|
+
});
|
|
528
|
+
let accounts = [];
|
|
529
|
+
let authFailure;
|
|
530
|
+
try {
|
|
531
|
+
accounts = await tokens.accounts();
|
|
532
|
+
}
|
|
533
|
+
catch (error) {
|
|
534
|
+
authFailure = messageOf(error);
|
|
535
|
+
}
|
|
536
|
+
let config;
|
|
537
|
+
let configPath = defaultReposPath(env);
|
|
538
|
+
let configExists = false;
|
|
539
|
+
let configProblem;
|
|
540
|
+
try {
|
|
541
|
+
const read = await readReposConfig({ env });
|
|
542
|
+
config = read.config;
|
|
543
|
+
configPath = read.path;
|
|
544
|
+
configExists = read.exists;
|
|
545
|
+
}
|
|
546
|
+
catch (error) {
|
|
547
|
+
// A malformed repos.json is one of the better answers this command can
|
|
548
|
+
// give: every `pharos issue` call would fail with the same parse error, and
|
|
549
|
+
// nothing else would say which file.
|
|
550
|
+
configProblem = messageOf(error);
|
|
551
|
+
}
|
|
552
|
+
const bindings = config?.repos ?? [];
|
|
553
|
+
// Resolved BEFORE `gh-auth` is worded, because a keyring hit is what settles
|
|
554
|
+
// the offline-versus-signed-out question above. Offline, and cached.
|
|
555
|
+
const accountReports = await Promise.all([...new Set(bindings.map((binding) => binding.account))].map(async (account) => {
|
|
556
|
+
const active = accounts.length === 0
|
|
557
|
+
? null
|
|
558
|
+
: (accounts.find((held) => held.login === account)?.active ?? false);
|
|
559
|
+
try {
|
|
560
|
+
await tokens.token(account);
|
|
561
|
+
return { account, ok: true, active, detail: `gh holds a token for "${account}".` };
|
|
562
|
+
}
|
|
563
|
+
catch (error) {
|
|
564
|
+
return { account, ok: false, active, detail: messageOf(error) };
|
|
565
|
+
}
|
|
566
|
+
}));
|
|
567
|
+
const checks = [authCheck(authBase, accounts, accountReports, authFailure)];
|
|
568
|
+
if (configProblem !== undefined) {
|
|
569
|
+
checks.push({
|
|
570
|
+
id: "gh-account",
|
|
571
|
+
name: "GitHub account for each bound repository",
|
|
572
|
+
tier: 1,
|
|
573
|
+
unlocks: ACCOUNT_UNLOCKS,
|
|
574
|
+
without: ACCOUNT_WITHOUT,
|
|
575
|
+
ok: false,
|
|
576
|
+
version: null,
|
|
577
|
+
path: configPath,
|
|
578
|
+
install: BIND_COMMAND,
|
|
579
|
+
note: `${configPath} could not be read: ${configProblem}`,
|
|
580
|
+
});
|
|
581
|
+
return checks;
|
|
582
|
+
}
|
|
583
|
+
if (bindings.length === 0) {
|
|
584
|
+
const auth = checks[0];
|
|
585
|
+
auth.note =
|
|
586
|
+
`${auth.note ?? ""} No repository is bound yet — `
|
|
587
|
+
+ `${configExists ? `${configPath} lists none` : `${configPath} does not exist`}. `
|
|
588
|
+
+ `\`${BIND_COMMAND}\` binds one, and \`gh-account\` and \`gh-repo-access\` appear `
|
|
589
|
+
+ "once it does.";
|
|
590
|
+
return checks;
|
|
591
|
+
}
|
|
592
|
+
const accountsOk = accountReports.every((report) => report.ok);
|
|
593
|
+
checks.push({
|
|
594
|
+
id: "gh-account",
|
|
595
|
+
name: "GitHub account for each bound repository",
|
|
596
|
+
tier: 1,
|
|
597
|
+
unlocks: ACCOUNT_UNLOCKS,
|
|
598
|
+
without: ACCOUNT_WITHOUT,
|
|
599
|
+
ok: accountsOk,
|
|
600
|
+
version: null,
|
|
601
|
+
path: configPath,
|
|
602
|
+
install: accountsOk ? null : "gh auth login",
|
|
603
|
+
accounts: accountReports,
|
|
604
|
+
note: (accountsOk
|
|
605
|
+
? "Read from the keyring, offline. "
|
|
606
|
+
: "`gh auth logout` on a bound account reads as \"GitHub broke\" unless something names "
|
|
607
|
+
+ "it, which is what this row is for. ")
|
|
608
|
+
+ "This proves gh still HOLDS the credential, not that the repository answers to it — "
|
|
609
|
+
+ "`pharos doctor --verify` adds `gh-repo-access`, which makes the call.",
|
|
610
|
+
});
|
|
611
|
+
if (verify)
|
|
612
|
+
checks.push(await repoAccessCheck(new GitHubClient({ tokens, repos: config }), bindings, configPath));
|
|
613
|
+
return checks;
|
|
614
|
+
}
|
|
615
|
+
const ACCOUNT_UNLOCKS = "Every bound repository is reached as the account bound to it, never as whichever one `gh` "
|
|
616
|
+
+ "happens to have active.";
|
|
617
|
+
const ACCOUNT_WITHOUT = "`pharos issue` fails on that repository with an account error rather than a GitHub outage.";
|
|
618
|
+
const BIND_COMMAND = "pharos setup --repo owner/name --gh-account <login>";
|
|
619
|
+
/** The `gh-auth` row, worded by which of the three states we are actually in. */
|
|
620
|
+
export function authCheck(base, accounts, accountReports, authFailure) {
|
|
621
|
+
if (authFailure !== undefined) {
|
|
622
|
+
return {
|
|
623
|
+
...base,
|
|
624
|
+
ok: false,
|
|
625
|
+
install: null,
|
|
626
|
+
note: `\`gh auth status\` could not be run: ${authFailure}`,
|
|
627
|
+
};
|
|
628
|
+
}
|
|
629
|
+
// **LISTED IS NOT THE SAME AS WORKING, since #793.** `gh auth status --json
|
|
630
|
+
// hosts` lists an account whatever GitHub said about it, so reading
|
|
631
|
+
// `accounts.length > 0` as "signed in" reports a token GitHub has actively
|
|
632
|
+
// refused as healthy — and offers no way to fix it. Branch on `state`.
|
|
633
|
+
if (accounts.length > 0) {
|
|
634
|
+
const describe = (account) => `${account.login}${account.active ? " (active)" : ""}`;
|
|
635
|
+
const rejected = accounts.filter((account) => account.state === "rejected");
|
|
636
|
+
const unverified = accounts.filter((account) => account.state === "unverified");
|
|
637
|
+
// REJECTED IS THE ONE STATE THAT EARNS `gh auth login`, because it is the
|
|
638
|
+
// only one where GitHub itself has judged the credential. Named per account:
|
|
639
|
+
// re-authenticating the wrong login leaves the broken one broken.
|
|
640
|
+
if (rejected.length > 0) {
|
|
641
|
+
const reasons = rejected
|
|
642
|
+
.map((account) => account.stateDetail === undefined
|
|
643
|
+
? describe(account)
|
|
644
|
+
: `${describe(account)} — ${account.stateDetail}`)
|
|
645
|
+
.join("; ");
|
|
646
|
+
return {
|
|
647
|
+
...base,
|
|
648
|
+
ok: false,
|
|
649
|
+
install: `gh auth login --user ${rejected[0].login}`,
|
|
650
|
+
note: `GitHub REFUSED the credential for ${reasons}. This is the one case that is genuinely `
|
|
651
|
+
+ "a credential fault — gh asked and got a 401 or 403 back, rather than failing to ask. "
|
|
652
|
+
+ (accounts.length > rejected.length
|
|
653
|
+
? `Also held: ${accounts.filter((a) => a.state !== "rejected").map(describe).join(", ")}.`
|
|
654
|
+
: ""),
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
// UNVERIFIED IS NOT A FAULT AND MUST NOT OFFER `gh auth login`. gh holds the
|
|
658
|
+
// token and could not get an answer about it — an unreachable host, a 5xx, a
|
|
659
|
+
// gh too old to say. Sending somebody to re-authenticate over the network
|
|
660
|
+
// that is itself the problem is the original bug wearing a new hat.
|
|
661
|
+
if (unverified.length > 0) {
|
|
662
|
+
const reasons = unverified
|
|
663
|
+
.map((account) => account.stateDetail === undefined
|
|
664
|
+
? describe(account)
|
|
665
|
+
: `${describe(account)} — ${account.stateDetail}`)
|
|
666
|
+
.join("; ");
|
|
667
|
+
return {
|
|
668
|
+
...base,
|
|
669
|
+
ok: true,
|
|
670
|
+
install: null,
|
|
671
|
+
note: `gh holds ${reasons}, but could not check it with GitHub — unreachable, erroring, or a `
|
|
672
|
+
+ "gh too old to say which. That is NOT a credential fault and `gh auth login` is the "
|
|
673
|
+
+ "wrong answer to it; check the connection. The token still works for anything that "
|
|
674
|
+
+ "does not call out, because `gh auth token --user` reads the keyring offline.",
|
|
675
|
+
};
|
|
676
|
+
}
|
|
677
|
+
return {
|
|
678
|
+
...base,
|
|
679
|
+
ok: true,
|
|
680
|
+
install: null,
|
|
681
|
+
note: `Signed in: ${accounts.map(describe).join(", ")}. The active account is reported and `
|
|
682
|
+
+ "never acted on — a repository is reached as the account bound to it in repos.json, "
|
|
683
|
+
+ "because on this machine's own measurement the active one was the wrong one (plan §2).",
|
|
684
|
+
};
|
|
685
|
+
}
|
|
686
|
+
// Empty. Which cause it is, we may or may not be able to say — and saying the
|
|
687
|
+
// wrong one sends somebody to re-authenticate over a network that is the
|
|
688
|
+
// actual fault. See this function's file-level note.
|
|
689
|
+
//
|
|
690
|
+
// **A keyring hit narrows this; it does not settle it**, and the first draft
|
|
691
|
+
// of this said it did. Measured while testing it: the two commands read
|
|
692
|
+
// DIFFERENT things. `gh auth status` reads `$XDG_CONFIG_HOME/gh/hosts.yml` and
|
|
693
|
+
// answers "You are not logged into any GitHub hosts" when that is not where
|
|
694
|
+
// gh's config lives, while `gh auth token --user` goes to the keyring and
|
|
695
|
+
// hands over the token regardless. So an empty status beside a live token has
|
|
696
|
+
// at least two causes, and naming only one of them would be the same overclaim
|
|
697
|
+
// gh makes when it calls an unreachable host an invalid credential.
|
|
698
|
+
const keyringProof = accountReports.find((report) => report.ok);
|
|
699
|
+
if (keyringProof !== undefined) {
|
|
700
|
+
return {
|
|
701
|
+
...base,
|
|
702
|
+
ok: false,
|
|
703
|
+
// Nothing to log into: the credential is provably there. `install` stays
|
|
704
|
+
// null where no command can honestly be named.
|
|
705
|
+
install: null,
|
|
706
|
+
note: "`gh auth status` listed no accounts, but gh handed over a keyring token for "
|
|
707
|
+
+ `"${keyringProof.account}" — so there IS a credential and re-authenticating is not `
|
|
708
|
+
+ "the fix. Two things produce this, and both are worth checking before `gh auth "
|
|
709
|
+
+ "login`: github.com unreachable (`auth status` validates every token over the network "
|
|
710
|
+
+ "and prints an unreachable host as \"The token in keyring is invalid\" — measured, gh "
|
|
711
|
+
+ "2.87.3), or gh's config not listing the account, which is what a moved or overridden "
|
|
712
|
+
+ "GH_CONFIG_DIR / XDG_CONFIG_HOME does. The keyring lookup depends on neither.",
|
|
713
|
+
};
|
|
714
|
+
}
|
|
715
|
+
return {
|
|
716
|
+
...base,
|
|
717
|
+
ok: false,
|
|
718
|
+
install: "gh auth login",
|
|
719
|
+
note: "`gh auth status` listed no accounts at all. Since #793 an unreachable github.com no "
|
|
720
|
+
+ "longer produces this — an account gh holds is listed whatever GitHub said, as "
|
|
721
|
+
+ "`unverified` — so the remaining causes are that nothing is signed in, or that gh is "
|
|
722
|
+
+ "reading a different config directory than the one holding your hosts.yml (a moved or "
|
|
723
|
+
+ "overridden GH_CONFIG_DIR / XDG_CONFIG_HOME).",
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
/**
|
|
727
|
+
* `gh-repo-access` — **the one that a status code cannot answer.**
|
|
728
|
+
*
|
|
729
|
+
* Plan §2: with two `gh` accounts in play, `owner/widgets` can exist under both,
|
|
730
|
+
* so the wrong identity returns a perfectly good 200 for a different
|
|
731
|
+
* repository. `verifyAccess` compares the `full_name` GitHub answered with
|
|
732
|
+
* against what was configured; this records the account it asked as, the viewer
|
|
733
|
+
* that token turned out to be, and the node id — the identity that survives a
|
|
734
|
+
* rename — so a disagreement is a fact on the page rather than an inference.
|
|
735
|
+
*/
|
|
736
|
+
async function repoAccessCheck(client, bindings, configPath) {
|
|
737
|
+
const repos = await Promise.all(bindings.map(async (binding) => {
|
|
738
|
+
const report = await client.repos.verifyAccess(binding);
|
|
739
|
+
return {
|
|
740
|
+
repo: report.repo,
|
|
741
|
+
account: report.account,
|
|
742
|
+
ok: report.ok,
|
|
743
|
+
viewer: report.viewer ?? null,
|
|
744
|
+
resolved: report.repository?.fullName ?? null,
|
|
745
|
+
nodeId: report.repository?.nodeId ?? null,
|
|
746
|
+
problem: report.problem ?? null,
|
|
747
|
+
detail: report.detail ?? null,
|
|
748
|
+
};
|
|
749
|
+
}));
|
|
750
|
+
const failed = repos.filter((report) => !report.ok);
|
|
751
|
+
return {
|
|
752
|
+
id: "gh-repo-access",
|
|
753
|
+
name: "Bound repositories, read as their own account",
|
|
754
|
+
tier: 1,
|
|
755
|
+
unlocks: "Proof that each repository answers to the identity it is configured under — the owner "
|
|
756
|
+
+ "returned is the owner asked for.",
|
|
757
|
+
without: "A repository can 200 from the WRONG account and look fine, because two accounts can "
|
|
758
|
+
+ "each see one of that name. Silent, and wrong.",
|
|
759
|
+
ok: failed.length === 0,
|
|
760
|
+
version: null,
|
|
761
|
+
path: configPath,
|
|
762
|
+
// The generic fix is the binding, EXCEPT where gh simply has no credential
|
|
763
|
+
// for the account — pointing that at `pharos setup` would send somebody to
|
|
764
|
+
// re-record a pair that is already right.
|
|
765
|
+
install: failed.length === 0
|
|
766
|
+
? null
|
|
767
|
+
: failed.some((report) => report.problem === "no-token")
|
|
768
|
+
? "gh auth login"
|
|
769
|
+
: BIND_COMMAND,
|
|
770
|
+
repos,
|
|
771
|
+
// Deliberately NOT a re-listing of `repos` — that array is the detail, and
|
|
772
|
+
// a note that restates it is two places to read and one place to disagree.
|
|
773
|
+
note: (failed.length === 0
|
|
774
|
+
? "Every bound repository answered as the account it is bound to, and the owner "
|
|
775
|
+
+ `returned matched the owner configured (${repos.length} checked).`
|
|
776
|
+
: `${failed.length} of ${repos.length} failed: `
|
|
777
|
+
+ `${failed.map((report) => `${report.repo} (${report.problem ?? "unknown"})`).join(", ")}.`)
|
|
778
|
+
+ " Each was reached as its configured account rather than whichever one `gh` has active;"
|
|
779
|
+
+ " per-repository detail, including the node id, is in `repos`.",
|
|
780
|
+
};
|
|
781
|
+
}
|
|
401
782
|
function messageOf(error) {
|
|
402
783
|
return error instanceof Error ? error.message : String(error);
|
|
403
784
|
}
|
|
404
785
|
function summariseTier(tier, checks) {
|
|
786
|
+
// Tier 1 is "a named feature family degrades honestly" rather than "wiki
|
|
787
|
+
// import", which is what it happened to contain when there was one of them.
|
|
788
|
+
// The GitHub bridge has exactly that shape: without `gh`, `pharos issue` is
|
|
789
|
+
// refused by name with the reason and the 27 Azure DevOps verbs are untouched.
|
|
405
790
|
const names = {
|
|
406
791
|
0: "pharos itself",
|
|
407
|
-
1: "wiki import beyond .md and .txt",
|
|
792
|
+
1: "wiki import beyond .md and .txt, and the GitHub bridge",
|
|
408
793
|
2: "reading downloaded attachments",
|
|
409
794
|
};
|
|
410
795
|
const mine = checks.filter((c) => c.tier === tier);
|
|
@@ -461,6 +846,27 @@ function render(result) {
|
|
|
461
846
|
if (check.install !== null)
|
|
462
847
|
lines.push(` install: ${check.install}`);
|
|
463
848
|
}
|
|
849
|
+
// **The account is on its own line, always.** On the machine plan §2 was
|
|
850
|
+
// measured on the configured account is not the active one, so a repo line
|
|
851
|
+
// without the identity behind it is unreadable the first time it disagrees
|
|
852
|
+
// with what `gh auth status` prints.
|
|
853
|
+
for (const account of check.accounts ?? []) {
|
|
854
|
+
const mark = account.ok ? "✓" : "✗";
|
|
855
|
+
const active = account.active === null ? "" : account.active ? " (active)" : " (not active)";
|
|
856
|
+
lines.push(` ${mark} ${account.account}${active} — ${account.detail}`);
|
|
857
|
+
}
|
|
858
|
+
for (const repo of check.repos ?? []) {
|
|
859
|
+
const mark = repo.ok ? "✓" : "✗";
|
|
860
|
+
lines.push(` ${mark} ${repo.repo} as ${repo.account}`);
|
|
861
|
+
if (repo.viewer !== null)
|
|
862
|
+
lines.push(` token belongs to: ${repo.viewer}`);
|
|
863
|
+
if (repo.resolved !== null)
|
|
864
|
+
lines.push(` GitHub answered: ${repo.resolved}`);
|
|
865
|
+
if (repo.nodeId !== null)
|
|
866
|
+
lines.push(` node id: ${repo.nodeId}`);
|
|
867
|
+
if (!repo.ok)
|
|
868
|
+
lines.push(` ${repo.problem ?? "failed"}: ${repo.detail ?? ""}`);
|
|
869
|
+
}
|
|
464
870
|
if (check.note !== undefined)
|
|
465
871
|
lines.push(` note: ${check.note}`);
|
|
466
872
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type ExitCode, type Io } from "../output.js";
|
|
2
|
+
import { type Session } from "../session.js";
|
|
3
|
+
export interface IssueCommandOptions {
|
|
4
|
+
/** `--type` — the Azure DevOps work item type `adopt` creates. */
|
|
5
|
+
type: string | undefined;
|
|
6
|
+
/** `--title` — override the issue's own title. */
|
|
7
|
+
title: string | undefined;
|
|
8
|
+
/** `--parent` — a work item to create the new one under, in the same patch. */
|
|
9
|
+
parent: number | undefined;
|
|
10
|
+
/** `--text` / `--file` / `--stdin` — `say`'s message, for anything long. */
|
|
11
|
+
message: string | undefined;
|
|
12
|
+
/** `--summary` — what the board is told, when the derived one is not right. */
|
|
13
|
+
summary: string | undefined;
|
|
14
|
+
/** `--repo` — narrow `drift` to one repository's links. */
|
|
15
|
+
repo: string | undefined;
|
|
16
|
+
/** `--limit` — how many links `drift` examines, how many issues `backfill` adopts. */
|
|
17
|
+
limit: number | undefined;
|
|
18
|
+
/** `--wiql` — `drift`'s escape hatch: which work items to scan, written by hand. */
|
|
19
|
+
wiql: string | undefined;
|
|
20
|
+
/** `--state` — which issues `backfill` considers. Default `open`. */
|
|
21
|
+
state: string | undefined;
|
|
22
|
+
/** `--label` — repeatable. The triage lever: backfill one label at a time. */
|
|
23
|
+
labels: readonly string[];
|
|
24
|
+
/**
|
|
25
|
+
* `--to` — which state `close` moves the work item into.
|
|
26
|
+
*
|
|
27
|
+
* **Not `--state`**, which on `backfill` already means `open|closed|all` — a
|
|
28
|
+
* GitHub issue filter, not an Azure DevOps state. Two meanings on one flag
|
|
29
|
+
* across two verbs of one command is the `--wiki` shadowing bug this CLI
|
|
30
|
+
* already paid for once (`link 39 --wiki /Guides` was read as "the wiki called
|
|
31
|
+
* /Guides"), and it was only found by running it.
|
|
32
|
+
*/
|
|
33
|
+
to: string | undefined;
|
|
34
|
+
/** `--reason` — GitHub's `state_reason`: `completed` or `not-planned`. */
|
|
35
|
+
reason: string | undefined;
|
|
36
|
+
/** `--all` — close every issue a work item links, not just a single one. */
|
|
37
|
+
all: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* `--add-label` / `--remove-label` — repeatable, and **separate from
|
|
40
|
+
* `--label`**, which is `backfill`'s filter and means "consider these".
|
|
41
|
+
*
|
|
42
|
+
* Three names rather than reusing one is the `--state` lesson: one flag whose
|
|
43
|
+
* meaning changes with the verb is the `--wiki` shadowing bug this CLI already
|
|
44
|
+
* paid for once, and a *filter* and a *write* are further apart than the two
|
|
45
|
+
* meanings that caused it.
|
|
46
|
+
*/
|
|
47
|
+
addLabels: readonly string[];
|
|
48
|
+
removeLabels: readonly string[];
|
|
49
|
+
/**
|
|
50
|
+
* `--create-label` — allow `--add-label` to bring a label into existence.
|
|
51
|
+
*
|
|
52
|
+
* Off by default because `POST …/labels` creates silently: measured on #798,
|
|
53
|
+
* an unknown name answers 200 and the repository permanently carries a new
|
|
54
|
+
* grey label spelled exactly as typed. A typo is otherwise litter on somebody
|
|
55
|
+
* else's repository that nothing in this tool can see afterwards.
|
|
56
|
+
*/
|
|
57
|
+
createLabel: boolean;
|
|
58
|
+
addAssignees: readonly string[];
|
|
59
|
+
removeAssignees: readonly string[];
|
|
60
|
+
/** `--milestone <number>`, or `none` to clear it. */
|
|
61
|
+
milestone: string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* `--if-title` / `--if-body` / `--if-body-file` — the base the guard compares
|
|
64
|
+
* against, when the caller has one better than this command's own read.
|
|
65
|
+
*
|
|
66
|
+
* **Not `--if-match`**, and not an etag: the header of that name is refused by
|
|
67
|
+
* this endpoint with a 400, and a flag borrowing its name would teach exactly
|
|
68
|
+
* the wrong idea about what is happening. These are values, and the guard
|
|
69
|
+
* compares values — see {@link runEdit}.
|
|
70
|
+
*/
|
|
71
|
+
ifTitle: string | undefined;
|
|
72
|
+
ifBody: string | undefined;
|
|
73
|
+
}
|
|
74
|
+
export declare function runIssue(io: Io, session: Session, positionals: readonly string[], options: IssueCommandOptions): Promise<ExitCode>;
|
|
75
|
+
//# sourceMappingURL=issue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issue.d.ts","sourceRoot":"","sources":["../../src/commands/issue.ts"],"names":[],"mappings":"AA6DA,OAAO,EAOL,KAAK,QAAQ,EACb,KAAK,EAAE,EACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAwGtD,MAAM,WAAW,mBAAmB;IAClC,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,kDAAkD;IAClD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,sFAAsF;IACtF,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,oFAAoF;IACpF,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,qEAAqE;IACrE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,8EAA8E;IAC9E,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,4EAA4E;IAC5E,GAAG,EAAE,OAAO,CAAC;IAIb;;;;;;;;OAQG;IACH,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC;;;;;;;OAOG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAkCnB"}
|