create-hq 10.8.0 → 10.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/__tests__/auth.test.d.ts +2 -0
  2. package/dist/__tests__/auth.test.d.ts.map +1 -0
  3. package/dist/__tests__/auth.test.js +201 -0
  4. package/dist/__tests__/auth.test.js.map +1 -0
  5. package/dist/admin-onboarding.d.ts +12 -10
  6. package/dist/admin-onboarding.d.ts.map +1 -1
  7. package/dist/admin-onboarding.js +107 -48
  8. package/dist/admin-onboarding.js.map +1 -1
  9. package/dist/auth.d.ts +74 -14
  10. package/dist/auth.d.ts.map +1 -1
  11. package/dist/auth.js +176 -103
  12. package/dist/auth.js.map +1 -1
  13. package/dist/fetch-template.d.ts +3 -3
  14. package/dist/fetch-template.d.ts.map +1 -1
  15. package/dist/fetch-template.js +93 -71
  16. package/dist/fetch-template.js.map +1 -1
  17. package/dist/git.d.ts +12 -1
  18. package/dist/git.d.ts.map +1 -1
  19. package/dist/git.js +40 -20
  20. package/dist/git.js.map +1 -1
  21. package/dist/index.js +0 -0
  22. package/dist/scaffold.d.ts.map +1 -1
  23. package/dist/scaffold.js +55 -18
  24. package/dist/scaffold.js.map +1 -1
  25. package/dist/team-setup.d.ts.map +1 -1
  26. package/dist/team-setup.js +3 -0
  27. package/dist/team-setup.js.map +1 -1
  28. package/dist/teams-flow.d.ts +7 -2
  29. package/dist/teams-flow.d.ts.map +1 -1
  30. package/dist/teams-flow.js +53 -14
  31. package/dist/teams-flow.js.map +1 -1
  32. package/dist/ui.d.ts +3 -0
  33. package/dist/ui.d.ts.map +1 -1
  34. package/dist/ui.js +79 -3
  35. package/dist/ui.js.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/art.d.ts +0 -17
  38. package/dist/art.d.ts.map +0 -1
  39. package/dist/art.js +0 -171
  40. package/dist/art.js.map +0 -1
  41. package/dist/cloud.d.ts +0 -26
  42. package/dist/cloud.d.ts.map +0 -1
  43. package/dist/cloud.js +0 -126
  44. package/dist/cloud.js.map +0 -1
  45. package/dist/tui.d.ts +0 -8
  46. package/dist/tui.d.ts.map +0 -1
  47. package/dist/tui.js +0 -86
  48. package/dist/tui.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auth.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/auth.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,201 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach, afterAll } from "vitest";
