@sascha384/tic 2.0.1 → 3.0.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.
Files changed (68) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +32 -17
  3. package/dist/app.js +7 -2
  4. package/dist/app.js.map +1 -1
  5. package/dist/auth/ado.d.ts +31 -0
  6. package/dist/auth/ado.js +136 -0
  7. package/dist/auth/ado.js.map +1 -0
  8. package/dist/auth/github.d.ts +27 -0
  9. package/dist/auth/github.js +96 -0
  10. package/dist/auth/github.js.map +1 -0
  11. package/dist/auth/index.d.ts +5 -0
  12. package/dist/auth/index.js +4 -0
  13. package/dist/auth/index.js.map +1 -0
  14. package/dist/auth/keychain.d.ts +14 -0
  15. package/dist/auth/keychain.js +36 -0
  16. package/dist/auth/keychain.js.map +1 -0
  17. package/dist/backends/ado/api.d.ts +19 -0
  18. package/dist/backends/ado/api.js +110 -0
  19. package/dist/backends/ado/api.js.map +1 -0
  20. package/dist/backends/ado/index.d.ts +6 -12
  21. package/dist/backends/ado/index.js +201 -349
  22. package/dist/backends/ado/index.js.map +1 -1
  23. package/dist/backends/factory.d.ts +5 -2
  24. package/dist/backends/factory.js +5 -5
  25. package/dist/backends/factory.js.map +1 -1
  26. package/dist/backends/github/api.d.ts +9 -0
  27. package/dist/backends/github/api.js +117 -0
  28. package/dist/backends/github/api.js.map +1 -0
  29. package/dist/backends/github/index.d.ts +9 -5
  30. package/dist/backends/github/index.js +119 -81
  31. package/dist/backends/github/index.js.map +1 -1
  32. package/dist/backends/github/mappers.d.ts +1 -0
  33. package/dist/backends/github/mappers.js.map +1 -1
  34. package/dist/backends/shared/api-client.d.ts +16 -0
  35. package/dist/backends/shared/api-client.js +73 -0
  36. package/dist/backends/shared/api-client.js.map +1 -0
  37. package/dist/cli/commands/auth.d.ts +19 -0
  38. package/dist/cli/commands/auth.js +82 -0
  39. package/dist/cli/commands/auth.js.map +1 -0
  40. package/dist/cli/commands/mcp.js +49 -26
  41. package/dist/cli/commands/mcp.js.map +1 -1
  42. package/dist/cli/index.js +59 -0
  43. package/dist/cli/index.js.map +1 -1
  44. package/dist/components/AuthPrompt.d.ts +1 -0
  45. package/dist/components/AuthPrompt.js +37 -0
  46. package/dist/components/AuthPrompt.js.map +1 -0
  47. package/dist/components/AutocompleteInput.d.ts +2 -1
  48. package/dist/components/AutocompleteInput.js +5 -1
  49. package/dist/components/AutocompleteInput.js.map +1 -1
  50. package/dist/components/Header.js +10 -2
  51. package/dist/components/Header.js.map +1 -1
  52. package/dist/components/MultiAutocompleteInput.d.ts +2 -1
  53. package/dist/components/MultiAutocompleteInput.js +5 -1
  54. package/dist/components/MultiAutocompleteInput.js.map +1 -1
  55. package/dist/components/StatusScreen.js +2 -1
  56. package/dist/components/StatusScreen.js.map +1 -1
  57. package/dist/components/WorkItemForm.js +12 -0
  58. package/dist/components/WorkItemForm.js.map +1 -1
  59. package/dist/stores/backendDataStore.d.ts +15 -0
  60. package/dist/stores/backendDataStore.js +91 -4
  61. package/dist/stores/backendDataStore.js.map +1 -1
  62. package/package.json +3 -1
  63. package/dist/backends/ado/az.d.ts +0 -28
  64. package/dist/backends/ado/az.js +0 -162
  65. package/dist/backends/ado/az.js.map +0 -1
  66. package/dist/backends/github/gh.d.ts +0 -9
  67. package/dist/backends/github/gh.js +0 -95
  68. package/dist/backends/github/gh.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/ado/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/ado/index.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,15 @@ import type { SyncQueueAdapter } from '../sync/types.js';
