gitgrip 0.2.4 → 0.3.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 (45) hide show
  1. package/README.md +75 -1
  2. package/dist/commands/pr/create.d.ts.map +1 -1
  3. package/dist/commands/pr/create.js +29 -8
  4. package/dist/commands/pr/create.js.map +1 -1
  5. package/dist/commands/pr/merge.d.ts.map +1 -1
  6. package/dist/commands/pr/merge.js +40 -33
  7. package/dist/commands/pr/merge.js.map +1 -1
  8. package/dist/commands/pr/status.d.ts.map +1 -1
  9. package/dist/commands/pr/status.js +15 -11
  10. package/dist/commands/pr/status.js.map +1 -1
  11. package/dist/lib/github.d.ts +28 -4
  12. package/dist/lib/github.d.ts.map +1 -1
  13. package/dist/lib/github.js +65 -126
  14. package/dist/lib/github.js.map +1 -1
  15. package/dist/lib/linker.d.ts +19 -4
  16. package/dist/lib/linker.d.ts.map +1 -1
  17. package/dist/lib/linker.js +107 -16
  18. package/dist/lib/linker.js.map +1 -1
  19. package/dist/lib/manifest.d.ts +12 -1
  20. package/dist/lib/manifest.d.ts.map +1 -1
  21. package/dist/lib/manifest.js +45 -5
  22. package/dist/lib/manifest.js.map +1 -1
  23. package/dist/lib/platform/azure-devops.d.ts +83 -0
  24. package/dist/lib/platform/azure-devops.d.ts.map +1 -0
  25. package/dist/lib/platform/azure-devops.js +378 -0
  26. package/dist/lib/platform/azure-devops.js.map +1 -0
  27. package/dist/lib/platform/github.d.ts +82 -0
  28. package/dist/lib/platform/github.d.ts.map +1 -0
  29. package/dist/lib/platform/github.js +285 -0
  30. package/dist/lib/platform/github.js.map +1 -0
  31. package/dist/lib/platform/gitlab.d.ts +82 -0
  32. package/dist/lib/platform/gitlab.d.ts.map +1 -0
  33. package/dist/lib/platform/gitlab.js +331 -0
  34. package/dist/lib/platform/gitlab.js.map +1 -0
  35. package/dist/lib/platform/index.d.ts +60 -0
  36. package/dist/lib/platform/index.d.ts.map +1 -0
  37. package/dist/lib/platform/index.js +132 -0
  38. package/dist/lib/platform/index.js.map +1 -0
  39. package/dist/lib/platform/types.d.ts +162 -0
  40. package/dist/lib/platform/types.d.ts.map +1 -0
  41. package/dist/lib/platform/types.js +5 -0
  42. package/dist/lib/platform/types.js.map +1 -0
  43. package/dist/types.d.ts +39 -5
  44. package/dist/types.d.ts.map +1 -1
  45. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,32 @@
1
+ /**
2
+ * GitHub API operations
3
+ *
4
+ * This module provides backward-compatible exports that delegate to the
5
+ * platform abstraction. For new code, prefer using the platform module directly.
6
+ *
7
+ * @deprecated Use the platform abstraction (./platform/index.js) for multi-platform support
8
+ */
9
+ import { getGitHubPlatform } from './platform/github.js';
1
10
  import { Octokit } from '@octokit/rest';
2
11
  import { execSync } from 'child_process';
12
+ // Re-export the GitHub platform for backward compatibility
13
+ export { getGitHubPlatform };
14
+ // Singleton Octokit instance for backward compatibility with tests
3
15
  let octokitInstance = null;
16
+ /**
17
+ * Get or create Octokit instance (for backward compatibility with tests)
18
+ * @deprecated Use getPlatformAdapter('github') instead
19
+ */
20
+ export function getOctokit() {
21
+ if (!octokitInstance) {
22
+ const token = getGitHubToken();
23
+ octokitInstance = new Octokit({ auth: token });
24
+ }
25
+ return octokitInstance;
26
+ }
4
27
  /**
5
28
  * Get GitHub token from environment or gh CLI
29
+ * @deprecated Use getPlatformAdapter('github').getToken() instead
6
30
  */
7
31
  export function getGitHubToken() {
8
32
  // Try environment variable first
@@ -21,157 +45,78 @@ export function getGitHubToken() {
21
45
  }
22
46
  throw new Error('GitHub token not found. Set GITHUB_TOKEN environment variable or run "gh auth login"');
23
47
  }