2
+ import * as path from "path";
3
+ import * as os from "os";
4
+ import * as fs from "fs";
5
+ /**
6
+ * Unit tests for auth.ts:
7
+ * - githubApi error handling (403 on /user/installations)
8
+ * - ~/.hq/app-token.json persistence (load / save / clear)
9
+ * - Token validation via /user/installations probe
10
+ */
11
+ // ─── Mocks ─────────────────────────────────────────────────────────────────
12
+ const mockFetch = vi.fn();
13
+ vi.stubGlobal("fetch", mockFetch);
14
+ // Mock child_process so module-level execSync calls in auth.ts don't run
15
+ vi.mock("child_process", () => ({
16
+ exec: vi.fn(),
17
+ execSync: vi.fn(),
18
+ }));
19
+ // Import after mocks are in place
20
+ const { githubApi, loadGitHubAuth, saveGitHubAuth, clearGitHubAuth, isGitHubAuthValid, isAppScopedToken, HQ_APP_TOKEN_PATH, } = await import("../auth.js");
21
+ // ─── Fixtures ──────────────────────────────────────────────────────────────
22
+ const fakeAuth = {
23
+ access_token: "ghu_fake_app_token",
24
+ login: "testuser",
25
+ id: 12345,
26
+ name: "Test User",
27
+ email: "test@example.com",
28
+ issued_at: new Date().toISOString(),
29
+ };
30
+ // Use a temp directory so tests don't touch the real ~/.hq/
31
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "create-hq-auth-test-"));
32
+ const tmpTokenPath = path.join(tmpDir, "app-token.json");
33
+ // ─── githubApi ─────────────────────────────────────────────────────────────
34
+ describe("githubApi", () => {
35
+ beforeEach(() => mockFetch.mockReset());
36
+ it("throws a user-friendly message on 403 for /user/installations", async () => {
37
+ mockFetch.mockResolvedValueOnce({
38
+ ok: false,
39
+ status: 403,
40
+ text: async () => JSON.stringify({
41
+ message: "You must authenticate with an access token authorized to a GitHub App in order to list installations",
42
+ documentation_url: "https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token",
43
+ status: "403",
44
+ }),
45
+ });
46
+ await expect(githubApi("/user/installations?per_page=100", fakeAuth)).rejects.toThrow(/signed in with a regular GitHub token/i);
47
+ });
48
+ it("includes the re-run hint in the 403 installations error", async () => {
49
+ mockFetch.mockResolvedValueOnce({
50
+ ok: false,
51
+ status: 403,
52
+ text: async () => JSON.stringify({
53
+ message: "You must authenticate with an access token authorized to a GitHub App",
54
+ }),
55
+ });
56
+ await expect(githubApi("/user/installations?per_page=100", fakeAuth)).rejects.toThrow(/npx create-hq/);
57
+ });
58
+ it("preserves the raw error for non-installation 403s", async () => {
59
+ mockFetch.mockResolvedValueOnce({
60
+ ok: false,
61
+ status: 403,
62
+ text: async () => JSON.stringify({ message: "Resource not accessible by integration" }),
63
+ });
64
+ await expect(githubApi("/orgs/acme/repos", fakeAuth)).rejects.toThrow(/GitHub API 403 \/orgs\/acme\/repos/);
65
+ });
66
+ it("throws the raw error for non-403 failures", async () => {
67
+ mockFetch.mockResolvedValueOnce({
68
+ ok: false,
69
+ status: 404,
70
+ text: async () => JSON.stringify({ message: "Not Found" }),
71
+ });
72
+ await expect(githubApi("/user/installations?per_page=100", fakeAuth)).rejects.toThrow(/GitHub API 404/);
73
+ });
74
+ it("returns parsed JSON on success", async () => {
75
+ mockFetch.mockResolvedValueOnce({
76
+ ok: true,
77
+ status: 200,
78
+ json: async () => ({ installations: [] }),
79
+ });
80
+ const result = await githubApi("/user/installations?per_page=100", fakeAuth);
81
+ expect(result).toEqual({ installations: [] });
82
+ });
83
+ });
84
+ // ─── ~/.hq/app-token.json persistence ──────────────────────────────────────
85
+ describe("App token persistence", () => {
86
+ afterEach(() => {
87
+ // Clean up temp token file between tests
88
+ try {
89
+ fs.unlinkSync(tmpTokenPath);
90
+ }
91
+ catch { }
92
+ });
93
+ afterEach(() => {
94
+ // Clean up the real path if any test accidentally wrote there
95
+ // (shouldn't happen — we test with tmpTokenPath)
96
+ });
97
+ it("HQ_APP_TOKEN_PATH points to ~/.hq/app-token.json", () => {
98
+ const expected = path.join(os.homedir(), ".hq", "app-token.json");
99
+ expect(HQ_APP_TOKEN_PATH).toBe(expected);
100
+ });
101
+ it("saveGitHubAuth writes token file to disk", () => {
102
+ saveGitHubAuth(fakeAuth, tmpTokenPath);
103
+ // File was written
104
+ expect(fs.existsSync(tmpTokenPath)).toBe(true);
105
+ const stored = JSON.parse(fs.readFileSync(tmpTokenPath, "utf-8"));
106
+ expect(stored.login).toBe("testuser");
107
+ expect(stored.access_token).toBe("ghu_fake_app_token");
108
+ });
109
+ it("saveGitHubAuth creates ~/.hq/ directory if missing", () => {
110
+ const nested = path.join(tmpDir, "sub", "app-token.json");
111
+ saveGitHubAuth(fakeAuth, nested);
112
+ expect(fs.existsSync(nested)).toBe(true);
113
+ });
114
+ it("saveGitHubAuth sets restrictive file permissions (0600)", () => {
115
+ saveGitHubAuth(fakeAuth, tmpTokenPath);
116
+ const stat = fs.statSync(tmpTokenPath);
117
+ // Owner read+write only (0600 = 0o600 = 384 decimal)
118
+ expect(stat.mode & 0o777).toBe(0o600);
119
+ });
120
+ it("loadGitHubAuth reads from token file when present", () => {
121
+ // Write a valid token file
122
+ fs.writeFileSync(tmpTokenPath, JSON.stringify(fakeAuth), "utf-8");
123
+ const loaded = loadGitHubAuth(tmpTokenPath);
124
+ expect(loaded).not.toBeNull();
125
+ expect(loaded.login).toBe("testuser");
126
+ expect(loaded.access_token).toBe("ghu_fake_app_token");
127
+ });
128
+ it("loadGitHubAuth returns null when token file does not exist", () => {
129
+ const loaded = loadGitHubAuth(tmpTokenPath);
130
+ expect(loaded).toBeNull();
131
+ });
132
+ it("loadGitHubAuth returns null for corrupted JSON", () => {
133
+ fs.writeFileSync(tmpTokenPath, "NOT VALID JSON{{{", "utf-8");
134
+ const loaded = loadGitHubAuth(tmpTokenPath);
135
+ expect(loaded).toBeNull();
136
+ });
137
+ it("loadGitHubAuth returns null when token file is missing access_token", () => {
138
+ fs.writeFileSync(tmpTokenPath, JSON.stringify({ login: "x", id: 1 }), "utf-8");
139
+ const loaded = loadGitHubAuth(tmpTokenPath);
140
+ expect(loaded).toBeNull();
141
+ });
142
+ it("clearGitHubAuth removes the token file", () => {
143
+ fs.writeFileSync(tmpTokenPath, JSON.stringify(fakeAuth), "utf-8");
144
+ expect(fs.existsSync(tmpTokenPath)).toBe(true);
145
+ clearGitHubAuth(tmpTokenPath);
146
+ expect(fs.existsSync(tmpTokenPath)).toBe(false);
147
+ });
148
+ it("clearGitHubAuth is a no-op when file does not exist", () => {
149
+ // Should not throw
150
+ clearGitHubAuth(tmpTokenPath);
151
+ });
152
+ });
153
+ // ─── isGitHubAuthValid ─────────────────────────────────────────────────────
154
+ describe("isGitHubAuthValid", () => {
155
+ beforeEach(() => mockFetch.mockReset());
156
+ it("returns true when /user responds 200", async () => {
157
+ mockFetch.mockResolvedValueOnce({ ok: true });
158
+ expect(await isGitHubAuthValid(fakeAuth)).toBe(true);
159
+ });
160
+ it("returns false when /user responds non-ok", async () => {
161
+ mockFetch.mockResolvedValueOnce({ ok: false, status: 401 });
162
+ expect(await isGitHubAuthValid(fakeAuth)).toBe(false);
163
+ });
164
+ it("returns false on network error", async () => {
165
+ mockFetch.mockRejectedValueOnce(new Error("ECONNREFUSED"));
166
+ expect(await isGitHubAuthValid(fakeAuth)).toBe(false);
167
+ });
168
+ });
169
+ // ─── isAppScopedToken ──────────────────────────────────────────────────────
170
+ describe("isAppScopedToken", () => {
171
+ beforeEach(() => mockFetch.mockReset());
172
+ it('returns "yes" when /user/installations responds 200', async () => {
173
+ mockFetch.mockResolvedValueOnce({ ok: true, status: 200 });
174
+ expect(await isAppScopedToken(fakeAuth)).toBe("yes");
175
+ });
176
+ it('returns "no" on 403 (definitive — wrong token type)', async () => {
177
+ mockFetch.mockResolvedValueOnce({ ok: false, status: 403 });
178
+ expect(await isAppScopedToken(fakeAuth)).toBe("no");
179
+ });
180
+ it('returns "unknown" on 5xx (transient server error)', async () => {
181
+ mockFetch.mockResolvedValueOnce({ ok: false, status: 500 });
182
+ expect(await isAppScopedToken(fakeAuth)).toBe("unknown");
183
+ });
184
+ it('returns "unknown" on network error', async () => {
185
+ mockFetch.mockRejectedValueOnce(new Error("ECONNREFUSED"));
186
+ expect(await isAppScopedToken(fakeAuth)).toBe("unknown");
187
+ });
188
+ it('returns "no" when access_token is empty', async () => {
189
+ expect(await isAppScopedToken({ ...fakeAuth, access_token: "" })).toBe("no");
190
+ // fetch should not have been called
191
+ expect(mockFetch).not.toHaveBeenCalled();
192
+ });
193
+ });
194
+ // ─── Cleanup ───────────────────────────────────────────────────────────────
195
+ afterAll(() => {
196
+ try {
197
+ fs.rmSync(tmpDir, { recursive: true, force: true });
198
+ }
199
+ catch { }
200
+ });
201
+ //# sourceMappingURL=auth.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.test.js","sourceRoot":"","sources":["../../src/__tests__/auth.test.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,15 @@
2
2
  * Admin onboarding flow — for users creating a brand new HQ team.
