@jonit-dev/night-watch-cli 1.7.8 → 1.7.10

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 (64) hide show
  1. package/dist/board/providers/github-projects.d.ts +9 -1
  2. package/dist/board/providers/github-projects.d.ts.map +1 -1
  3. package/dist/board/providers/github-projects.js +199 -60
  4. package/dist/board/providers/github-projects.js.map +1 -1
  5. package/dist/cli.js +3 -0
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/board.d.ts.map +1 -1
  8. package/dist/commands/board.js +47 -7
  9. package/dist/commands/board.js.map +1 -1
  10. package/dist/commands/dashboard/tab-config.d.ts.map +1 -1
  11. package/dist/commands/dashboard/tab-config.js +1 -0
  12. package/dist/commands/dashboard/tab-config.js.map +1 -1
  13. package/dist/commands/init.d.ts.map +1 -1
  14. package/dist/commands/init.js +131 -19
  15. package/dist/commands/init.js.map +1 -1
  16. package/dist/commands/install.d.ts +4 -0
  17. package/dist/commands/install.d.ts.map +1 -1
  18. package/dist/commands/install.js +24 -0
  19. package/dist/commands/install.js.map +1 -1
  20. package/dist/commands/qa.d.ts +30 -0
  21. package/dist/commands/qa.d.ts.map +1 -0
  22. package/dist/commands/qa.js +159 -0
  23. package/dist/commands/qa.js.map +1 -0
  24. package/dist/commands/review.d.ts +1 -0
  25. package/dist/commands/review.d.ts.map +1 -1
  26. package/dist/commands/review.js +10 -0
  27. package/dist/commands/review.js.map +1 -1
  28. package/dist/commands/run.d.ts.map +1 -1
  29. package/dist/commands/run.js +73 -28
  30. package/dist/commands/run.js.map +1 -1
  31. package/dist/commands/status.d.ts.map +1 -1
  32. package/dist/commands/status.js +3 -0
  33. package/dist/commands/status.js.map +1 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +155 -1
  36. package/dist/config.js.map +1 -1
  37. package/dist/constants.d.ts +20 -1
  38. package/dist/constants.d.ts.map +1 -1
  39. package/dist/constants.js +40 -0
  40. package/dist/constants.js.map +1 -1
  41. package/dist/server/index.d.ts.map +1 -1
  42. package/dist/server/index.js +4 -2
  43. package/dist/server/index.js.map +1 -1
  44. package/dist/types.d.ts +43 -1
  45. package/dist/types.d.ts.map +1 -1
  46. package/dist/utils/notify.d.ts.map +1 -1
  47. package/dist/utils/notify.js +18 -0
  48. package/dist/utils/notify.js.map +1 -1
  49. package/dist/utils/status-data.d.ts +4 -0
  50. package/dist/utils/status-data.d.ts.map +1 -1
  51. package/dist/utils/status-data.js +13 -3
  52. package/dist/utils/status-data.js.map +1 -1
  53. package/package.json +1 -1
  54. package/scripts/night-watch-cron.sh +52 -2
  55. package/scripts/night-watch-helpers.sh +30 -2
  56. package/scripts/night-watch-pr-reviewer-cron.sh +70 -0
  57. package/scripts/night-watch-qa-cron.sh +269 -0
  58. package/templates/night-watch-qa.md +157 -0
  59. package/templates/night-watch.config.json +14 -1
  60. package/web/dist/assets/index-BPW-7_1C.js +380 -0
  61. package/web/dist/assets/index-DVqjjJEO.css +1 -0
  62. package/web/dist/index.html +2 -2
  63. package/web/dist/assets/index-C64sy08d.js +0 -360
  64. package/web/dist/assets/index-DzoZeo_Y.css +0 -1