24
- /**
25
- * Get or create Octokit instance
26
- */
27
- export function getOctokit() {
28
- if (!octokitInstance) {
29
- const token = getGitHubToken();
30
- octokitInstance = new Octokit({ auth: token });
31
- }
32
- return octokitInstance;
33
- }
34
48
  /**
35
49
  * Create a pull request
50
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).createPullRequest() instead
36
51
  */
37
52
  export async function createPullRequest(owner, repo, head, base, title, body, draft = false) {
38
- const octokit = getOctokit();
39
- const response = await octokit.pulls.create({
40
- owner,
41
- repo,
42
- head,
43
- base,
44
- title,
45
- body,
46
- draft,
47
- });
48
- return {
49
- number: response.data.number,
50
- url: response.data.html_url,
51
- };
53
+ const platform = getGitHubPlatform();
54
+ return platform.createPullRequest(owner, repo, head, base, title, body, draft);
52
55
  }
53
56
  /**
54
57
  * Update a pull request body
58
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).updatePullRequestBody() instead
55
59
  */
56
60
  export async function updatePullRequestBody(owner, repo, pullNumber, body) {
57
- const octokit = getOctokit();
58
- await octokit.pulls.update({
59
- owner,
60
- repo,
61
- pull_number: pullNumber,
62
- body,
63
- });
61
+ const platform = getGitHubPlatform();
62
+ return platform.updatePullRequestBody(owner, repo, pullNumber, body);
64
63
  }
65
64
  /**
66
65
  * Get pull request details
66
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).getPullRequest() instead
67
67
  */
68
68
  export async function getPullRequest(owner, repo, pullNumber) {
69
- const octokit = getOctokit();
70
- const response = await octokit.pulls.get({
71
- owner,
72
- repo,
73
- pull_number: pullNumber,
74
- });
69
+ const platform = getGitHubPlatform();
70
+ const pr = await platform.getPullRequest(owner, repo, pullNumber);
71
+ // Map the platform state back to the original API's expected type
72
+ // (The original API doesn't include 'merged' as a state - merged is determined by the merged field)
73
+ const state = pr.merged ? 'closed' : pr.state === 'merged' ? 'closed' : pr.state;
75
74
  return {
76
- number: response.data.number,
77
- url: response.data.html_url,
78
- title: response.data.title,
79
- body: response.data.body ?? '',
80
- state: response.data.state,
81
- merged: response.data.merged,
82
- mergeable: response.data.mergeable,
83
- head: {
84
- ref: response.data.head.ref,
85
- sha: response.data.head.sha,
86
- },
87
- base: {
88
- ref: response.data.base.ref,
89
- },
75
+ ...pr,
76
+ state,
90
77
  };
91
78
  }
92
79
  /**
93
80
  * Get reviews for a pull request
81
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).getPullRequestReviews() instead
94
82
  */
95
83
  export async function getPullRequestReviews(owner, repo, pullNumber) {
96
- const octokit = getOctokit();
97
- const response = await octokit.pulls.listReviews({
98
- owner,
99
- repo,
100
- pull_number: pullNumber,
101
- });
102
- return response.data.map((review) => ({
103
- state: review.state,
104
- user: review.user?.login ?? 'unknown',
105
- }));
84
+ const platform = getGitHubPlatform();
85
+ return platform.getPullRequestReviews(owner, repo, pullNumber);
106
86
  }
107
87
  /**
108
88
  * Check if a PR is approved
89
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).isPullRequestApproved() instead
109
90
  */
110
91
  export async function isPullRequestApproved(owner, repo, pullNumber) {
111
- const reviews = await getPullRequestReviews(owner, repo, pullNumber);
112
- // Consider approved if at least one APPROVED review and no CHANGES_REQUESTED
113
- const hasApproval = reviews.some((r) => r.state === 'APPROVED');
114
- const hasChangesRequested = reviews.some((r) => r.state === 'CHANGES_REQUESTED');
115
- return hasApproval && !hasChangesRequested;
92
+ const platform = getGitHubPlatform();
93
+ return platform.isPullRequestApproved(owner, repo, pullNumber);
116
94
  }