3
3
  import { SyncManager } from '../sync/SyncManager.js';
4
4
  export declare const VALID_BACKENDS: readonly ["none", "filesystem", "github", "gitlab", "azure", "jira"];
5
5
  export type BackendType = (typeof VALID_BACKENDS)[number];
6
+ export interface RemoteBackendOptions {
7
+ skipAuth?: boolean;
8
+ }
6
9
  export declare function detectBackend(root: string): BackendType;
7
10
  export declare function createBackend(root: string): Promise<Backend>;
8
- export declare function createRemoteBackend(root: string, backendType: string): Promise<Backend | null>;
11
+ export declare function createRemoteBackend(root: string, backendType: string, options?: RemoteBackendOptions): Promise<Backend | null>;
9
12
  export interface BackendSetup {
10
13
  backend: Backend;
11
14
  syncManager: SyncManager | null;
12
15
  queue: SyncQueueAdapter | null;
13
16
  }
14
- export declare function createBackendWithSync(root: string): Promise<BackendSetup>;
17
+ export declare function createBackendWithSync(root: string, options?: RemoteBackendOptions): Promise<BackendSetup>;
@@ -40,7 +40,7 @@ export async function createBackend(root) {
40
40
  }
41
41
  return primary;
42
42
  }
43
- export async function createRemoteBackend(root, backendType) {
43
+ export async function createRemoteBackend(root, backendType, options) {
44
44
  switch (backendType) {
45
45
  case 'none':
46
46
  return null;
@@ -50,7 +50,7 @@ export async function createRemoteBackend(root, backendType) {
50
50
  }
51
51
  case 'github': {
52
52
  const { GitHubBackend } = await import('./github/index.js');
53
- return new GitHubBackend(root);
53
+ return GitHubBackend.create(root, options);
54
54
  }
55
55
  case 'gitlab': {
56
56
  const { GitLabBackend } = await import('./gitlab/index.js');
@@ -58,7 +58,7 @@ export async function createRemoteBackend(root, backendType) {
58
58
  }
59
59
  case 'azure': {
60
60
  const { AzureDevOpsBackend } = await import('./ado/index.js');
61
- return new AzureDevOpsBackend(root);
61
+ return AzureDevOpsBackend.create(root, options);
62
62
  }
63
63
  case 'jira': {
64
64
  const { JiraBackend } = await import('./jira/index.js');
@@ -68,14 +68,14 @@ export async function createRemoteBackend(root, backendType) {
68
68
  return null;
69
69
  }
70
70
  }
71
- export async function createBackendWithSync(root) {
71
+ export async function createBackendWithSync(root, options) {
72
72
  const primary = Storage.create(root);
73
73
  configStore.getState().setDatabase(primary.getDatabase());
74
74
  if (!configStore.getState().loaded) {
75
75
  await configStore.getState().init(root);
76
76
  }
77
77
  const config = configStore.getState().config;
78
- const remote = await createRemoteBackend(root, config.backend ?? 'none');
78
+ const remote = await createRemoteBackend(root, config.backend ?? 'none', options);
79
79
  let syncManager = null;
80
80
  let queue = null;
81
81
  if (remote) {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/backends/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/backends/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BaseApiClient } from '../shared/api-client.js';
2
+ export declare class GitHubApiClient extends BaseApiClient {
3
+ constructor(token: string);
4
+ protected fetch<T>(method: string, path: string, body?: unknown): Promise<T>;
5
+ rest<T>(method: string, path: string, body?: unknown): Promise<T>;
6
+ graphql<T>(query: string, variables?: Record<string, unknown>): Promise<T>;
7
+ private graphqlFetch;
8
+ paginate<T>(path: string): AsyncGenerator<T[]>;
9
+ }
@@ -0,0 +1,117 @@
1
+ import { AuthError, RateLimitError, BaseApiClient, } from '../shared/api-client.js';
2
+ const GITHUB_API_VERSION = '2022-11-28';
3
+ export class GitHubApiClient extends BaseApiClient {
4
+ constructor(token) {
5
+ super(token, 'https://api.github.com');
6
+ }
7
+ async fetch(method, path, body) {
8
+ const url = this.baseUrl + path;
9
+ const headers = {
10
+ Authorization: `Bearer ${this.token}`,
11
+ Accept: 'application/json',
12
+ 'X-GitHub-Api-Version': GITHUB_API_VERSION,
13
+ };
14
+ const init = { method, headers };
15
+ if (body !== undefined && ['POST', 'PATCH', 'PUT'].includes(method)) {
16
+ headers['Content-Type'] = 'application/json';
17
+ init.body = JSON.stringify(body);
18
+ }
19
+ const response = await globalThis.fetch(url, init);
20
+ this.checkRateLimit(response.headers);
21
+ if (response.status === 401) {
22
+ throw new AuthError();
23
+ }
24
+ if (response.status === 403) {
25
+ const remaining = response.headers.get('X-RateLimit-Remaining');
26
+ const reset = response.headers.get('X-RateLimit-Reset');
27
+ if (remaining === '0' && reset) {
28
+ throw new RateLimitError(new Date(Number(reset) * 1000));
29
+ }
30
+ }
31
+ if (!response.ok) {
32
+ const text = await response.text();
33
+ throw new Error(`HTTP ${response.status}: ${text}`);
34
+ }
35
+ return (await response.json());
36
+ }
37
+ async rest(method, path, body) {
38
+ return this.retry(() => this.fetch(method, path, body));
39
+ }
40
+ async graphql(query, variables) {
41
+ return this.retry(() => this.graphqlFetch(query, variables));
42
+ }
43
+ async graphqlFetch(query, variables) {
44
+ const url = this.baseUrl + '/graphql';
45
+ const headers = {
46
+ Authorization: `Bearer ${this.token}`,
47
+ 'Content-Type': 'application/json',
48
+ 'X-GitHub-Api-Version': GITHUB_API_VERSION,
49
+ 'GraphQL-Features': 'sub_issues',
50
+ };
51
+ const response = await globalThis.fetch(url, {
52
+ method: 'POST',
53
+ headers,
54
+ body: JSON.stringify({ query, variables }),
55
+ });
56
+ this.checkRateLimit(response.headers);
57
+ if (response.status === 401) {
58
+ throw new AuthError();
59
+ }
60
+ if (response.status === 403) {
61
+ const remaining = response.headers.get('X-RateLimit-Remaining');
62
+ const reset = response.headers.get('X-RateLimit-Reset');
63
+ if (remaining === '0' && reset) {
64
+ throw new RateLimitError(new Date(Number(reset) * 1000));
65
+ }
66
+ }
67
+ if (!response.ok) {
68
+ const text = await response.text();
69
+ throw new Error(`HTTP ${response.status}: ${text}`);
70
+ }
71
+ const json = (await response.json());
72
+ const firstError = json.errors?.[0];
73
+ if (firstError) {
74
+ throw new Error(`GraphQL error: ${firstError.message}`);
75
+ }
76
+ return json.data;
77
+ }
78
+ async *paginate(path) {
79
+ let url = this.baseUrl + path;
80
+ while (url) {
81
+ const headers = {
82
+ Authorization: `Bearer ${this.token}`,
83
+ Accept: 'application/json',
84
+ 'X-GitHub-Api-Version': GITHUB_API_VERSION,
85
+ };
86
+ const response = await globalThis.fetch(url, {
87
+ method: 'GET',
88
+ headers,
89
+ });
90
+ this.checkRateLimit(response.headers);
91
+ if (response.status === 401) {
92
+ throw new AuthError();
93
+ }
94
+ if (!response.ok) {
95
+ const text = await response.text();
96
+ throw new Error(`HTTP ${response.status}: ${text}`);
97
+ }
98
+ const data = (await response.json());
99
+ yield data;
100
+ const linkHeader = response.headers.get('Link');
101
+ url = parseLinkNext(linkHeader);
102
+ }
103
+ }
104
+ }
105
+ function parseLinkNext(linkHeader) {
106
+ if (!linkHeader)
107
+ return null;
108
+ const parts = linkHeader.split(',');
109
+ for (const part of parts) {
110
+ const match = part.match(/<([^>]+)>;\s*rel="next"/);
111
+ if (match?.[1]) {
112
+ return match[1];
113
+ }
114
+ }
115
+ return null;
116
+ }
117
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/backends/github/api.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
1
  import { BaseBackend } from '../types.js';
2
2
  import type { BackendCapabilities } from '../types.js';
3
3
  import type { WorkItem, NewWorkItem, NewComment, Comment, Template } from '../../types.js';
4
+ export interface GitHubBackendOptions {
5
+ skipAuth?: boolean;
6
+ }
4
7
  export declare class GitHubBackend extends BaseBackend {
5
- private cwd;
6
- private ownerRepo;
8
+ private api;
9
+ private owner;
10
+ private repo;
7
11
  private cachedMilestones;
8
- constructor(cwd: string);
12
+ private constructor();
13
+ static create(cwd: string, options?: GitHubBackendOptions): Promise<GitHubBackend>;
14
+ private static detectOwnerRepo;
9
15
  protected onCacheInvalidate(): void;
10
16
  getCapabilities(): BackendCapabilities;
11
17
  getStatuses(): Promise<string[]>;
@@ -32,8 +38,6 @@ export declare class GitHubBackend extends BaseBackend {
32
38
  private getIssueNodeId;
33
39
  private addSubIssue;
34
40
  private removeSubIssue;
35
- private getOwnerRepo;
36
41
  private fetchMilestones;
37
42
  private fetchOpenMilestones;
38
- private getRepoNwo;
39
43
  }
@@ -1,5 +1,9 @@
1
+ import { execSync } from 'node:child_process';
2
+ import open from 'open';
1
3
  import { BaseBackend, UnsupportedOperationError } from '../types.js';
2
- import { gh, ghExec, ghGraphQL, ghExecSync, ghSync } from './gh.js';
4
+ import { getGitHubToken, authenticateGitHub } from '../../auth/github.js';
5
+ import { AuthError } from '../shared/api-client.js';
6
+ import { GitHubApiClient } from './api.js';
3
7
  import { mapIssueToWorkItem } from './mappers.js';
4
8
  const LIST_ISSUES_QUERY = `
5
9
  query($owner: String!, $repo: String!, $cursor: String) {
@@ -57,14 +61,52 @@ const REMOVE_SUB_ISSUE_MUTATION = `
57
61
  }
58
62
  }
59
63
  `;
64
+ const DELETE_ISSUE_MUTATION = `
65
+ mutation($issueId: ID!) {
66
+ deleteIssue(input: { issueId: $issueId }) {
67
+ repository { name }
68
+ }
69
+ }
70
+ `;
60
71
  export class GitHubBackend extends BaseBackend {
61
- cwd;
62
- ownerRepo = null;
72
+ api;
73
+ owner;
74
+ repo;
63
75
  cachedMilestones = null;
64
- constructor(cwd) {
76
+ constructor(api, owner, repo) {
65
77
  super(60_000);
66
- this.cwd = cwd;
67
- ghExecSync(['auth', 'status'], cwd);
78
+ this.api = api;
79
+ this.owner = owner;
80
+ this.repo = repo;
81
+ }
82
+ static async create(cwd, options) {
83
+ const { owner, repo } = GitHubBackend.detectOwnerRepo(cwd);
84
+ let token = getGitHubToken();
85
+ if (!token) {
86
+ if (options?.skipAuth) {
87
+ throw new AuthError('GitHub authentication required. Run "tic auth login github" to authenticate.');
88
+ }
89
+ token = await authenticateGitHub({
90
+ onCode: (code, url) => {
91
+ console.log(`\nGitHub authentication required.`);
92
+ console.log(`Visit ${url} and enter code: ${code}\n`);
93
+ },
94
+ });
95
+ }
96
+ const api = new GitHubApiClient(token);
97
+ return new GitHubBackend(api, owner, repo);
98
+ }
99
+ static detectOwnerRepo(cwd) {
100
+ const output = execSync('git remote -v', {
101
+ cwd,
102
+ encoding: 'utf-8',
103
+ stdio: ['pipe', 'pipe', 'pipe'],
104
+ });
105
+ const match = output.match(/github\.com[:/]([^/\s]+)\/([^/\s.]+?)(?:\.git)?(?:\s|$)/);
106
+ if (!match) {
107
+ throw new Error('Could not detect GitHub owner/repo from git remotes');
108
+ }
109
+ return { owner: match[1], repo: match[2] };
68
110
  }
69
111
  onCacheInvalidate() {
70
112
  this.cachedMilestones = null;
@@ -107,8 +149,10 @@ export class GitHubBackend extends BaseBackend {
107
149
  }
108
150
  async getAssignees() {
109
151
  try {
110
- const { owner, repo } = await this.getOwnerRepo();
111
- const collaborators = await gh(['api', `repos/${owner}/${repo}/collaborators`, '--jq', '.'], this.cwd);
152
+ const collaborators = [];
153
+ for await (const page of this.api.paginate(`/repos/${this.owner}/${this.repo}/collaborators`)) {
154
+ collaborators.push(...page);
155
+ }
112
156
  return collaborators.map((c) => c.login);
113
157
  }
114
158
  catch {
@@ -133,11 +177,14 @@ export class GitHubBackend extends BaseBackend {
133
177
  // No-op — current iteration is always first open milestone
134
178
  }
135
179
  async listWorkItems(iteration) {
136
- const { owner, repo } = await this.getOwnerRepo();
137
180
  const allIssues = [];
138
181
  let cursor = null;
139
182
  do {
140
- const data = await ghGraphQL(LIST_ISSUES_QUERY, { owner, repo, cursor }, this.cwd);
183
+ const data = await this.api.graphql(LIST_ISSUES_QUERY, {
184
+ owner: this.owner,
185
+ repo: this.repo,
186
+ cursor,
187
+ });
141
188
  allIssues.push(...data.repository.issues.nodes);
142
189
  cursor = data.repository.issues.pageInfo.hasNextPage
143
190
  ? data.repository.issues.pageInfo.endCursor
@@ -150,14 +197,17 @@ export class GitHubBackend extends BaseBackend {
150
197
  return items;
151
198
  }
152
199
  async getWorkItem(id) {
153
- const { owner, repo } = await this.getOwnerRepo();
154
- const data = await ghGraphQL(GET_ISSUE_QUERY, { owner, repo, number: Number(id) }, this.cwd);
200
+ const data = await this.api.graphql(GET_ISSUE_QUERY, {
201
+ owner: this.owner,
202
+ repo: this.repo,
203
+ number: Number(id),
204
+ });
155
205
  return mapIssueToWorkItem(data.repository.issue);
156
206
  }
157
207
  async ensureLabels(labels) {
158
208
  for (const label of labels) {
159
209
  try {
160
- await ghExec(['label', 'create', label], this.cwd);
210
+ await this.api.rest('POST', `/repos/${this.owner}/${this.repo}/labels`, { name: label });
161
211
  }
162
212
  catch {
163
213
  // Label already exists — ignore
@@ -169,37 +219,32 @@ export class GitHubBackend extends BaseBackend {
169
219
  if (data.labels.length > 0) {
170
220
  await this.ensureLabels(data.labels);
171
221
  }
172
- const args = [
173
- 'issue',
174
- 'create',
175
- '--title',
176
- data.title,
177
- '--body',
178
- data.description || '',
179
- ];
222
+ const issueBody = {
223
+ title: data.title,
224
+ body: data.description || '',
225
+ };
180
226
  if (data.assignee) {
181
- args.push('--assignee', data.assignee);
182
- }
183
- if (data.iteration) {
184
- args.push('--milestone', data.iteration);
227
+ issueBody.assignees = [data.assignee];
185
228
  }
186
- for (const label of data.labels) {
187
- args.push('--label', label);
229
+ if (data.labels.length > 0) {
230
+ issueBody.labels = data.labels;
188
231
  }
189
- const output = await ghExec(args, this.cwd);
190
- // gh issue create prints the URL: https://github.com/owner/repo/issues/123
191
- const match = output.match(/\/issues\/(\d+)/);
192
- if (!match) {
193
- throw new Error('Failed to parse issue number from gh output');
232
+ if (data.iteration) {
233
+ const milestones = await this.fetchMilestones();
234
+ const milestone = milestones.find((m) => m.title === data.iteration);
235
+ if (milestone) {
236
+ issueBody.milestone = milestone.number;
237
+ }
194
238
  }
195
- const id = match[1];
239
+ const result = await this.api.rest('POST', `/repos/${this.owner}/${this.repo}/issues`, issueBody);
240
+ const id = String(result.number);
196
241
  if (data.parent) {
197
242
  try {
198
243
  await this.addSubIssue(data.parent, id);
199
244
  }
200
245
  catch (err) {
201
246
  try {
202
- await ghExec(['issue', 'delete', id, '--yes'], this.cwd);
247
+ await this.deleteWorkItem(id);
203
248
  }
204
249
  catch {
205
250
  // Best-effort cleanup
@@ -229,55 +274,58 @@ export class GitHubBackend extends BaseBackend {
229
274
  throw new Error(`Failed to update parent relationship for issue #${id}: ${err instanceof Error ? err.message : String(err)}`);
230
275
  }
231
276
  }
232
- // Handle status changes via close/reopen
233
- if (data.status === 'closed') {
234
- await ghExec(['issue', 'close', id], this.cwd);
277
+ // Build PATCH body for REST API
278
+ const patchBody = {};
279
+ let hasPatch = false;
280
+ if (data.status !== undefined) {
281
+ patchBody.state = data.status === 'closed' ? 'closed' : 'open';
282
+ hasPatch = true;
235
283
  }
236
- else if (data.status === 'open') {
237
- await ghExec(['issue', 'reopen', id], this.cwd);
238
- }
239
- // Handle field edits
240
- const editArgs = ['issue', 'edit', id];
241
- let hasEdits = false;
242
284
  if (data.title !== undefined) {
243
- editArgs.push('--title', data.title);
244
- hasEdits = true;
285
+ patchBody.title = data.title;
286
+ hasPatch = true;
245
287
  }
246
288
  if (data.description !== undefined) {
247
- editArgs.push('--body', data.description);
248
- hasEdits = true;
289
+ patchBody.body = data.description;
290
+ hasPatch = true;
249
291
  }
250
292
  if (data.iteration !== undefined) {
251
293
  if (data.iteration) {
252
- editArgs.push('--milestone', data.iteration);
294
+ const milestones = await this.fetchMilestones();
295
+ const milestone = milestones.find((m) => m.title === data.iteration);
296
+ if (milestone) {
297
+ patchBody.milestone = milestone.number;
298
+ }
253
299
  }
254
300
  else {
255
- editArgs.push('--remove-milestone');
301
+ patchBody.milestone = null;
256
302
  }
257
- hasEdits = true;
303
+ hasPatch = true;
258
304
  }
259
305
  if (data.assignee !== undefined) {
260
306
  if (data.assignee) {
261
- editArgs.push('--add-assignee', data.assignee);
307
+ patchBody.assignees = [data.assignee];
262
308
  }
263
- hasEdits = true;
309
+ else {
310
+ patchBody.assignees = [];
311
+ }
312
+ hasPatch = true;
264
313
  }
265
314
  if (data.labels !== undefined) {
266
- for (const label of data.labels) {
267
- editArgs.push('--add-label', label);
268
- }
269
- hasEdits = true;
315
+ patchBody.labels = data.labels;
316
+ hasPatch = true;
270
317
  }
271
- if (hasEdits) {
272
- await ghExec(editArgs, this.cwd);
318
+ if (hasPatch) {
319
+ await this.api.rest('PATCH', `/repos/${this.owner}/${this.repo}/issues/${id}`, patchBody);
273
320
  }
274
321
  return this.getWorkItem(id);
275
322
  }
276
323
  async deleteWorkItem(id) {
277
- await ghExec(['issue', 'delete', id, '--yes'], this.cwd);
324
+ const nodeId = await this.getIssueNodeId(Number(id));
325
+ await this.api.graphql(DELETE_ISSUE_MUTATION, { issueId: nodeId });
278
326
  }
279
327
  async addComment(workItemId, comment) {
280
- await ghExec(['issue', 'comment', workItemId, '--body', comment.body], this.cwd);
328
+ await this.api.rest('POST', `/repos/${this.owner}/${this.repo}/issues/${workItemId}/comments`, { body: comment.body });
281
329
  return {
282
330
  author: comment.author,
283
331
  date: new Date().toISOString(),
@@ -285,11 +333,11 @@ export class GitHubBackend extends BaseBackend {
285
333
  };
286
334
  }
287
335
  getItemUrl(id) {
288
- const result = ghSync(['issue', 'view', id, '--json', 'url'], this.cwd);
289
- return result.url;
336
+ return `https://github.com/${this.owner}/${this.repo}/issues/${id}`;
290
337
  }
291
338
  async openItem(id) {
292
- await ghExec(['issue', 'view', id, '--web'], this.cwd);
339
+ const url = this.getItemUrl(id);
340
+ await open(url);
293
341
  }
294
342
  /* eslint-disable @typescript-eslint/require-await, @typescript-eslint/no-unused-vars */
295
343
  async listTemplates() {
@@ -309,33 +357,27 @@ export class GitHubBackend extends BaseBackend {
309
357
  }
310
358
  /* eslint-enable @typescript-eslint/require-await, @typescript-eslint/no-unused-vars */
311
359
  async getIssueNodeId(issueNumber) {
312
- const { owner, repo } = await this.getOwnerRepo();
313
- const data = await ghGraphQL(GET_ISSUE_NODE_ID_QUERY, { owner, repo, number: issueNumber }, this.cwd);
360
+ const data = await this.api.graphql(GET_ISSUE_NODE_ID_QUERY, { owner: this.owner, repo: this.repo, number: issueNumber });
314
361
  return data.repository.issue.id;
315
362
  }
316
363
  async addSubIssue(parentNumber, childNumber) {
317
364
  const parentId = await this.getIssueNodeId(Number(parentNumber));
318
365
  const childId = await this.getIssueNodeId(Number(childNumber));
319
- await ghGraphQL(ADD_SUB_ISSUE_MUTATION, { parentId, childId }, this.cwd);
366
+ await this.api.graphql(ADD_SUB_ISSUE_MUTATION, { parentId, childId });
320
367
  }
321
368
  async removeSubIssue(parentNumber, childNumber) {
322
369
  const parentId = await this.getIssueNodeId(Number(parentNumber));
323
370
  const childId = await this.getIssueNodeId(Number(childNumber));
324
- await ghGraphQL(REMOVE_SUB_ISSUE_MUTATION, { parentId, childId }, this.cwd);
325
- }
326
- async getOwnerRepo() {
327
- if (!this.ownerRepo) {
328
- const nwo = await this.getRepoNwo();
329
- const [owner, repo] = nwo.split('/');
330
- this.ownerRepo = { owner: owner, repo: repo };
331
- }
332
- return this.ownerRepo;
371
+ await this.api.graphql(REMOVE_SUB_ISSUE_MUTATION, { parentId, childId });
333
372
  }
334
373
  async fetchMilestones() {
335
374
  if (this.cachedMilestones)
336
375
  return this.cachedMilestones;
337
- const { owner, repo } = await this.getOwnerRepo();
338
- this.cachedMilestones = await gh(['api', `repos/${owner}/${repo}/milestones`, '--jq', '.'], this.cwd);
376
+ const milestones = [];
377
+ for await (const page of this.api.paginate(`/repos/${this.owner}/${this.repo}/milestones`)) {
378
+ milestones.push(...page);
379
+ }
380
+ this.cachedMilestones = milestones;
339
381
  return this.cachedMilestones;
340
382
  }
341
383
  async fetchOpenMilestones() {
@@ -352,9 +394,5 @@ export class GitHubBackend extends BaseBackend {
352
394
  return a.due_on.localeCompare(b.due_on);
353
395
  });
354
396
  }
355
- async getRepoNwo() {
356
- const result = await gh(['repo', 'view', '--json', 'nameWithOwner'], this.cwd);
357
- return result.nameWithOwner;
358
- }
359
397
  }
360
398
  //# sourceMappingURL=index.js.map