3
3
  *
4
4
  * Steps:
5
- * 1. List user's GitHub orgs (only those where they can create repos)
6
- * 2. Let user pick an existing org or create a new one (browser hand-off)
7
- * 3. Verify the HQ App is installed on the chosen org (browser hand-off if not)
8
- * 4. Prompt for team name (default = org display name)
9
- * 5. Create the {org}/hq private repo
10
- * 6. Seed the repo locally with the company template + push
11
- * 7. Clone the repo into companies/{slug}/ as a nested git
12
- * 8. Return team metadata for the orientation summary
5
+ * 1. Ensure a `gh` CLI token for org discovery (prompt login if needed)
6
+ * 2. List ALL user's GitHub orgs via gh token (full visibility)
7
+ * 3. Let user pick an existing org or create a new one (browser hand-off)
8
+ * 4. Verify the HQ App is installed on the chosen org (browser hand-off if not)
9
+ * 5. Prompt for team name (default = org display name)
10
+ * 6. Create the {org}/hq private repo
11
+ * 7. Seed the repo locally with the company template + push
12
+ * 8. Clone the repo into companies/{slug}/ as a nested git
13
+ * 9. Return team metadata for the orientation summary
13
14
  */
14
15
  import { type GitHubAuth } from "./auth.js";
15
16
  import { type TeamMetadata } from "./company-template.js";