117
95
  /**
118
96
  * Get combined status checks for a PR
97
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).getStatusChecks() instead
119
98
  */
120
99
  export async function getStatusChecks(owner, repo, ref) {
121
- const octokit = getOctokit();
122
- const response = await octokit.repos.getCombinedStatusForRef({
123
- owner,
124
- repo,
125
- ref,
126
- });
127
- return {
128
- state: response.data.state,
129
- statuses: response.data.statuses.map((s) => ({
130
- context: s.context,
131
- state: s.state,
132
- })),
133
- };
100
+ const platform = getGitHubPlatform();
101
+ return platform.getStatusChecks(owner, repo, ref);
134
102
  }
135
103
  /**
136
104
  * Merge a pull request
105
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).mergePullRequest() instead
137
106
  */
138
107
  export async function mergePullRequest(owner, repo, pullNumber, options = {}) {
139
- const octokit = getOctokit();
140
- const mergeMethod = options.method ?? 'merge';
141
- try {
142
- await octokit.pulls.merge({
143
- owner,
144
- repo,
145
- pull_number: pullNumber,
146
- merge_method: mergeMethod,
147
- });
148
- // Delete branch if requested
149
- if (options.deleteBranch) {
150
- const pr = await getPullRequest(owner, repo, pullNumber);
151
- try {
152
- await octokit.git.deleteRef({
153
- owner,
154
- repo,
155
- ref: `heads/${pr.head.ref}`,
156
- });
157
- }
158
- catch {
159
- // Branch deletion failure is not critical
160
- }
161
- }
162
- return true;
163
- }
164
- catch (error) {
165
- return false;
166
- }
108
+ const platform = getGitHubPlatform();
109
+ return platform.mergePullRequest(owner, repo, pullNumber, options);
167
110
  }
168
111
  /**
169
112
  * Get full linked PR information
113
+ * @deprecated Use linker.getLinkedPRInfo() with RepoInfo instead
170
114
  */
