chief-clancy 0.5.6 → 0.5.8

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 (78) hide show
  1. package/README.md +1 -1
  2. package/dist/bundle/clancy-once.js +72 -66
  3. package/dist/schemas/bitbucket-pr.d.ts +15 -0
  4. package/dist/schemas/bitbucket-pr.d.ts.map +1 -1
  5. package/dist/schemas/bitbucket-pr.js +6 -0
  6. package/dist/schemas/bitbucket-pr.js.map +1 -1
  7. package/dist/schemas/github.d.ts +12 -0
  8. package/dist/schemas/github.d.ts.map +1 -1
  9. package/dist/schemas/github.js +2 -0
  10. package/dist/schemas/github.js.map +1 -1
  11. package/dist/schemas/gitlab-mr.d.ts +11 -0
  12. package/dist/schemas/gitlab-mr.d.ts.map +1 -1
  13. package/dist/schemas/gitlab-mr.js +2 -0
  14. package/dist/schemas/gitlab-mr.js.map +1 -1
  15. package/dist/scripts/board/github/github.d.ts +1 -1
  16. package/dist/scripts/board/github/github.d.ts.map +1 -1
  17. package/dist/scripts/board/github/github.js +2 -2
  18. package/dist/scripts/board/github/github.js.map +1 -1
  19. package/dist/scripts/once/board-ops.d.ts +11 -0
  20. package/dist/scripts/once/board-ops.d.ts.map +1 -0
  21. package/dist/scripts/once/board-ops.js +81 -0
  22. package/dist/scripts/once/board-ops.js.map +1 -0
  23. package/dist/scripts/once/deliver.d.ts +13 -0
  24. package/dist/scripts/once/deliver.d.ts.map +1 -0
  25. package/dist/scripts/once/deliver.js +134 -0
  26. package/dist/scripts/once/deliver.js.map +1 -0
  27. package/dist/scripts/once/fetch-ticket.d.ts +4 -0
  28. package/dist/scripts/once/fetch-ticket.d.ts.map +1 -0
  29. package/dist/scripts/once/fetch-ticket.js +59 -0
  30. package/dist/scripts/once/fetch-ticket.js.map +1 -0
  31. package/dist/scripts/once/git-token.d.ts +13 -0
  32. package/dist/scripts/once/git-token.d.ts.map +1 -0
  33. package/dist/scripts/once/git-token.js +30 -0
  34. package/dist/scripts/once/git-token.js.map +1 -0
  35. package/dist/scripts/once/once.d.ts.map +1 -1
  36. package/dist/scripts/once/once.js +23 -421
  37. package/dist/scripts/once/once.js.map +1 -1
  38. package/dist/scripts/once/pr-creation.d.ts +11 -0
  39. package/dist/scripts/once/pr-creation.d.ts.map +1 -0
  40. package/dist/scripts/once/pr-creation.js +50 -0
  41. package/dist/scripts/once/pr-creation.js.map +1 -0
  42. package/dist/scripts/once/rework.d.ts +32 -0
  43. package/dist/scripts/once/rework.d.ts.map +1 -0
  44. package/dist/scripts/once/rework.js +208 -0
  45. package/dist/scripts/once/rework.js.map +1 -0
  46. package/dist/scripts/once/types.d.ts +13 -0
  47. package/dist/scripts/once/types.d.ts.map +1 -0
  48. package/dist/scripts/once/types.js +2 -0
  49. package/dist/scripts/once/types.js.map +1 -0
  50. package/dist/scripts/shared/git-ops/git-ops.d.ts +11 -0
  51. package/dist/scripts/shared/git-ops/git-ops.d.ts.map +1 -1
  52. package/dist/scripts/shared/git-ops/git-ops.js +26 -0
  53. package/dist/scripts/shared/git-ops/git-ops.js.map +1 -1
  54. package/dist/scripts/shared/preflight/preflight.d.ts.map +1 -1
  55. package/dist/scripts/shared/preflight/preflight.js +15 -3
  56. package/dist/scripts/shared/preflight/preflight.js.map +1 -1
  57. package/dist/scripts/shared/progress/progress.d.ts +2 -1
  58. package/dist/scripts/shared/progress/progress.d.ts.map +1 -1
  59. package/dist/scripts/shared/progress/progress.js +29 -13
  60. package/dist/scripts/shared/progress/progress.js.map +1 -1
  61. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.d.ts +12 -0
  62. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.d.ts.map +1 -1
  63. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.js +51 -1
  64. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.js.map +1 -1
  65. package/dist/scripts/shared/pull-request/github/github.d.ts +26 -2
  66. package/dist/scripts/shared/pull-request/github/github.d.ts.map +1 -1
  67. package/dist/scripts/shared/pull-request/github/github.js +102 -9
  68. package/dist/scripts/shared/pull-request/github/github.js.map +1 -1
  69. package/dist/scripts/shared/pull-request/gitlab/gitlab.d.ts +30 -2
  70. package/dist/scripts/shared/pull-request/gitlab/gitlab.d.ts.map +1 -1
  71. package/dist/scripts/shared/pull-request/gitlab/gitlab.js +70 -4
  72. package/dist/scripts/shared/pull-request/gitlab/gitlab.js.map +1 -1
  73. package/dist/scripts/shared/pull-request/pr-body/pr-body.d.ts.map +1 -1
  74. package/dist/scripts/shared/pull-request/pr-body/pr-body.js +6 -1
  75. package/dist/scripts/shared/pull-request/pr-body/pr-body.js.map +1 -1
  76. package/dist/types/remote.d.ts +2 -0
  77. package/dist/types/remote.d.ts.map +1 -1
  78. package/package.json +1 -1