@@ -24,11 +25,12 @@ export declare function slugify(input: string): string;
24
25
  /**
25
26
  * Run the admin onboarding flow.
26
27
  *
27
- * @param auth - Authenticated GitHub user
28
+ * @param preAuth - Pre-existing App auth (from "existing" path), or null
29
+ * if coming from the "new" path (auth deferred until after org selection)
28
30
  * @param hqRoot - Local HQ root directory (where companies/ lives)
29
31
  * @param hqVersion - HQ template version (for team metadata)
30
32
  */
31
- export declare function runAdminOnboarding(auth: GitHubAuth, hqRoot: string, hqVersion: string): Promise<AdminOnboardingResult | null>;
33
+ export declare function runAdminOnboarding(preAuth: GitHubAuth | null, hqRoot: string, hqVersion: string): Promise<AdminOnboardingResult | null>;
32
34
  /**
33
35
  * Interactive invite generation for a single member. Prompts for email,
34
36
  * sends org invite, generates token, and prints instructions.
@@ -1 +1 @@
1
- {"version":3,"file":"admin-onboarding.d.ts","sourceRoot":"","sources":["../src/admin-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,OAAO,EACL,KAAK,UAAU,EAIhB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAkDhF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AA+KD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7C;AAID;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CA0QvC;AAID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAaf"}
1
+ {"version":3,"file":"admin-onboarding.d.ts","sourceRoot":"","sources":["../src/admin-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH,OAAO,EACL,KAAK,UAAU,EAOhB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAwChF,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AA6MD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7C;AAID;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,UAAU,GAAG,IAAI,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAySvC;AAID;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAqDf;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAaf"}
@@ -2,14 +2,15 @@
2
2
  * Admin onboarding flow — for users creating a brand new HQ team.
3
3
  *
4
4
  * Steps:
5
- * 1. List user's GitHub orgs (only those where they can create repos)
6
- * 2. Let user pick an existing org or create a new one (browser hand-off)
7
- * 3. Verify the HQ App is installed on the chosen org (browser hand-off if not)
8
- * 4. Prompt for team name (default = org display name)
9
- * 5. Create the {org}/hq private repo
10
- * 6. Seed the repo locally with the company template + push
11
- * 7. Clone the repo into companies/{slug}/ as a nested git
12
- * 8. Return team metadata for the orientation summary
5
+ * 1. Ensure a `gh` CLI token for org discovery (prompt login if needed)
6
+ * 2. List ALL user's GitHub orgs via gh token (full visibility)
7
+ * 3. Let user pick an existing org or create a new one (browser hand-off)
8
+ * 4. Verify the HQ App is installed on the chosen org (browser hand-off if not)
9
+ * 5. Prompt for team name (default = org display name)
10
+ * 6. Create the {org}/hq private repo
11
+ * 7. Seed the repo locally with the company template + push
12
+ * 8. Clone the repo into companies/{slug}/ as a nested git
13
+ * 9. Return team metadata for the orientation summary
13
14
  */