@@ -5,8 +5,16 @@ export declare class GitHubProjectsProvider implements IBoardProvider {
5
5
  private cachedProjectId;
6
6
  private cachedFieldId;
7
7
  private cachedOptionIds;
8
+ private cachedOwner;
9
+ private cachedRepositoryId;
8
10
  constructor(config: IBoardProviderConfig, cwd: string);
9
11
  private getRepo;
12
+ private getRepoParts;
13
+ private getRepoOwnerLogin;
14
+ private getRepoOwner;
15
+ private getRepositoryNodeId;
16
+ private linkProjectToRepository;
17
+ private fetchStatusField;
10
18
  /**
11
19
  * Fetch and cache the project node ID, Status field ID, and option IDs.
12
20
  * Throws if the project cannot be found or has no Status field.
@@ -20,7 +28,7 @@ export declare class GitHubProjectsProvider implements IBoardProvider {
20
28
  */
21
29
  private parseItem;
22
30
  /**
23
- * Find an existing project by title among the viewer's first 50 projects.
31
+ * Find an existing project by title among the repository owner's first 50 projects.
24
32
  * Returns null if not found.
25
33
  */
26
34
  private findExistingProject;
@@ -1 +1 @@
1
- {"version":3,"file":"github-projects.d.ts","sourceRoot":"","sources":["../../../src/board/providers/github-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAuH1B,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAkC;gBAE7C,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM;IASrD,OAAO,CAAC,OAAO;IAIf;;;OAGG;YACW,kBAAkB;IA0EhC,oDAAoD;IACpD,OAAO,CAAC,gBAAgB;IAqDxB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAmCjB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAqErB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsE9C,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAkBtC,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQrC,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoG3D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA+C1D,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKlE,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAoDtC,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC;IAyEV,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQvE"}
1
+ {"version":3,"file":"github-projects.d.ts","sourceRoot":"","sources":["../../../src/board/providers/github-projects.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AA4I1B,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,kBAAkB,CAAuB;gBAErC,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM;IASrD,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,gBAAgB;IAsCxB;;;OAGG;YACW,kBAAkB;IAoEhC,oDAAoD;IACpD,OAAO,CAAC,gBAAgB;IAqDxB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAmCjB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAkC3B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAqErB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiF9C,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA8BtC,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQrC,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoG3D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA+C1D,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKlE,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAoDtC,SAAS,CACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC;IAyEV,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQvE"}
@@ -10,6 +10,8 @@ export class GitHubProjectsProvider {
10
10
  cachedProjectId = null;
11
11
  cachedFieldId = null;
12
12
  cachedOptionIds = new Map();
13
+ cachedOwner = null;
14
+ cachedRepositoryId = null;
13
15
  constructor(config, cwd) {
14
16
  this.config = config;
15
17
  this.cwd = cwd;
@@ -20,6 +22,104 @@ export class GitHubProjectsProvider {
20
22
  getRepo() {
21
23
  return this.config.repo ?? getRepoNwo(this.cwd);
22
24
  }
25
+ getRepoParts() {
26
+ const repo = this.getRepo();
27
+ const [owner, name] = repo.split("/");
28
+ if (!owner || !name) {
29
+ throw new Error(`Invalid repository slug: "${repo}". Expected "owner/repo".`);
30
+ }
31
+ return { owner, name };
32
+ }
33
+ getRepoOwnerLogin() {
34
+ return this.getRepoParts().owner;
35
+ }
36
+ getRepoOwner() {
37
+ if (this.cachedOwner && this.cachedRepositoryId) {
38
+ return this.cachedOwner;
39
+ }
40
+ const { owner, name } = this.getRepoParts();
41
+ const data = graphql(`query ResolveRepoOwner($owner: String!, $name: String!) {
42
+ repository(owner: $owner, name: $name) {
43
+ id
44
+ owner {
45
+ __typename
46
+ id
47
+ login
48
+ }
49
+ }
50
+ }`, { owner, name }, this.cwd);
51
+ if (!data.repository) {
52
+ throw new Error(`Repository ${owner}/${name} not found.`);
53
+ }
54
+ const ownerNode = data.repository.owner;
55
+ if (!ownerNode ||
56
+ (ownerNode.__typename !== "User" && ownerNode.__typename !== "Organization")) {
57
+ throw new Error(`Failed to resolve repository owner for ${owner}/${name}.`);
58
+ }
59
+ this.cachedRepositoryId = data.repository.id;
60
+ this.cachedOwner = {
61
+ id: ownerNode.id,
62
+ login: ownerNode.login,
63
+ type: ownerNode.__typename,
64
+ };
65
+ return this.cachedOwner;
66
+ }
67
+ getRepositoryNodeId() {
68
+ if (this.cachedRepositoryId) {
69
+ return this.cachedRepositoryId;
70
+ }
71
+ this.getRepoOwner();
72
+ if (!this.cachedRepositoryId) {
73
+ throw new Error(`Failed to resolve repository ID for ${this.getRepo()}.`);
74
+ }
75
+ return this.cachedRepositoryId;
76
+ }
77
+ linkProjectToRepository(projectId) {
78
+ const repositoryId = this.getRepositoryNodeId();
79
+ try {
80
+ graphql(`mutation LinkProjectToRepository($projectId: ID!, $repositoryId: ID!) {
81
+ linkProjectV2ToRepository(input: { projectId: $projectId, repositoryId: $repositoryId }) {
82
+ repository {
83
+ id
84
+ }
85
+ }
86
+ }`, { projectId, repositoryId }, this.cwd);
87
+ }
88
+ catch (err) {
89
+ const message = err instanceof Error ? err.message : String(err);
90
+ const normalized = message.toLowerCase();
91
+ if (normalized.includes("already") && normalized.includes("project")) {
92
+ return;
93
+ }
94
+ throw err;
95
+ }
96
+ }
97
+ fetchStatusField(projectId) {
98
+ const fieldData = graphql(`query GetStatusField($projectId: ID!) {
99
+ node(id: $projectId) {
100
+ ... on ProjectV2 {
101
+ field(name: "Status") {
102
+ ... on ProjectV2SingleSelectField {
103
+ id
104
+ options {
105
+ id
106
+ name
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }`, { projectId }, this.cwd);
113
+ const field = fieldData.node?.field;
114
+ if (!field) {
115
+ throw new Error(`Status field not found on project ${projectId}. ` +
116
+ `Run \`night-watch board setup\` to create it.`);
117
+ }
118
+ return {
119
+ fieldId: field.id,
120
+ optionIds: new Map(field.options.map((o) => [o.name, o.id])),
121
+ };
122
+ }
23
123
  /**
24
124
  * Fetch and cache the project node ID, Status field ID, and option IDs.
25
125
  * Throws if the project cannot be found or has no Status field.
@@ -34,39 +134,41 @@ export class GitHubProjectsProvider {
34
134
  optionIds: this.cachedOptionIds,
35
135
  };
36
136
  }
137
+ if (this.cachedProjectId !== null) {
138
+ const statusField = this.fetchStatusField(this.cachedProjectId);
139
+ this.cachedFieldId = statusField.fieldId;
140
+ this.cachedOptionIds = statusField.optionIds;
141
+ return {
142
+ projectId: this.cachedProjectId,
143
+ fieldId: this.cachedFieldId,
144
+ optionIds: this.cachedOptionIds,
145
+ };
146
+ }
37
147
  const projectNumber = this.config.projectNumber;
38
148
  if (!projectNumber) {
39
149
  throw new Error("No projectNumber configured. Run `night-watch board setup` first.");
40
150
  }
41
- const login = getViewerLogin(this.cwd);
42
- const projectNode = await this.fetchProjectNode(login, projectNumber);
43
- if (!projectNode) {
44
- throw new Error(`GitHub Project #${projectNumber} not found for login "${login}".`);
151
+ const ownerLogins = new Set([this.getRepoOwnerLogin()]);
152
+ try {
153
+ ownerLogins.add(getViewerLogin(this.cwd));
45
154
  }
46
- this.cachedProjectId = projectNode.id;
47
- // Fetch Status field
48
- const fieldData = graphql(`query GetStatusField($projectId: ID!) {
49
- node(id: $projectId) {
50
- ... on ProjectV2 {
51
- field(name: "Status") {
52
- ... on ProjectV2SingleSelectField {
53
- id
54
- options {
55
- id
56
- name
57
- }
58
- }
155
+ catch {
156
+ // ignore fallback if viewer lookup fails
157
+ }
158
+ let projectNode = null;
159
+ for (const login of ownerLogins) {
160
+ projectNode = this.fetchProjectNode(login, projectNumber);
161
+ if (projectNode) {
162
+ break;
59
163
  }
60
- }
61
164
  }
62
- }`, { projectId: projectNode.id }, this.cwd);
63
- const field = fieldData.node?.field;
64
- if (!field) {
65
- throw new Error(`Status field not found on project #${projectNumber}. ` +
66
- `Run \`night-watch board setup\` to create it.`);
165
+ if (!projectNode) {
166
+ throw new Error(`GitHub Project #${projectNumber} not found for repository owner "${this.getRepoOwnerLogin()}".`);
67
167
  }
68
- this.cachedFieldId = field.id;
69
- this.cachedOptionIds = new Map(field.options.map((o) => [o.name, o.id]));
168
+ this.cachedProjectId = projectNode.id;
169
+ const statusField = this.fetchStatusField(projectNode.id);
170
+ this.cachedFieldId = statusField.fieldId;
171
+ this.cachedOptionIds = statusField.optionIds;
70
172
  return {
71
173
  projectId: this.cachedProjectId,
72
174
  fieldId: this.cachedFieldId,
@@ -147,19 +249,29 @@ export class GitHubProjectsProvider {
147
249
  // IBoardProvider implementation
148
250
  // -------------------------------------------------------------------------
149
251
  /**
150
- * Find an existing project by title among the viewer's first 50 projects.
252
+ * Find an existing project by title among the repository owner's first 50 projects.
151
253
  * Returns null if not found.
152
254
  */
153
- findExistingProject(title) {
255
+ findExistingProject(owner, title) {
154
256
  try {
155
- const data = graphql(`query ListProjects {
156
- viewer {
257
+ if (owner.type === "User") {
258
+ const data = graphql(`query ListUserProjects($login: String!) {
259
+ user(login: $login) {
260
+ projectsV2(first: 50) {
261
+ nodes { id number title url }
262
+ }
263
+ }
264
+ }`, { login: owner.login }, this.cwd);
265
+ return data.user?.projectsV2.nodes.find((p) => p.title === title) ?? null;
266
+ }
267
+ const data = graphql(`query ListOrgProjects($login: String!) {
268
+ organization(login: $login) {
157
269
  projectsV2(first: 50) {
158
270
  nodes { id number title url }
159
271
  }
160
272
  }
161
- }`, {}, this.cwd);
162
- return data.viewer.projectsV2.nodes.find((p) => p.title === title) ?? null;
273
+ }`, { login: owner.login }, this.cwd);
274
+ return data.organization?.projectsV2.nodes.find((p) => p.title === title) ?? null;
163
275
  }
164
276
  catch {
165
277
  return null;
@@ -223,16 +335,15 @@ export class GitHubProjectsProvider {
223
335
  }`, { fieldId: field.id, allOptions }, this.cwd);
224
336
  }
225
337
  async setupBoard(title) {
338
+ const owner = this.getRepoOwner();
226
339
  // Find or create — avoid duplicating boards on re-runs
227
- const existing = this.findExistingProject(title);
340
+ const existing = this.findExistingProject(owner, title);
228
341
  if (existing) {
229
342
  this.cachedProjectId = existing.id;
343
+ this.linkProjectToRepository(existing.id);
230
344
  this.ensureStatusColumns(existing.id);
231
345
  return { id: existing.id, number: existing.number, title: existing.title, url: existing.url };
232
346
  }
233
- // Resolve the authenticated user/org node ID
234
- const viewerData = graphql(`query { viewer { id login } }`, {}, this.cwd);
235
- const ownerId = viewerData.viewer.id;
236
347
  // Create the project
237
348
  const createData = graphql(`mutation CreateProject($ownerId: ID!, $title: String!) {
238
349
  createProjectV2(input: { ownerId: $ownerId, title: $title }) {
@@ -243,34 +354,50 @@ export class GitHubProjectsProvider {
243
354
  title
244
355
  }
245
356
  }
246
- }`, { ownerId, title }, this.cwd);
357
+ }`, { ownerId: owner.id, title }, this.cwd);
247
358
  const project = createData.createProjectV2.projectV2;
248
359
  this.cachedProjectId = project.id;
249
- // Create the Status field with the five lifecycle columns
250
- const createFieldData = graphql(`mutation CreateStatusField($projectId: ID!) {
251
- createProjectV2Field(input: {
252
- projectId: $projectId,
253
- dataType: SINGLE_SELECT,
254
- name: "Status",
255
- singleSelectOptions: [
256
- { name: "Draft", color: GRAY, description: "" },
257
- { name: "Ready", color: BLUE, description: "" },
258
- { name: "In Progress", color: YELLOW, description: "" },
259
- { name: "Review", color: ORANGE, description: "" },
260
- { name: "Done", color: GREEN, description: "" }
261
- ]
262
- }) {
263
- projectV2Field {
264
- ... on ProjectV2SingleSelectField {
265
- id
266
- options { id name }
360
+ this.linkProjectToRepository(project.id);
361
+ // New projects may already have a default Status field. Reuse/update it.
362
+ try {
363
+ const statusField = this.fetchStatusField(project.id);
364
+ this.cachedFieldId = statusField.fieldId;
365
+ this.cachedOptionIds = statusField.optionIds;
366
+ this.ensureStatusColumns(project.id);
367
+ const refreshed = this.fetchStatusField(project.id);
368
+ this.cachedFieldId = refreshed.fieldId;
369
+ this.cachedOptionIds = refreshed.optionIds;
370
+ }
371
+ catch (err) {
372
+ const message = err instanceof Error ? err.message : String(err);
373
+ if (!message.includes("Status field not found")) {
374
+ throw err;
375
+ }
376
+ const createFieldData = graphql(`mutation CreateStatusField($projectId: ID!) {
377
+ createProjectV2Field(input: {
378
+ projectId: $projectId,
379
+ dataType: SINGLE_SELECT,
380
+ name: "Status",
381
+ singleSelectOptions: [
382
+ { name: "Draft", color: GRAY, description: "" },
383
+ { name: "Ready", color: BLUE, description: "" },
384
+ { name: "In Progress", color: YELLOW, description: "" },
385
+ { name: "Review", color: ORANGE, description: "" },
386
+ { name: "Done", color: GREEN, description: "" }
387
+ ]
388
+ }) {
389
+ projectV2Field {
390
+ ... on ProjectV2SingleSelectField {
391
+ id
392
+ options { id name }
393
+ }
267
394
  }
268
395
  }
396
+ }`, { projectId: project.id }, this.cwd);
397
+ const field = createFieldData.createProjectV2Field.projectV2Field;
398
+ this.cachedFieldId = field.id;
399
+ this.cachedOptionIds = new Map(field.options.map((o) => [o.name, o.id]));
269
400
  }
270
- }`, { projectId: project.id }, this.cwd);
271
- const field = createFieldData.createProjectV2Field.projectV2Field;
272
- this.cachedFieldId = field.id;
273
- this.cachedOptionIds = new Map(field.options.map((o) => [o.name, o.id]));
274
401
  return { id: project.id, number: project.number, title: project.title, url: project.url };
275
402
  }
276
403
  async getBoard() {
@@ -279,8 +406,20 @@ export class GitHubProjectsProvider {
279
406
  return null;
280
407
  }
281
408
  try {
282
- const login = getViewerLogin(this.cwd);
283
- const node = this.fetchProjectNode(login, projectNumber);
409
+ const ownerLogins = new Set([this.getRepoOwnerLogin()]);
410
+ try {
411
+ ownerLogins.add(getViewerLogin(this.cwd));
412
+ }
413
+ catch {
414
+ // ignore fallback if viewer lookup fails
415
+ }
416
+ let node = null;
417
+ for (const login of ownerLogins) {
418
+ node = this.fetchProjectNode(login, projectNumber);
419
+ if (node) {
420
+ break;
421
+ }
422
+ }
284
423
  if (!node) {
285
424
  return null;
286
425
  }
@@ -1 +1 @@
1
- {"version":3,"file":"github-projects.js","sourceRoot":"","sources":["../../../src/board/providers/github-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,aAAa,GAQd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAkH1E,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,OAAO,sBAAsB;IAChB,MAAM,CAAuB;IAC7B,GAAG,CAAS;IAErB,eAAe,GAAkB,IAAI,CAAC;IACtC,aAAa,GAAkB,IAAI,CAAC;IACpC,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEzD,YAAY,MAA4B,EAAE,GAAW;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,UAAU;IACV,4EAA4E;IAEpE,OAAO;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,kBAAkB;QAK9B,IACE,IAAI,CAAC,eAAe,KAAK,IAAI;YAC7B,IAAI,CAAC,aAAa,KAAK,IAAI;YAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,EAC7B,CAAC;YACD,OAAO;gBACL,SAAS,EAAE,IAAI,CAAC,eAAe;gBAC/B,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,SAAS,EAAE,IAAI,CAAC,eAAe;aAChC,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,mBAAmB,aAAa,yBAAyB,KAAK,IAAI,CACnE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,EAAE,CAAC;QAEtC,qBAAqB;QACrB,MAAM,SAAS,GAAG,OAAO,CACvB;;;;;;;;;;;;;;QAcE,EACF,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,EAC7B,IAAI,CAAC,GAAG,CACT,CAAC;QAEF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,sCAAsC,aAAa,IAAI;gBACrD,+CAA+C,CAClD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzE,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,eAAe;YAC/B,OAAO,EAAE,IAAI,CAAC,aAAa;YAC3B,SAAS,EAAE,IAAI,CAAC,eAAe;SAChC,CAAC;IACJ,CAAC;IAED,oDAAoD;IAC5C,gBAAgB,CACtB,KAAa,EACb,aAAqB;QAErB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CACtB;;;;;;;;;UASE,EACF,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAChC,IAAI,CAAC,GAAG,CACT,CAAC;YAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC7B,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CACrB;;;;;;;;;UASE,EACF,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAChC,IAAI,CAAC,GAAG,CACT,CAAC;YAEF,IAAI,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC;gBACpC,OAAO,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,SAAS,CACf,IAAyD;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qDAAqD;QACrD,IAAI,MAAM,GAA2B,IAAI,CAAC;QAC1C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,EAAE,CAAC,IAAuB,CAAC;gBAC7C,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtC,MAAM,GAAG,SAAS,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;YACzB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;YACtB,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;YACtD,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;SAC9D,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,gCAAgC;IAChC,4EAA4E;IAE5E;;;OAGG;IACK,mBAAmB,CAAC,KAAa;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,OAAO,CAClB;;;;;;UAME,EACF,EAAE,EACF,IAAI,CAAC,GAAG,CACT,CAAC;YACF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,SAAiB;QAC3C,MAAM,SAAS,GAAG,OAAO,CACvB;;;;;;;;;;;QAWE,EACF,EAAE,SAAS,EAAE,EACb,IAAI,CAAC,GAAG,CACT,CAAC;QAEF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAQjC,MAAM,QAAQ,GAA2B;YACvC,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM;YACb,aAAa,EAAE,QAAQ;YACvB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,OAAO;SACd,CAAC;QACF,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI;YACJ,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;YACrB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;QACJ,OAAO,CACL;;;;;;;;;;;;;;;;;;QAkBE,EACF,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,EACjC,IAAI,CAAC,GAAG,CACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,uDAAuD;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;QAChG,CAAC;QAED,6CAA6C;QAC7C,MAAM,UAAU,GAAG,OAAO,CACxB,+BAA+B,EAC/B,EAAE,EACF,IAAI,CAAC,GAAG,CACT,CAAC;QACF,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAErC,qBAAqB;QACrB,MAAM,UAAU,GAAG,OAAO,CACxB;;;;;;;;;QASE,EACF,EAAE,OAAO,EAAE,KAAK,EAAE,EAClB,IAAI,CAAC,GAAG,CACT,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC;QAElC,0DAA0D;QAC1D,MAAM,eAAe,GAAG,OAAO,CAC7B;;;;;;;;;;;;;;;;;;;;QAoBE,EACF,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EACzB,IAAI,CAAC,GAAG,CACT,CAAC;QAEF,MAAM,KAAK,GAAG,eAAe,CAAC,oBAAoB,CAAC,cAAc,CAAC;QAClE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAChD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO;YAClC,IAAI;SACL,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAwB;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1E,2FAA2F;QAC3F,MAAM,SAAS,GAAG;YAChB,OAAO;YACP,QAAQ;YACR,SAAS;YACT,KAAK,CAAC,KAAK;YACX,QAAQ;YACR,KAAK,CAAC,IAAI;YACV,QAAQ;YACR,IAAI;SACL,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE;YAC7C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,4DAA4D;QAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,YAAY,CAC/B,IAAI,EACJ,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,QAAQ,WAAW,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAC/E,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACtE,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QAE3E,qCAAqC;QACrC,MAAM,OAAO,GAAG,OAAO,CACrB;;;;;;QAME,EACF,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,EACtC,IAAI,CAAC,GAAG,CACT,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC;QAC7C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE7C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CACL;;;;;;;;;;;;;;;;UAgBE,EACF,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EACxC,IAAI,CAAC,GAAG,CACT,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAChD,CAAC;QAED,OAAO;YACL,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;YAC1B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,WAAmB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE5B,IAAI,QAAmB,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CACzB,IAAI,EACJ;gBACE,OAAO;gBACP,MAAM;gBACN,MAAM,CAAC,WAAW,CAAC;gBACnB,QAAQ;gBACR,IAAI;gBACJ,QAAQ;gBACR,2CAA2C;aAC5C,EACD,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACtE,CAAC;YACF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAc,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mEAAmE;QACnE,IAAI,MAAM,GAA2B,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;YAC9D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;QAED,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,MAAM;YACN,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEtD,MAAM,IAAI,GAAG,OAAO,CAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiCE,EACF,EAAE,SAAS,EAAE,EACb,IAAI,CAAC,GAAG,CACT,CAAC;QAEF,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CACb,WAAmB,EACnB,YAA6B;QAE7B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1E,oEAAoE;QACpE,MAAM,IAAI,GAAG,OAAO,CAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2BE,EACF,EAAE,SAAS,EAAE,EACb,IAAI,CAAC,GAAG,CACT,CAAC;QAEF,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,CACzC,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,UAAU,WAAW,kCAAkC,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,WAAW,YAAY,mCAAmC,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,CACL;;;;;;;;;;;;;;;;QAgBE,EACF,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrD,IAAI,CAAC,GAAG,CACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,YAAY,CACV,IAAI,EACJ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EACvD,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,IAAY;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,YAAY,CACV,IAAI,EACJ,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EACzE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"github-projects.js","sourceRoot":"","sources":["../../../src/board/providers/github-projects.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import { dirname, join } from 'path';
6
6
  import { initCommand } from './commands/init.js';
7
7
  import { runCommand } from './commands/run.js';
8
8
  import { reviewCommand } from './commands/review.js';
9
+ import { qaCommand } from './commands/qa.js';
9
10
  import { installCommand } from './commands/install.js';
10
11
  import { uninstallCommand } from './commands/uninstall.js';
11
12
  import { statusCommand } from './commands/status.js';
@@ -40,6 +41,8 @@ initCommand(program);
40
41
  runCommand(program);
41
42
  // Register review command
42
43
  reviewCommand(program);
44
+ // Register qa command
45
+ qaCommand(program);
43
46
  // Register Phase 5 commands
44
47
  installCommand(program);
45
48
  uninstallCommand(program);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/commands/board.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoQnD"}
1
+ {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/commands/board.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqGpC;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2QnD"}
@@ -2,6 +2,7 @@
2
2
  * Board command group — manage the PRD tracking board
3
3
  */
4
4
  import * as fs from "fs";
5
+ import * as path from "path";
5
6
  import * as readline from "readline";
6
7
  import { loadConfig } from "../config.js";
7
8
  import { saveConfig } from "../utils/config-writer.js";
@@ -30,6 +31,37 @@ function getProvider(config, cwd) {
30
31
  const bp = config.boardProvider ?? { enabled: true, provider: "github" };
31
32
  return createBoardProvider(bp, cwd);
32
33
  }
34
+ function defaultBoardTitle(cwd) {
35
+ return `${path.basename(cwd)} Night Watch`;
36
+ }
37
+ /**
38
+ * Ensure the project has a configured board number.
39
+ * If missing, auto-create a board and persist projectNumber to config.
40
+ */
41
+ async function ensureBoardConfigured(config, cwd, provider, options) {
42
+ if (config.boardProvider?.projectNumber) {
43
+ return;
44
+ }
45
+ const title = defaultBoardTitle(cwd);
46
+ if (!options?.quiet) {
47
+ info(`No board configured. Creating "${title}"…`);
48
+ }
49
+ const boardInfo = await provider.setupBoard(title);
50
+ const result = saveConfig(cwd, {
51
+ boardProvider: {
52
+ ...config.boardProvider,
53
+ enabled: config.boardProvider?.enabled ?? true,
54
+ provider: config.boardProvider?.provider ?? "github",
55
+ projectNumber: boardInfo.number,
56
+ },
57
+ });
58
+ if (!result.success) {
59
+ throw new Error(`Failed to save config: ${result.error}`);
60
+ }
61
+ if (!options?.quiet) {
62
+ success(`Board configured (#${boardInfo.number})`);
63
+ }
64
+ }
33
65
  /**
34
66
  * Prompt the user for a yes/no confirmation via readline.
35
67
  * Returns true when the user confirms.
@@ -57,7 +89,8 @@ export function boardCommand(program) {
57
89
  board
58
90
  .command("setup")
59
91
  .description("Create the Night Watch project board and persist its number to config")
60
- .action(async () => run(async () => {
92
+ .option("--title <title>", "Board title (default: <repo-folder> Night Watch)")
93
+ .action(async (options) => run(async () => {
61
94
  const cwd = process.cwd();
62
95
  const config = loadConfig(cwd);
63
96
  const provider = getProvider(config, cwd);
@@ -70,16 +103,14 @@ export function boardCommand(program) {
70
103
  return;
71
104
  }
72
105
  }
73
- info("Creating board…");
74
- const boardInfo = await provider.setupBoard("Night Watch");
75
- // Extract the project number from the URL.
76
- const urlMatch = boardInfo.url.match(/\/projects\/(\d+)/);
77
- const projectNumber = urlMatch ? parseInt(urlMatch[1], 10) : undefined;
106
+ const boardTitle = options.title?.trim() || defaultBoardTitle(cwd);
107
+ info(`Creating board "${boardTitle}"…`);
108
+ const boardInfo = await provider.setupBoard(boardTitle);
78
109
  // Persist the project number
79
110
  const result = saveConfig(cwd, {
80
111
  boardProvider: {
81
112
  ...config.boardProvider,
82
- ...(projectNumber !== undefined ? { projectNumber } : {}),
113
+ projectNumber: boardInfo.number,
83
114
  },
84
115
  });
85
116
  if (!result.success) {
@@ -109,6 +140,7 @@ export function boardCommand(program) {
109
140
  const cwd = process.cwd();
110
141
  const config = loadConfig(cwd);
111
142
  const provider = getProvider(config, cwd);
143
+ await ensureBoardConfigured(config, cwd, provider);
112
144
  // Validate column name
113
145
  if (!BOARD_COLUMNS.includes(options.column)) {
114
146
  console.error(`Invalid column "${options.column}". Valid columns: ${BOARD_COLUMNS.join(", ")}`);
@@ -143,6 +175,7 @@ export function boardCommand(program) {
143
175
  const cwd = process.cwd();
144
176
  const config = loadConfig(cwd);
145
177
  const provider = getProvider(config, cwd);
178
+ await ensureBoardConfigured(config, cwd, provider, { quiet: options.json });
146
179
  const issues = await provider.getAllIssues();
147
180
  if (options.json) {
148
181
  console.log(JSON.stringify(issues, null, 2));
@@ -187,8 +220,12 @@ export function boardCommand(program) {
187
220
  const cwd = process.cwd();
188
221
  const config = loadConfig(cwd);
189
222
  const provider = getProvider(config, cwd);
223
+ await ensureBoardConfigured(config, cwd, provider, { quiet: options.json });
190
224
  const issues = await provider.getIssuesByColumn(options.column);
191
225
  if (issues.length === 0) {
226
+ if (options.json) {
227
+ return;
228
+ }
192
229
  console.log(`No issues found in ${options.column}`);
193
230
  return;
194
231
  }
@@ -216,6 +253,7 @@ export function boardCommand(program) {
216
253
  const cwd = process.cwd();
217
254
  const config = loadConfig(cwd);
218
255
  const provider = getProvider(config, cwd);
256
+ await ensureBoardConfigured(config, cwd, provider);
219
257
  await provider.moveIssue(parseInt(number, 10), options.column);
220
258
  success(`Moved issue #${number} to ${options.column}`);
221
259
  }));
@@ -231,6 +269,7 @@ export function boardCommand(program) {
231
269
  const cwd = process.cwd();
232
270
  const config = loadConfig(cwd);
233
271
  const provider = getProvider(config, cwd);
272
+ await ensureBoardConfigured(config, cwd, provider);
234
273
  await provider.commentOnIssue(parseInt(number, 10), options.body);
235
274
  success(`Comment added to issue #${number}`);
236
275
  }));
@@ -245,6 +284,7 @@ export function boardCommand(program) {
245
284
  const cwd = process.cwd();
246
285
  const config = loadConfig(cwd);
247
286
  const provider = getProvider(config, cwd);
287
+ await ensureBoardConfigured(config, cwd, provider);
248
288
  const issueNumber = parseInt(number, 10);
249
289
  await provider.closeIssue(issueNumber);
250
290
  await provider.moveIssue(issueNumber, "Done");