@@ -13,11 +13,11 @@ import { dirname, join } from 'node:path';
13
13
  * @returns The formatted date string.
14
14
  */
15
15
  export function formatTimestamp(date) {
16
- const y = date.getFullYear();
17
- const mo = String(date.getMonth() + 1).padStart(2, '0');
18
- const d = String(date.getDate()).padStart(2, '0');
19
- const h = String(date.getHours()).padStart(2, '0');
20
- const mi = String(date.getMinutes()).padStart(2, '0');
16
+ const y = date.getUTCFullYear();
17
+ const mo = String(date.getUTCMonth() + 1).padStart(2, '0');
18
+ const d = String(date.getUTCDate()).padStart(2, '0');
19
+ const h = String(date.getUTCHours()).padStart(2, '0');
20
+ const mi = String(date.getUTCMinutes()).padStart(2, '0');
21
21
  return `${y}-${mo}-${d} ${h}:${mi}`;
22
22
  }
23
23
  /**
@@ -36,11 +36,12 @@ export function formatTimestamp(date) {
36
36
  * // Appends: "2024-01-15 14:30 | PROJ-123 | Add login page | DONE"
37
37
  * ```
38
38
  */
39
- export function appendProgress(projectRoot, key, summary, status) {
39
+ export function appendProgress(projectRoot, key, summary, status, prNumber) {
40
40
  const filePath = join(projectRoot, '.clancy', 'progress.txt');
41
41
  mkdirSync(dirname(filePath), { recursive: true });
42
42
  const timestamp = formatTimestamp(new Date());
43
- const line = `${timestamp} | ${key} | ${summary} | ${status}\n`;
43
+ const prSuffix = prNumber != null ? ` | pr:${prNumber}` : '';
44
+ const line = `${timestamp} | ${key} | ${summary} | ${status}${prSuffix}\n`;
44
45
  appendFileSync(filePath, line, 'utf8');
45
46
  }
46
47
  /**
@@ -68,12 +69,27 @@ function parseProgressFile(projectRoot) {
68
69
  const parts = trimmed.split(' | ');
69
70
  if (parts.length < 4)
70
71
  continue;
71
- entries.push({
72
- timestamp: parts[0],
73
- key: parts[1],
74
- summary: parts.slice(2, -1).join(' | '),
75
- status: parts[parts.length - 1],
76
- });
72
+ const lastPart = parts[parts.length - 1];
73
+ const prMatch = lastPart.match(/^pr:(\d+)$/);
74
+ if (prMatch) {
75
+ // Has PR number: status is second-to-last
76
+ entries.push({
77
+ timestamp: parts[0],
78
+ key: parts[1],
79
+ summary: parts.slice(2, -2).join(' | '),
80
+ status: parts[parts.length - 2],
81
+ prNumber: parseInt(prMatch[1], 10),
82
+ });
83
+ }
84
+ else {
85
+ // No PR number: status is last (backward compatible)
86
+ entries.push({
87
+ timestamp: parts[0],
88
+ key: parts[1],
89
+ summary: parts.slice(2, -1).join(' | '),
90
+ status: lastPart,
91
+ });
92
+ }
77
93
  }
78
94
  return entries;
79
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../src/scripts/shared/progress/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../src/scripts/shared/progress/progress.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,18 @@ export declare function createPullRequest(username: string, token: string, works
27
27
  * @returns A result with the PR URL and ID on success, or an error message.
28
28
  */
29
29
  export declare function createServerPullRequest(token: string, apiBase: string, projectKey: string, repoSlug: string, sourceBranch: string, targetBranch: string, title: string, description: string): Promise<PrCreationResult>;
30
+ /**
31
+ * Post a comment on a Bitbucket Cloud pull request.
32
+ *
33
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
34
+ */
35
+ export declare function postCloudPrComment(username: string, token: string, workspace: string, repoSlug: string, prId: number, body: string): Promise<boolean>;
36
+ /**
37
+ * Post a comment on a Bitbucket Server/DC pull request.
38
+ *
39
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
40
+ */
41
+ export declare function postServerPrComment(token: string, apiBase: string, projectKey: string, repoSlug: string, prId: number, body: string): Promise<boolean>;
30
42
  /**
31
43
  * Check the review state of an open PR on Bitbucket Cloud for a given branch.
32
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"bitbucket.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/bitbucket/bitbucket.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQxE;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAkC3B;AAMD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAyCpC;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BnB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA+CpC;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCnB"}
1
+ {"version":3,"file":"bitbucket.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/bitbucket/bitbucket.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQxE;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAqC3B;AAMD;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAMD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAyCpC;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CA8BnB;AAMD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA+CpC;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCnB"}
@@ -74,7 +74,57 @@ export async function createServerPullRequest(token, apiBase, projectKey, repoSl
74
74
  url: data.links?.self?.[0]?.href ?? '',
75
75
  number: data.id ?? 0,
76
76
  };
77
- }, (status, text) => status === 409 && text.includes('already exists'));
77
+ }, (status, text) => status === 409 &&
78
+ (text.includes('already exists') ||
79
+ text.includes('Only one pull request')));
80
+ }
81
+ // ---------------------------------------------------------------------------
82
+ // Cloud — comment posting
83
+ // ---------------------------------------------------------------------------
84
+ /**
85
+ * Post a comment on a Bitbucket Cloud pull request.
86
+ *
87
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
88
+ */
89
+ export async function postCloudPrComment(username, token, workspace, repoSlug, prId, body) {
90
+ try {
91
+ const res = await fetch(`https://api.bitbucket.org/2.0/repositories/${workspace}/${repoSlug}/pullrequests/${prId}/comments`, {
92
+ method: 'POST',
93
+ headers: {
94
+ Authorization: basicAuth(username, token),
95
+ 'Content-Type': 'application/json',
96
+ },
97
+ body: JSON.stringify({ content: { raw: body } }),
98
+ });
99
+ return res.ok;
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // Server/DC — comment posting
107
+ // ---------------------------------------------------------------------------
108
+ /**
109
+ * Post a comment on a Bitbucket Server/DC pull request.
110
+ *
111
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
112
+ */
113
+ export async function postServerPrComment(token, apiBase, projectKey, repoSlug, prId, body) {
114
+ try {
115
+ const res = await fetch(`${apiBase}/projects/${projectKey}/repos/${repoSlug}/pull-requests/${prId}/comments`, {
116
+ method: 'POST',
117
+ headers: {
118
+ Authorization: `Bearer ${token}`,
119
+ 'Content-Type': 'application/json',
120
+ },
121
+ body: JSON.stringify({ text: body }),
122
+ });
123
+ return res.ok;
124
+ }
125
+ catch {
126
+ return false;
127
+ }
78
128
  }
79
129
  // ---------------------------------------------------------------------------
80
130
  // Cloud — review state & comments
@@ -1 +1 @@
1
- {"version":3,"file":"bitbucket.js","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/bitbucket/bitbucket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitbucket.js","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/bitbucket/bitbucket.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import type { PrCreationResult, PrReviewState } from '../../../../types/index.js
14
14
  * @param since - ISO 8601 timestamp; only comments created after this time trigger rework.
15
15
  * @returns The review state, or `undefined` if no open PR or on error.
16
16
  */
17
- export declare function checkPrReviewState(token: string, repo: string, branch: string, owner: string, apiBase?: string, since?: string): Promise<PrReviewState | undefined>;
17
+ export declare function checkPrReviewState(token: string, repo: string, branch: string, owner: string, apiBase?: string, since?: string, excludeAuthor?: string): Promise<PrReviewState | undefined>;
18
18
  /**
19
19
  * Fetch feedback comments (inline + conversation) for a PR.
20
20
  *
@@ -31,7 +31,31 @@ export declare function checkPrReviewState(token: string, repo: string, branch:
31
31
  * @param since - ISO 8601 timestamp; only comments created after this time are returned.
32
32
  * @returns An array of feedback descriptions, or `[]` on error.
33
33
  */
34
- export declare function fetchPrReviewComments(token: string, repo: string, prNumber: number, apiBase?: string, since?: string): Promise<string[]>;
34
+ export declare function fetchPrReviewComments(token: string, repo: string, prNumber: number, apiBase?: string, since?: string, excludeAuthor?: string): Promise<string[]>;
35
+ /**
36
+ * Post a comment on a GitHub PR/issue.
37
+ *
38
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
39
+ *
40
+ * @param token - The GitHub personal access token.
41
+ * @param repo - The repository in `owner/repo` format.
42
+ * @param prNumber - The PR (issue) number.
43
+ * @param body - The comment body (markdown).
44
+ * @param apiBase - The API base URL (defaults to `https://api.github.com`).
45
+ */
46
+ export declare function postPrComment(token: string, repo: string, prNumber: number, body: string, apiBase?: string): Promise<boolean>;
47
+ /**
48
+ * Re-request review from specified reviewers on a GitHub PR.
49
+ *
50
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
51
+ *
52
+ * @param token - The GitHub personal access token.
53
+ * @param repo - The repository in `owner/repo` format.
54
+ * @param prNumber - The PR number.
55
+ * @param reviewers - Array of GitHub usernames to request review from.
56
+ * @param apiBase - The API base URL (defaults to `https://api.github.com`).
57
+ */
58
+ export declare function requestReview(token: string, repo: string, prNumber: number, reviewers: string[], apiBase?: string): Promise<boolean>;
35
59
  /**
36
60
  * Create a pull request on GitHub.
37
61
  *
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/github/github.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQxE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,SAAa,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAoDpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAa,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CA6CnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,SAAa,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAW3B"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/github/github.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQxE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,SAAa,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAyFpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAa,EACpB,KAAK,CAAC,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAkDnB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,SAAa,GACnB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,SAAa,GACnB,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,SAAa,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAW3B"}
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Auth: `Authorization: Bearer` header (personal access token with `repo` scope).
9
9
  */
10
- import { githubCommentsResponseSchema, githubPrCommentsSchema, githubPrListSchema, } from '../../../../schemas/github.js';
10
+ import { githubCommentsResponseSchema, githubPrCommentsSchema, githubPrListSchema, githubReviewListSchema, } from '../../../../schemas/github.js';
11
11
  import { GITHUB_API, githubHeaders } from '../../../../scripts/shared/http/http.js';
12
12
  import { postPullRequest } from '../post-pr/post-pr.js';
13
13
  import { extractReworkContent, isReworkComment, } from '../rework-comment/rework-comment.js';
@@ -26,7 +26,7 @@ import { extractReworkContent, isReworkComment, } from '../rework-comment/rework
26
26
  * @param since - ISO 8601 timestamp; only comments created after this time trigger rework.
27
27
  * @returns The review state, or `undefined` if no open PR or on error.
28
28
  */
29
- export async function checkPrReviewState(token, repo, branch, owner, apiBase = GITHUB_API, since) {
29
+ export async function checkPrReviewState(token, repo, branch, owner, apiBase = GITHUB_API, since, excludeAuthor) {
30
30
  try {
31
31
  const headers = githubHeaders(token);
32
32
  const prRes = await fetch(`${apiBase}/repos/${repo}/pulls?head=${owner}:${branch}&state=open`, { headers });
@@ -47,15 +47,48 @@ export async function checkPrReviewState(token, repo, branch, owner, apiBase = G
47
47
  ]);
48
48
  if (!inlineRes.ok || !convoRes.ok)
49
49
  return undefined;
50
- const inlineComments = githubPrCommentsSchema.parse(await inlineRes.json());
51
- const convoComments = githubCommentsResponseSchema.parse(await convoRes.json());
50
+ const rawInline = githubPrCommentsSchema.parse(await inlineRes.json());
51
+ const rawConvo = githubCommentsResponseSchema.parse(await convoRes.json());
52
+ const inlineComments = excludeAuthor
53
+ ? rawInline.filter((c) => c.user?.login !== excludeAuthor)
54
+ : rawInline;
55
+ const convoComments = excludeAuthor
56
+ ? rawConvo.filter((c) => c.user?.login !== excludeAuthor)
57
+ : rawConvo;
52
58
  const hasInlineComments = inlineComments.length > 0;
53
59
  const hasReworkConvo = convoComments.some((c) => c.body && isReworkComment(c.body));
54
- const hasRework = hasInlineComments || hasReworkConvo;
60
+ let changesRequested = hasInlineComments || hasReworkConvo;
61
+ let reviewers;
62
+ // Additional signal: GitHub "Request Changes" review state
63
+ if (!changesRequested) {
64
+ try {
65
+ const reviewsRes = await fetch(`${apiBase}/repos/${repo}/pulls/${pr.number}/reviews?per_page=100`, { headers });
66
+ if (reviewsRes.ok) {
67
+ const reviews = githubReviewListSchema.parse(await reviewsRes.json());
68
+ // Deduplicate by user — keep latest per user
69
+ const latestByUser = new Map();
70
+ for (const review of reviews) {
71
+ if (review.state === 'PENDING' || review.state === 'DISMISSED')
72
+ continue;
73
+ latestByUser.set(review.user.login, review.state);
74
+ }
75
+ // Check if any reviewer's latest state is CHANGES_REQUESTED
76
+ const requestedChanges = [...latestByUser.entries()].filter(([, s]) => s === 'CHANGES_REQUESTED');
77
+ if (requestedChanges.length > 0) {
78
+ changesRequested = true;
79
+ reviewers = requestedChanges.map(([login]) => login);
80
+ }
81
+ }
82
+ }
83
+ catch {
84
+ // Best-effort — if review fetch fails, rely on comment detection only
85
+ }
86
+ }
55
87
  return {
56
- changesRequested: hasRework,
88
+ changesRequested,
57
89
  prNumber: pr.number,
58
90
  prUrl: pr.html_url,
91
+ reviewers,
59
92
  };
60
93
  }
61
94
  catch {
@@ -78,7 +111,7 @@ export async function checkPrReviewState(token, repo, branch, owner, apiBase = G
78
111
  * @param since - ISO 8601 timestamp; only comments created after this time are returned.
79
112
  * @returns An array of feedback descriptions, or `[]` on error.
80
113
  */
81
- export async function fetchPrReviewComments(token, repo, prNumber, apiBase = GITHUB_API, since) {
114
+ export async function fetchPrReviewComments(token, repo, prNumber, apiBase = GITHUB_API, since, excludeAuthor) {
82
115
  try {
83
116
  const headers = githubHeaders(token);
84
117
  const sinceParam = since ? `&since=${since}` : '';
@@ -92,8 +125,14 @@ export async function fetchPrReviewComments(token, repo, prNumber, apiBase = GIT
92
125
  ]);
93
126
  if (!inlineRes.ok || !convoRes.ok)
94
127
  return [];
95
- const inlineComments = githubPrCommentsSchema.parse(await inlineRes.json());
96
- const convoComments = githubCommentsResponseSchema.parse(await convoRes.json());
128
+ const rawInline = githubPrCommentsSchema.parse(await inlineRes.json());
129
+ const rawConvo = githubCommentsResponseSchema.parse(await convoRes.json());
130
+ const inlineComments = excludeAuthor
131
+ ? rawInline.filter((c) => c.user?.login !== excludeAuthor)
132
+ : rawInline;
133
+ const convoComments = excludeAuthor
134
+ ? rawConvo.filter((c) => c.user?.login !== excludeAuthor)
135
+ : rawConvo;
97
136
  const combined = [];
98
137
  for (const c of inlineComments) {
99
138
  if (!c.body)
@@ -112,6 +151,60 @@ export async function fetchPrReviewComments(token, repo, prNumber, apiBase = GIT
112
151
  return [];
113
152
  }
114
153
  }
154
+ /**
155
+ * Post a comment on a GitHub PR/issue.
156
+ *
157
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
158
+ *
159
+ * @param token - The GitHub personal access token.
160
+ * @param repo - The repository in `owner/repo` format.
161
+ * @param prNumber - The PR (issue) number.
162
+ * @param body - The comment body (markdown).
163
+ * @param apiBase - The API base URL (defaults to `https://api.github.com`).
164
+ */
165
+ export async function postPrComment(token, repo, prNumber, body, apiBase = GITHUB_API) {
166
+ try {
167
+ const res = await fetch(`${apiBase}/repos/${repo}/issues/${prNumber}/comments`, {
168
+ method: 'POST',
169
+ headers: {
170
+ ...githubHeaders(token),
171
+ 'Content-Type': 'application/json',
172
+ },
173
+ body: JSON.stringify({ body }),
174
+ });
175
+ return res.ok;
176
+ }
177
+ catch {
178
+ return false;
179
+ }
180
+ }
181
+ /**
182
+ * Re-request review from specified reviewers on a GitHub PR.
183
+ *
184
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
185
+ *
186
+ * @param token - The GitHub personal access token.
187
+ * @param repo - The repository in `owner/repo` format.
188
+ * @param prNumber - The PR number.
189
+ * @param reviewers - Array of GitHub usernames to request review from.
190
+ * @param apiBase - The API base URL (defaults to `https://api.github.com`).
191
+ */
192
+ export async function requestReview(token, repo, prNumber, reviewers, apiBase = GITHUB_API) {
193
+ try {
194
+ const res = await fetch(`${apiBase}/repos/${repo}/pulls/${prNumber}/requested_reviewers`, {
195
+ method: 'POST',
196
+ headers: {
197
+ ...githubHeaders(token),
198
+ 'Content-Type': 'application/json',
199
+ },
200
+ body: JSON.stringify({ reviewers }),
201
+ });
202
+ return res.ok;
203
+ }
204
+ catch {
205
+ return false;
206
+ }
207
+ }
115
208
  /**
116
209
  * Create a pull request on GitHub.
117
210
  *
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/github/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/github/github.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,31 @@ import type { PrCreationResult, PrReviewState } from '../../../../types/index.js
12
12
  * @returns A result with the MR URL and IID on success, or an error message.
13
13
  */
14
14
  export declare function createMergeRequest(token: string, apiBase: string, projectPath: string, sourceBranch: string, targetBranch: string, title: string, description: string): Promise<PrCreationResult>;
15
+ /**
16
+ * Post a note (comment) on a GitLab merge request.
17
+ *
18
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
19
+ *
20
+ * @param token - The GitLab personal access token.
21
+ * @param apiBase - The API base URL (e.g. `https://gitlab.com/api/v4`).
22
+ * @param projectPath - The raw project path. URL-encoded internally.
23
+ * @param mrIid - The MR internal ID (iid).
24
+ * @param body - The note body (markdown).
25
+ */
26
+ export declare function postMrNote(token: string, apiBase: string, projectPath: string, mrIid: number, body: string): Promise<boolean>;
27
+ /**
28
+ * Resolve MR discussion threads on GitLab.
29
+ *
30
+ * Best-effort per discussion — failures are silently skipped.
31
+ * Returns the number of successfully resolved discussions.
32
+ *
33
+ * @param token - The GitLab personal access token.
34
+ * @param apiBase - The API base URL (e.g. `https://gitlab.com/api/v4`).
35
+ * @param projectPath - The raw project path. URL-encoded internally.
36
+ * @param mrIid - The MR internal ID (iid).
37
+ * @param discussionIds - Array of discussion IDs to resolve.
38
+ */
39
+ export declare function resolveDiscussions(token: string, apiBase: string, projectPath: string, mrIid: number, discussionIds: string[]): Promise<number>;
15
40
  /**
16
41
  * Check the review state of an open MR for a given branch.
17
42
  *
@@ -40,7 +65,10 @@ export declare function checkMrReviewState(token: string, apiBase: string, proje
40
65
  * @param projectPath - The raw project path. URL-encoded internally.
41
66
  * @param mrIid - The MR internal ID (iid).
42
67
  * @param since - ISO 8601 timestamp; only notes created after this time are returned.
43
- * @returns An array of feedback descriptions.
68
+ * @returns An object with feedback descriptions and discussion IDs.
44
69
  */
45
- export declare function fetchMrReviewComments(token: string, apiBase: string, projectPath: string, mrIid: number, since?: string): Promise<string[]>;
70
+ export declare function fetchMrReviewComments(token: string, apiBase: string, projectPath: string, mrIid: number, since?: string): Promise<{
71
+ comments: string[];
72
+ discussionIds: string[];
73
+ }>;
46
74
  //# sourceMappingURL=gitlab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/gitlab/gitlab.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQxE;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAyDpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB"}
1
+ {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/gitlab/gitlab.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAQxE;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAelB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAyDpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA+C1D"}
@@ -35,6 +35,65 @@ export async function createMergeRequest(token, apiBase, projectPath, sourceBran
35
35
  return { url: data.web_url ?? '', number: data.iid ?? 0 };
36
36
  }, (status, text) => status === 409 && text.includes('already exists'));
37
37
  }
38
+ /**
39
+ * Post a note (comment) on a GitLab merge request.
40
+ *
41
+ * Best-effort — never throws. Returns `true` on success, `false` on error.
42
+ *
43
+ * @param token - The GitLab personal access token.
44
+ * @param apiBase - The API base URL (e.g. `https://gitlab.com/api/v4`).
45
+ * @param projectPath - The raw project path. URL-encoded internally.
46
+ * @param mrIid - The MR internal ID (iid).
47
+ * @param body - The note body (markdown).
48
+ */
49
+ export async function postMrNote(token, apiBase, projectPath, mrIid, body) {
50
+ try {
51
+ const encoded = encodeURIComponent(projectPath);
52
+ const res = await fetch(`${apiBase}/projects/${encoded}/merge_requests/${mrIid}/notes`, {
53
+ method: 'POST',
54
+ headers: { 'PRIVATE-TOKEN': token, 'Content-Type': 'application/json' },
55
+ body: JSON.stringify({ body }),
56
+ });
57
+ return res.ok;
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ }
63
+ /**
64
+ * Resolve MR discussion threads on GitLab.
65
+ *
66
+ * Best-effort per discussion — failures are silently skipped.
67
+ * Returns the number of successfully resolved discussions.
68
+ *
69
+ * @param token - The GitLab personal access token.
70
+ * @param apiBase - The API base URL (e.g. `https://gitlab.com/api/v4`).
71
+ * @param projectPath - The raw project path. URL-encoded internally.
72
+ * @param mrIid - The MR internal ID (iid).
73
+ * @param discussionIds - Array of discussion IDs to resolve.
74
+ */
75
+ export async function resolveDiscussions(token, apiBase, projectPath, mrIid, discussionIds) {
76
+ const encoded = encodeURIComponent(projectPath);
77
+ let resolved = 0;
78
+ for (const id of discussionIds) {
79
+ try {
80
+ const res = await fetch(`${apiBase}/projects/${encoded}/merge_requests/${mrIid}/discussions/${id}`, {
81
+ method: 'PUT',
82
+ headers: {
83
+ 'PRIVATE-TOKEN': token,
84
+ 'Content-Type': 'application/json',
85
+ },
86
+ body: JSON.stringify({ resolved: true }),
87
+ });
88
+ if (res.ok)
89
+ resolved++;
90
+ }
91
+ catch {
92
+ // Best-effort per discussion
93
+ }
94
+ }
95
+ return resolved;
96
+ }
38
97
  /**
39
98
  * Check the review state of an open MR for a given branch.
40
99
  *
@@ -113,7 +172,7 @@ export async function checkMrReviewState(token, apiBase, projectPath, branch, si
113
172
  * @param projectPath - The raw project path. URL-encoded internally.
114
173
  * @param mrIid - The MR internal ID (iid).
115
174
  * @param since - ISO 8601 timestamp; only notes created after this time are returned.
116
- * @returns An array of feedback descriptions.
175
+ * @returns An object with feedback descriptions and discussion IDs.
117
176
  */
118
177
  export async function fetchMrReviewComments(token, apiBase, projectPath, mrIid, since) {
119
178
  try {
@@ -123,10 +182,12 @@ export async function fetchMrReviewComments(token, apiBase, projectPath, mrIid,
123
182
  headers: { 'PRIVATE-TOKEN': token },
124
183
  });
125
184
  if (!res.ok)
126
- return [];
185
+ return { comments: [], discussionIds: [] };
127
186
  const discussions = gitlabDiscussionsSchema.parse(await res.json());
128
187
  const comments = [];
188
+ const discussionIds = [];
129
189
  for (const discussion of discussions) {
190
+ let discussionHasFeedback = false;
130
191
  for (const note of discussion.notes) {
131
192
  if (note.system)
132
193
  continue;
@@ -139,16 +200,21 @@ export async function fetchMrReviewComments(token, apiBase, projectPath, mrIid,
139
200
  ? `[${note.position.new_path}] `
140
201
  : '';
141
202
  comments.push(`${prefix}${note.body}`);
203
+ discussionHasFeedback = true;
142
204
  }
143
205
  else if (isReworkComment(note.body)) {
144
206
  comments.push(extractReworkContent(note.body));
207
+ discussionHasFeedback = true;
145
208
  }
146
209
  }
210
+ if (discussionHasFeedback && discussion.id) {
211
+ discussionIds.push(discussion.id);
212
+ }
147
213
  }
148
- return comments;
214
+ return { comments, discussionIds };
149
215
  }
150
216
  catch {
151
- return [];
217
+ return { comments: [], discussionIds: [] };
152
218
  }
153
219
  }
154
220
  //# sourceMappingURL=gitlab.js.map