14
15
  import * as fs from "fs";
15
16
  import * as path from "path";
@@ -18,7 +19,7 @@ import * as crypto from "crypto";
18
19
  import { execSync } from "child_process";
19
20
  import { createInterface } from "readline";
20
21
  import chalk from "chalk";
21
- import { HQ_GITHUB_APP_SLUG, githubApi, openBrowser, } from "./auth.js";
22
+ import { HQ_GITHUB_APP_SLUG, githubApi, openBrowser, getGhCliToken, fetchAdminOrgsWithToken, startGitHubDeviceFlow, } from "./auth.js";
22
23
  import { writeCompanyTemplate } from "./company-template.js";
23
24
  import { stepStatus, success, warn, info } from "./ui.js";
24
25
  import { linkTeamCommands, installTeamCommands } from "./team-setup.js";
@@ -45,28 +46,56 @@ function pause(message) {
45
46
  }
46
47
  // ─── GitHub helpers ─────────────────────────────────────────────────────────
47
48
  /**
48
- * Fetch the orgs the user is an active admin of. Uses
49
- * /user/memberships/orgs which (unlike /user/orgs) tells us our role.
49
+ * Ensure we have a `gh` CLI token for org discovery.
50
50
  *
51
- * Requires the App's "Organization > Members: Read" permission. If the App
52
- * isn't permitted, this returns an empty array (and we tell the user to
53
- * check their App permissions).
51
+ * The GitHub App user-to-server token can only see orgs where the App is
52
+ * already installed a chicken-and-egg problem when the user wants to pick
53
+ * an org to install the App on. The `gh` CLI token (OAuth with `read:org`)
54
+ * sees ALL the user's orgs regardless of App installations.
55
+ *
56
+ * Flow:
57
+ * 1. Try `gh auth token` — if it works, we're done
58
+ * 2. If `gh` isn't installed or not logged in, prompt the user to log in
59
+ * 3. Retry after they confirm — if still no token, return null (caller
60
+ * will guide user to create an org or abort)
54
61
  */