171
115
  export async function getLinkedPRInfo(owner, repo, pullNumber, repoName) {
172
- const pr = await getPullRequest(owner, repo, pullNumber);
173
- const approved = await isPullRequestApproved(owner, repo, pullNumber);
174
- const checks = await getStatusChecks(owner, repo, pr.head.sha);
116
+ const platform = getGitHubPlatform();
117
+ const pr = await platform.getPullRequest(owner, repo, pullNumber);
118
+ const approved = await platform.isPullRequestApproved(owner, repo, pullNumber);
119
+ const checks = await platform.getStatusChecks(owner, repo, pr.head.sha);
175
120
  let state;
176
121
  if (pr.merged) {
177
122
  state = 'merged';
@@ -189,35 +134,27 @@ export async function getLinkedPRInfo(owner, repo, pullNumber, repoName) {
189
134
  approved,
190
135
  checksPass: checks.state === 'success',
191
136
  mergeable: pr.mergeable ?? false,
137
+ platformType: 'github',
192
138
  };
193
139
  }
194
140
  /**
195
141
  * Find PRs with a specific branch name
142
+ * @deprecated Use getPlatformAdapter(repoInfo.platformType).findPRByBranch() instead
196
143
  */
197
144
  export async function findPRByBranch(owner, repo, branch) {
198
- const octokit = getOctokit();
199
- const response = await octokit.pulls.list({
200
- owner,
201
- repo,
202
- head: `${owner}:${branch}`,
203
- state: 'open',
204
- });
205
- if (response.data.length > 0) {
206
- return {
207
- number: response.data[0].number,
208
- url: response.data[0].html_url,
209
- };
210
- }
211
- return null;
145
+ const platform = getGitHubPlatform();
146
+ return platform.findPRByBranch(owner, repo, branch);
212
147
  }
213
148
  /**
214
149
  * Create PRs for all repos with changes
150
+ * @deprecated Use the new multi-platform PR creation flow
215
151
  */
216
152
  export async function createLinkedPRs(repos, branchName, options, manifestPRNumber) {
153
+ const platform = getGitHubPlatform();
217
154
  const linkedPRs = [];
218
155
  for (const repo of repos) {
219
156
  // Check if PR already exists
220
- const existing = await findPRByBranch(repo.owner, repo.repo, branchName);
157
+ const existing = await platform.findPRByBranch(repo.owner, repo.repo, branchName);
221
158
  if (existing) {
222
159
  const info = await getLinkedPRInfo(repo.owner, repo.repo, existing.number, repo.name);
223
160
  linkedPRs.push(info);
@@ -232,7 +169,7 @@ export async function createLinkedPRs(repos, branchName, options, manifestPRNumb
232
169
  if (manifestPRNumber) {
233
170
  body = `Part of manifest PR #${manifestPRNumber}\n\n${body}`;
234
171
  }
235
- const pr = await createPullRequest(repo.owner, repo.repo, branchName, options.base ?? repo.default_branch, title, body, options.draft);
172
+ const pr = await platform.createPullRequest(repo.owner, repo.repo, branchName, options.base ?? repo.default_branch, title, body, options.draft);
236
173
  const info = await getLinkedPRInfo(repo.owner, repo.repo, pr.number, repo.name);
237
174
  linkedPRs.push(info);
238
175
  }
@@ -240,6 +177,7 @@ export async function createLinkedPRs(repos, branchName, options, manifestPRNumb
240
177
  }
241
178
  /**
242
179
  * Generate manifest PR body with linked PR table
180
+ * @deprecated Use linker.generateManifestPRBody() instead
243
181
  */
244
182
  export function generateManifestPRBody(title, linkedPRs, additionalBody) {
245
183
  const prTable = linkedPRs
@@ -269,6 +207,7 @@ ${prTable}
269
207
  }
270
208
  /**
271
209
  * Parse linked PRs from manifest PR body
210
+ * @deprecated Use linker.parseLinkedPRsFromBody() instead
272
211
  */
273
212
  export function parseLinkedPRsFromBody(body) {
274
213
  const match = body.match(/<!-- codi-repo:links:(.+?) -->/);
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
@@ -17,21 +17,36 @@ export declare function getManifestPRForBranch(rootDir: string, branchName: stri
17
17
  */
18
18
  export declare function getLinkedPRsFromState(rootDir: string, manifestPRNumber: number): Promise<LinkedPR[] | undefined>;
19
19
  /**
20
- * Refresh linked PR status from GitHub
20
+ * Get linked PR info using the appropriate platform adapter
21
+ */
22
+ export declare function getLinkedPRInfo(repoInfo: RepoInfo, prNumber: number): Promise<LinkedPR>;
23
+ /**
24
+ * Refresh linked PR status from their respective platforms
21
25
  */
22
26
  export declare function refreshLinkedPRStatus(manifest: Manifest, rootDir: string, linkedPRs: LinkedPR[]): Promise<LinkedPR[]>;
23
27
  /**
24
28
  * Get full manifest PR info with refreshed linked PR status
25
29
  */
26
- export declare function getManifestPRInfo(manifest: Manifest, rootDir: string, manifestOwner: string, manifestRepo: string, manifestPRNumber: number): Promise<ManifestPR>;
30
+ export declare function getManifestPRInfo(manifest: Manifest, rootDir: string, manifestRepoInfo: RepoInfo, manifestPRNumber: number): Promise<ManifestPR>;
31
+ /**
32
+ * Generate manifest PR body with linked PR table
33
+ */
34
+ export declare function generateManifestPRBody(title: string, linkedPRs: LinkedPR[], additionalBody?: string): string;
35
+ /**
36
+ * Parse linked PRs from manifest PR body (platform-agnostic)
37
+ */
38
+ export declare function parseLinkedPRsFromBody(body: string): {
39
+ repoName: string;
40
+ number: number;
41
+ }[];
27
42
  /**
28
43
  * Update manifest PR body with current linked PR status
29
44
  */
30
- export declare function syncManifestPRBody(manifest: Manifest, rootDir: string, manifestOwner: string, manifestRepo: string, manifestPRNumber: number): Promise<void>;
45
+ export declare function syncManifestPRBody(manifest: Manifest, rootDir: string, manifestRepoInfo: RepoInfo, manifestPRNumber: number): Promise<void>;
31
46
  /**
32
47
  * Merge all linked PRs in order, then merge manifest PR
33
48
  */
34
- export declare function mergeAllLinkedPRs(manifest: Manifest, rootDir: string, manifestOwner: string, manifestRepo: string, manifestPRNumber: number, options?: {
49
+ export declare function mergeAllLinkedPRs(manifest: Manifest, rootDir: string, manifestRepoInfo: RepoInfo, manifestPRNumber: number, options?: {
35
50
  method?: 'merge' | 'squash' | 'rebase';
36
51
  deleteBranch?: boolean;
37
52
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"linker.d.ts","sourceRoot":"","sources":["../../src/lib/linker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAa,MAAM,aAAa,CAAC;AAW7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG7B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAGjC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAerB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,CAAC,CAmDrB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/E,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,CAAC,CA4ED;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgBjD"}
1
+ {"version":3,"file":"linker.d.ts","sourceRoot":"","sources":["../../src/lib/linker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAG7B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAGjC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,CAAC,CAyBnB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAerB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,QAAQ,EAC1B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,CAAC,CAoDrB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,QAAQ,EAAE,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CA4BR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAY3F;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,QAAQ,EAC1B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,QAAQ,EAC1B,gBAAgB,EAAE,MAAM,EACxB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/E,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,CAAC,CA6FD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,QAAQ,EAAE,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgBjD"}
@@ -1,4 +1,4 @@
1
- import { getLinkedPRInfo, getPullRequest, updatePullRequestBody, generateManifestPRBody, parseLinkedPRsFromBody, mergePullRequest, } from './github.js';
1
+ import { getPlatformAdapter } from './platform/index.js';
2
2
  import { loadState, saveState, getAllRepoInfo } from './manifest.js';
3
3
  /**
4
4
  * Link a branch to a manifest PR in state
@@ -32,7 +32,35 @@ export async function getLinkedPRsFromState(rootDir, manifestPRNumber) {
32
32
  return state.prLinks[manifestPRNumber];
33
33
  }
34
34
  /**
35
- * Refresh linked PR status from GitHub
35
+ * Get linked PR info using the appropriate platform adapter
36
+ */
37
+ export async function getLinkedPRInfo(repoInfo, prNumber) {
38
+ const platform = getPlatformAdapter(repoInfo.platformType, repoInfo.platform);
39
+ const pr = await platform.getPullRequest(repoInfo.owner, repoInfo.repo, prNumber);
40
+ const approved = await platform.isPullRequestApproved(repoInfo.owner, repoInfo.repo, prNumber);
41
+ const checks = await platform.getStatusChecks(repoInfo.owner, repoInfo.repo, pr.head.sha);
42
+ let state;
43
+ if (pr.merged) {
44
+ state = 'merged';
45
+ }
46
+ else {
47
+ state = pr.state;
48
+ }
49
+ return {
50
+ repoName: repoInfo.name,
51
+ owner: repoInfo.owner,
52
+ repo: repoInfo.repo,
53
+ number: pr.number,
54
+ url: pr.url,
55
+ state,
56
+ approved,
57
+ checksPass: checks.state === 'success',
58
+ mergeable: pr.mergeable ?? false,
59
+ platformType: repoInfo.platformType,
60
+ };
61
+ }
62
+ /**
63
+ * Refresh linked PR status from their respective platforms
36
64
  */
37
65
  export async function refreshLinkedPRStatus(manifest, rootDir, linkedPRs) {
38
66
  const repos = getAllRepoInfo(manifest, rootDir);
@@ -42,17 +70,18 @@ export async function refreshLinkedPRStatus(manifest, rootDir, linkedPRs) {
42
70
  if (!repoInfo) {
43
71
  return pr; // Keep old info if repo not found
44
72
  }
45
- return getLinkedPRInfo(repoInfo.owner, repoInfo.repo, pr.number, pr.repoName);
73
+ return getLinkedPRInfo(repoInfo, pr.number);
46
74
  }));
47
75
  return refreshed;
48
76
  }
49
77
  /**
50
78
  * Get full manifest PR info with refreshed linked PR status
51
79
  */
52
- export async function getManifestPRInfo(manifest, rootDir, manifestOwner, manifestRepo, manifestPRNumber) {
53
- const pr = await getPullRequest(manifestOwner, manifestRepo, manifestPRNumber);
80
+ export async function getManifestPRInfo(manifest, rootDir, manifestRepoInfo, manifestPRNumber) {
81
+ const platform = getPlatformAdapter(manifestRepoInfo.platformType, manifestRepoInfo.platform);
82
+ const pr = await platform.getPullRequest(manifestRepoInfo.owner, manifestRepoInfo.repo, manifestPRNumber);
54
83
  // Parse linked PRs from body
55
- const parsedLinks = parseLinkedPRsFromBody(pr.body);
84
+ const parsedLinks = platform.parseLinkedPRComment(pr.body);
56
85
  const repos = getAllRepoInfo(manifest, rootDir);
57
86
  const repoMap = new Map(repos.map((r) => [r.name, r]));
58
87
  // Get fresh status for each linked PR
@@ -72,7 +101,7 @@ export async function getManifestPRInfo(manifest, rootDir, manifestOwner, manife
72
101
  mergeable: false,
73
102
  };
74
103
  }
75
- return getLinkedPRInfo(repoInfo.owner, repoInfo.repo, number, repoName);
104
+ return getLinkedPRInfo(repoInfo, number);
76
105
  }));
77
106
  // Determine overall state
78
107
  let state;
@@ -94,23 +123,69 @@ export async function getManifestPRInfo(manifest, rootDir, manifestOwner, manife
94
123
  readyToMerge,
95
124
  };
96
125
  }
126
+ /**
127
+ * Generate manifest PR body with linked PR table
128
+ */
129
+ export function generateManifestPRBody(title, linkedPRs, additionalBody) {
130
+ const prTable = linkedPRs
131
+ .map((pr) => {
132
+ const statusIcon = pr.state === 'merged' ? ':white_check_mark:' : pr.state === 'open' ? ':hourglass:' : ':x:';
133
+ const approvalIcon = pr.approved ? ':white_check_mark:' : ':hourglass:';
134
+ const checksIcon = pr.checksPass ? ':white_check_mark:' : ':hourglass:';
135
+ return `| ${pr.repoName} | [#${pr.number}](${pr.url}) | ${statusIcon} ${pr.state} | ${approvalIcon} | ${checksIcon} |`;
136
+ })
137
+ .join('\n');
138
+ // Generate linked PR comment (platform-agnostic format)
139
+ const prLinks = linkedPRs.map((pr) => `${pr.repoName}#${pr.number}`).join(',');
140
+ return `## Cross-Repository PR
141
+
142
+ ${additionalBody ?? ''}
143
+
144
+ ### Linked Pull Requests
145
+
146
+ | Repository | PR | Status | Approved | Checks |
147
+ |------------|-----|--------|----------|--------|
148
+ ${prTable}
149
+
150
+ **Merge Policy:** All-or-nothing - all linked PRs must be approved before merge.
151
+
152
+ ---
153
+ <!-- codi-repo:links:${prLinks} -->
154
+ `;
155
+ }
156
+ /**
157
+ * Parse linked PRs from manifest PR body (platform-agnostic)
158
+ */
159
+ export function parseLinkedPRsFromBody(body) {
160
+ const match = body.match(/<!-- codi-repo:links:(.+?) -->/);
161
+ if (!match) {
162
+ return [];
163
+ }
164
+ const links = match[1].split(',');
165
+ return links.map((link) => {
166
+ // Handle both # (GitHub) and ! (GitLab) separators
167
+ const [repoName, numStr] = link.split(/[#!]/);
168
+ return { repoName, number: parseInt(numStr, 10) };
169
+ });
170
+ }
97
171
  /**
98
172
  * Update manifest PR body with current linked PR status
99
173
  */
100
- export async function syncManifestPRBody(manifest, rootDir, manifestOwner, manifestRepo, manifestPRNumber) {
101
- const manifestPR = await getManifestPRInfo(manifest, rootDir, manifestOwner, manifestRepo, manifestPRNumber);
174
+ export async function syncManifestPRBody(manifest, rootDir, manifestRepoInfo, manifestPRNumber) {
175
+ const manifestPR = await getManifestPRInfo(manifest, rootDir, manifestRepoInfo, manifestPRNumber);
176
+ const platform = getPlatformAdapter(manifestRepoInfo.platformType, manifestRepoInfo.platform);
102
177
  // Get original PR for title
103
- const pr = await getPullRequest(manifestOwner, manifestRepo, manifestPRNumber);
178
+ const pr = await platform.getPullRequest(manifestRepoInfo.owner, manifestRepoInfo.repo, manifestPRNumber);
104
179
  // Generate updated body
105
180
  const newBody = generateManifestPRBody(pr.title, manifestPR.linkedPRs);
106
181
  // Update PR
107
- await updatePullRequestBody(manifestOwner, manifestRepo, manifestPRNumber, newBody);
182
+ await platform.updatePullRequestBody(manifestRepoInfo.owner, manifestRepoInfo.repo, manifestPRNumber, newBody);
108
183
  }
109
184
  /**
110
185
  * Merge all linked PRs in order, then merge manifest PR
111
186
  */
112
- export async function mergeAllLinkedPRs(manifest, rootDir, manifestOwner, manifestRepo, manifestPRNumber, options = {}) {
113
- const manifestPR = await getManifestPRInfo(manifest, rootDir, manifestOwner, manifestRepo, manifestPRNumber);
187
+ export async function mergeAllLinkedPRs(manifest, rootDir, manifestRepoInfo, manifestPRNumber, options = {}) {
188
+ const manifestPR = await getManifestPRInfo(manifest, rootDir, manifestRepoInfo, manifestPRNumber);
114
189
  if (!manifestPR.readyToMerge) {
115
190
  const notReady = manifestPR.linkedPRs.find((p) => !p.approved || !p.checksPass || !p.mergeable || p.state !== 'open');
116
191
  return {
@@ -131,10 +206,25 @@ export async function mergeAllLinkedPRs(manifest, rootDir, manifestOwner, manife
131
206
  : undefined,
132
207
  };
133
208
  }
209
+ const repos = getAllRepoInfo(manifest, rootDir);
210
+ const repoMap = new Map(repos.map((r) => [r.name, r]));
134
211
  const mergedPRs = [];
135
- // Merge each linked PR
212
+ // Merge each linked PR using the appropriate platform
136
213
  for (const linkedPR of manifestPR.linkedPRs) {
137
- const merged = await mergePullRequest(linkedPR.owner, linkedPR.repo, linkedPR.number, options);
214
+ const repoInfo = repoMap.get(linkedPR.repoName);
215
+ if (!repoInfo) {
216
+ return {
217
+ success: false,
218
+ mergedPRs,
219
+ failedPR: {
220
+ repoName: linkedPR.repoName,
221
+ number: linkedPR.number,
222
+ error: 'Repository not found in manifest',
223
+ },
224
+ };
225
+ }
226
+ const platform = getPlatformAdapter(repoInfo.platformType, repoInfo.platform);
227
+ const merged = await platform.mergePullRequest(linkedPR.owner, linkedPR.repo, linkedPR.number, options);
138
228
  if (!merged) {
139
229
  return {
140
230
  success: false,
@@ -149,7 +239,8 @@ export async function mergeAllLinkedPRs(manifest, rootDir, manifestOwner, manife
149
239
  mergedPRs.push({ repoName: linkedPR.repoName, number: linkedPR.number });
150
240
  }
151
241
  // Merge manifest PR
152
- const manifestMerged = await mergePullRequest(manifestOwner, manifestRepo, manifestPRNumber, options);
242
+ const manifestPlatform = getPlatformAdapter(manifestRepoInfo.platformType, manifestRepoInfo.platform);
243
+ const manifestMerged = await manifestPlatform.mergePullRequest(manifestRepoInfo.owner, manifestRepoInfo.repo, manifestPRNumber, options);
153
244
  if (!manifestMerged) {
154
245
  return {
155
246
  success: false,
@@ -1 +1 @@
1
- {"version":3,"file":"linker.js","sourceRoot":"","sources":["../../src/lib/linker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linker.js","sourceRoot":"","sources":["../../src/lib/linker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGrE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,UAAkB,EAClB,gBAAwB;IAExB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC;IAChD,KAAK,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;IAC3C,MAAM,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,gBAAwB,EACxB,SAAqB;IAErB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IAC5C,MAAM,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,UAAkB;IAElB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,gBAAwB;IAExB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/F,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1F,IAAI,KAAmC,CAAC;IACxC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACd,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,GAAG,EAAE,EAAE,CAAC,GAAG;QACX,KAAK;QACL,QAAQ;QACR,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS;QACtC,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,KAAK;QAChC,YAAY,EAAE,QAAQ,CAAC,YAAY;KACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAkB,EAClB,OAAe,EACf,SAAqB;IAErB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,CAAC,CAAC,kCAAkC;QAC/C,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAkB,EAClB,OAAe,EACf,gBAA0B,EAC1B,gBAAwB;IAExB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9F,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAE1G,6BAA6B;IAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvD,sCAAsC;IACtC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,6CAA6C;YAC7C,OAAO;gBACL,QAAQ;gBACR,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,EAAE;gBACR,MAAM;gBACN,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,QAAiB;gBACxB,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC,CAAC,CACH,CAAC;IAEF,0BAA0B;IAC1B,IAAI,KAAmC,CAAC;IACxC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;QACd,KAAK,GAAG,QAAQ,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,oEAAoE;IACpE,MAAM,YAAY,GAChB,KAAK,KAAK,MAAM;QAChB,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;IAE1F,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,GAAG,EAAE,EAAE,CAAC,GAAG;QACX,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,SAAS;QACT,KAAK;QACL,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,SAAqB,EACrB,cAAuB;IAEvB,MAAM,OAAO,GAAG,SAAS;SACtB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACV,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9G,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC;QACxE,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,CAAC;QACxE,OAAO,KAAK,EAAE,CAAC,QAAQ,QAAQ,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG,OAAO,UAAU,IAAI,EAAE,CAAC,KAAK,MAAM,YAAY,MAAM,UAAU,IAAI,CAAC;IACzH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,wDAAwD;IACxD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/E,OAAO;;EAEP,cAAc,IAAI,EAAE;;;;;;EAMpB,OAAO;;;;;uBAKc,OAAO;CAC7B,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,mDAAmD;QACnD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAkB,EAClB,OAAe,EACf,gBAA0B,EAC1B,gBAAwB;IAExB,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACxC,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;IAEF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE9F,4BAA4B;IAC5B,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAE1G,wBAAwB;IACxB,MAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAEvE,YAAY;IACZ,MAAM,QAAQ,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACjH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAkB,EAClB,OAAe,EACf,gBAA0B,EAC1B,gBAAwB,EACxB,UAA8E,EAAE;IAMhF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACxC,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAC1E,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,QAAQ;gBAChB,CAAC,CAAC;oBACE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ;wBACvB,CAAC,CAAC,cAAc;wBAChB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU;4BACpB,CAAC,CAAC,oBAAoB;4BACtB,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS;gCACnB,CAAC,CAAC,eAAe;gCACjB,CAAC,CAAC,aAAa;iBACtB;gBACH,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvD,MAAM,SAAS,GAA2C,EAAE,CAAC;IAE7D,sDAAsD;IACtD,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS;gBACT,QAAQ,EAAE;oBACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,KAAK,EAAE,kCAAkC;iBAC1C;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxG,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS;gBACT,QAAQ,EAAE;oBACR,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,KAAK,EAAE,cAAc;iBACtB;aACF,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACtG,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAC5D,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,IAAI,EACrB,gBAAgB,EAChB,OAAO,CACR,CAAC;IACF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS;YACT,QAAQ,EAAE;gBACR,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,0BAA0B;aAClC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEnE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAiB,EACjB,UAAkB;IAElB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACjE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpE,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;QAC5B,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Manifest, RepoInfo, StateFile, GitHubRepoInfo } from '../types.js';
1
+ import type { Manifest, RepoInfo, StateFile, GitHubRepoInfo, PlatformType, ParsedRepoInfo } from '../types.js';
2
2
  /**
3
3
  * Get the path to the gitgrip directory (.gitgrip)
4
4
  */
@@ -30,8 +30,19 @@ export declare function loadManifest(manifestPath?: string): Promise<{
30
30
  export declare function createManifest(manifestsDir: string, manifest: Manifest): Promise<void>;
31
31
  /**
32
32
  * Parse GitHub owner/repo from a git URL
33
+ * @deprecated Use parseRepoUrl for multi-platform support
33
34
  */
34
35
  export declare function parseGitHubUrl(url: string): GitHubRepoInfo;
36
+ /**
37
+ * Parse repository info from a git URL (supports GitHub, GitLab, Azure DevOps)
38
+ */
39
+ export declare function parseRepoUrl(url: string): ParsedRepoInfo;
40
+ /**
41
+ * Detect platform type from URL or config
42
+ */
43
+ export declare function getPlatformType(url: string, configPlatform?: {
44
+ type: PlatformType;
45
+ }): PlatformType;
35
46
  /**
36
47
  * Get full repo info with computed fields
37
48
  */