55
- async function fetchAdminOrgs(auth) {
56
- try {
57
- const memberships = await githubApi("/user/memberships/orgs?state=active&per_page=100", auth);
58
- return memberships
59
- .filter((m) => m.role === "admin")
60
- .map((m) => ({
61
- login: m.organization.login,
62
- id: m.organization.id,
63
- }));
64
- }
65
- catch (err) {
66
- // Permission errors come back as 403/404 surface as empty list, the
67
- // caller will guide the user to fix App permissions or create an org.
68
- return [];
69
- }
62
+ async function ensureGhToken() {
63
+ const existing = getGhCliToken();
64
+ if (existing)
65
+ return existing;
66
+ // gh not available or not logged in — guide the user
67
+ console.log();
68
+ info("HQ needs access to your GitHub organizations to continue.");
69
+ info("The fastest way is to sign into the GitHub CLI:");
70
+ console.log();
71
+ console.log(chalk.cyan(" gh auth login"));
72
+ console.log();
73
+ await pause("Run that command in another terminal, then press Enter...");
74
+ // Retry after user says they logged in
75
+ const token = getGhCliToken();
76
+ if (token)
77
+ return token;
78
+ // Still no luck — one more attempt with installation help
79
+ console.log();
80
+ info("Still can't detect a GitHub CLI session.");
81
+ info("If you don't have the GitHub CLI installed:");
82
+ console.log(chalk.cyan(" https://cli.github.com"));
83
+ console.log();
84
+ const retry = await prompt("Try again after installing/logging in? (Y/n)", "y");
85
+ if (!retry.toLowerCase().startsWith("y"))
86
+ return null;
87
+ await pause("Press Enter when ready...");
88
+ return getGhCliToken();
89
+ }
90
+ /**
91
+ * Fetch the orgs the user is an active admin of, using their `gh` CLI token.
92
+ *
93
+ * Always uses a user-scoped token (from `gh auth token`) so we see ALL
94
+ * the user's orgs — not just orgs where the HQ App is installed.
95
+ * Returns an empty array if the token is unavailable or the user has no orgs.
96
+ */
97
+ async function fetchAdminOrgs(ghToken) {
98
+ return fetchAdminOrgsWithToken(ghToken);
70
99
  }
71
100
  async function fetchInstallations(auth) {
72
101
  const data = await githubApi("/user/installations?per_page=100", auth);
@@ -165,20 +194,29 @@ export function slugify(input) {
165
194
  /**
166
195
  * Run the admin onboarding flow.
167
196
  *
168
- * @param auth - Authenticated GitHub user
197
+ * @param preAuth - Pre-existing App auth (from "existing" path), or null
198
+ * if coming from the "new" path (auth deferred until after org selection)
169
199
  * @param hqRoot - Local HQ root directory (where companies/ lives)
170
200
  * @param hqVersion - HQ template version (for team metadata)
171
201
  */
172
- export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
202
+ export async function runAdminOnboarding(preAuth, hqRoot, hqVersion) {
173
203
  console.log();
174
204
  console.log(chalk.bold(" Create a new HQ team"));
175
205
  console.log();
176
- // 1. Fetch admin orgs
206
+ // 1. Get a gh CLI token for org discovery (sees ALL user's orgs)
207
+ const ghToken = await ensureGhToken();
208
+ if (!ghToken) {
209
+ warn("GitHub CLI is needed to list your organizations.");
210
+ info("Install it from " + chalk.cyan("https://cli.github.com") + " then run " + chalk.cyan("gh auth login"));
211
+ info("After that, run create-hq again.");
212
+ return null;
213
+ }
214
+ // 2. Fetch admin orgs using the gh token
177
215
  const orgsLabel = "Looking up your GitHub organizations";
178
216
  stepStatus(orgsLabel, "running");
179
- let orgs = await fetchAdminOrgs(auth);
217
+ let orgs = await fetchAdminOrgs(ghToken);
180
218
  stepStatus(orgsLabel, "done");
181
- // 2. Pick or create org
219
+ // 3. Pick or create org
182
220
  let chosenOrg = null;
183
221
  while (!chosenOrg) {
184
222
  if (orgs.length === 0) {
@@ -194,7 +232,7 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
194
232
  openBrowser("https://github.com/organizations/new");
195
233
  await pause("Press Enter when you have finished creating the org...");
196
234
  stepStatus("Re-checking organizations", "running");
197
- orgs = await fetchAdminOrgs(auth);
235
+ orgs = await fetchAdminOrgs(ghToken);
198
236
  stepStatus("Re-checking organizations", "done");
199
237
  continue;
200
238
  }
@@ -212,7 +250,7 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
212
250
  openBrowser("https://github.com/organizations/new");
213
251
  await pause("Press Enter when you have finished creating the org...");
214
252
  stepStatus("Re-checking organizations", "running");
215
- orgs = await fetchAdminOrgs(auth);
253
+ orgs = await fetchAdminOrgs(ghToken);
216
254
  stepStatus("Re-checking organizations", "done");
217
255
  continue;
218
256
  }
@@ -222,7 +260,24 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
222
260
  }
223
261
  chosenOrg = orgs[idx];
224
262
  }
225
- // 3. Verify HQ App is installed on the org
263
+ // 4. Authenticate with the HQ App (deferred until after org selection)
264
+ // The App token is needed for installation checks and repo management.
265
+ // By deferring, we avoid the chicken-and-egg: user sees all orgs first
266
+ // (via gh token), picks one, THEN authorizes the App for that org.
267
+ let auth = preAuth;
268
+ if (!auth) {
269
+ console.log();
270
+ info(`Now authorize the HQ App to manage repos in ${chalk.cyan(chosenOrg.login)}.`);
271
+ try {
272
+ auth = await startGitHubDeviceFlow();
273
+ }
274
+ catch (err) {
275
+ const message = err instanceof Error ? err.message : String(err);
276
+ warn(`GitHub App authorization failed: ${message}`);
277
+ return null;
278
+ }
279
+ }
280
+ // 5. Verify HQ App is installed on the chosen org
226
281
  let installation = null;
227
282
  while (!installation) {
228
283
  const installLabel = `Checking HQ App on ${chosenOrg.login}`;
@@ -238,16 +293,20 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
238
293
  info(`The HQ GitHub App isn't installed on ${chalk.cyan(chosenOrg.login)} yet.`);
239
294
  info("Installing it gives HQ permission to manage the team workspace repo.");
240
295
  console.log();
241
- const installUrl = `https://github.com/apps/${HQ_GITHUB_APP_SLUG}/installations/new/permissions?target_id=${chosenOrg.id}`;
242
- const proceed = await prompt("Open the install page in your browser? (Y/n)", "y");
243
- if (!proceed.toLowerCase().startsWith("y")) {
244
- warn("HQ App is required to create a team. Aborting team creation.");
245
- return null;
296
+ console.log();
297
+ info("We'll open the HQ App install page.");
298
+ info(chalk.bold(`Select "${chosenOrg.login}" from the list of organizations.`));
299
+ console.log();
300
+ const openIt = await prompt("Open the install page now? (Y/n)", "y");
301
+ if (openIt.toLowerCase().startsWith("y")) {
302
+ // /installations/select_target always shows the org picker, even when
303
+ // the App is already installed on a different org (unlike /installations/new
304
+ // which redirects to the existing installation's config page).
305
+ openBrowser(`https://github.com/apps/${HQ_GITHUB_APP_SLUG}/installations/select_target`);
246
306
  }
247
- openBrowser(installUrl);
248
307
  await pause("Press Enter when the App has been installed...");
249
308
  }
250
- // 4. Prompt for team name
309
+ // 6. Prompt for team name
251
310
  console.log();
252
311
  const defaultName = chosenOrg.login;
253
312
  const teamName = (await prompt("Team name", defaultName)) || defaultName;
@@ -263,7 +322,7 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
263
322
  created_at: new Date().toISOString(),
264
323
  hq_version: hqVersion,
265
324
  };
266
- // 5. Create the {org}/hq-{teamSlug} repo
325
+ // 7. Create the {org}/hq-{teamSlug} repo
267
326
  const repoName = `hq-${teamSlug}`;
268
327
  const repoLabel = `Creating ${chosenOrg.login}/${repoName} private repo`;
269
328
  stepStatus(repoLabel, "running");
@@ -297,7 +356,7 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
297
356
  return null;
298
357
  }
299
358
  }
300
- // 6. Seed locally and push
359
+ // 8. Seed locally and push
301
360
  const seedLabel = "Seeding team workspace";
302
361
  stepStatus(seedLabel, "running");
303
362
  const seedDir = fs.mkdtempSync(path.join(os.tmpdir(), "create-hq-seed-"));
@@ -334,7 +393,7 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
334
393
  // ignore
335
394
  }
336
395
  }
337
- // 7. Clone into companies/{slug}/
396
+ // 9. Clone into companies/{slug}/
338
397
  const companiesDir = path.join(hqRoot, "companies");
339
398
  if (!fs.existsSync(companiesDir)) {
340
399
  fs.mkdirSync(companiesDir, { recursive: true });
@@ -388,7 +447,7 @@ export async function runAdminOnboarding(auth, hqRoot, hqVersion) {
388
447
  }
389
448
  console.log();
390
449
  success(`Team "${teamName}" created — ${repo.html_url}`);
391
- // 8. Offer to generate member invites
450
+ // 10. Offer to generate member invites
392
451
  await inviteLoop(auth, meta, repo.clone_url);
393
452
  return {
394
453
  team: meta,
@@ -1 +1 @@
1
- {"version":3,"file":"admin-onboarding.js","sourceRoot":"","sources":["../src/admin-onboarding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-onboarding.js","sourceRoot":"","sources":["../src/admin-onboarding.ts"],"names":[],"mappings":"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"}