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.
- package/README.md +75 -1
- package/dist/commands/pr/create.d.ts.map +1 -1
- package/dist/commands/pr/create.js +29 -8
- package/dist/commands/pr/create.js.map +1 -1
- package/dist/commands/pr/merge.d.ts.map +1 -1
- package/dist/commands/pr/merge.js +40 -33
- package/dist/commands/pr/merge.js.map +1 -1
- package/dist/commands/pr/status.d.ts.map +1 -1
- package/dist/commands/pr/status.js +15 -11
- package/dist/commands/pr/status.js.map +1 -1
- package/dist/lib/github.d.ts +28 -4
- package/dist/lib/github.d.ts.map +1 -1
- package/dist/lib/github.js +65 -126
- package/dist/lib/github.js.map +1 -1
- package/dist/lib/linker.d.ts +19 -4
- package/dist/lib/linker.d.ts.map +1 -1
- package/dist/lib/linker.js +107 -16
- package/dist/lib/linker.js.map +1 -1
- package/dist/lib/manifest.d.ts +12 -1
- package/dist/lib/manifest.d.ts.map +1 -1
- package/dist/lib/manifest.js +45 -5
- package/dist/lib/manifest.js.map +1 -1
- package/dist/lib/platform/azure-devops.d.ts +83 -0
- package/dist/lib/platform/azure-devops.d.ts.map +1 -0
- package/dist/lib/platform/azure-devops.js +378 -0
- package/dist/lib/platform/azure-devops.js.map +1 -0
- package/dist/lib/platform/github.d.ts +82 -0
- package/dist/lib/platform/github.d.ts.map +1 -0
- package/dist/lib/platform/github.js +285 -0
- package/dist/lib/platform/github.js.map +1 -0
- package/dist/lib/platform/gitlab.d.ts +82 -0
- package/dist/lib/platform/gitlab.d.ts.map +1 -0
- package/dist/lib/platform/gitlab.js +331 -0
- package/dist/lib/platform/gitlab.js.map +1 -0
- package/dist/lib/platform/index.d.ts +60 -0
- package/dist/lib/platform/index.d.ts.map +1 -0
- package/dist/lib/platform/index.js +132 -0
- package/dist/lib/platform/index.js.map +1 -0
- package/dist/lib/platform/types.d.ts +162 -0
- package/dist/lib/platform/types.d.ts.map +1 -0
- package/dist/lib/platform/types.js +5 -0
- package/dist/lib/platform/types.js.map +1 -0
- package/dist/types.d.ts +39 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -1
package/dist/lib/github.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIvF
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/github.js
CHANGED
|
@@ -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
|
|
39
|
-
|
|
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
|
|
58
|
-
|
|
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
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
77
|
-
|
|
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
|
|
97
|
-
|
|
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
|
|
112
|
-
|
|
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
|
|
122
|
-
|
|
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
|
|
140
|
-
|
|
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
|
|
173
|
-
const
|
|
174
|
-
const
|
|
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
|
|
199
|
-
|
|
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:(.+?) -->/);
|
package/dist/lib/github.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/linker.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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,
|
|
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,
|
|
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,
|
|
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<{
|
package/dist/lib/linker.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/lib/linker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
*
|
|
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
|
|
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,
|
|
53
|
-
const
|
|
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 =
|
|
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
|
|
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,
|
|
101
|
-
const manifestPR = await getManifestPRInfo(manifest, rootDir,
|
|
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(
|
|
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(
|
|
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,
|
|
113
|
-
const manifestPR = await getManifestPRInfo(manifest, rootDir,
|
|
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
|
|
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
|
|
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,
|
package/dist/lib/linker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linker.js","sourceRoot":"","sources":["../../src/lib/linker.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"linker.js","sourceRoot":"","sources":["../../src/lib/linker.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/manifest.d.ts
CHANGED
|
@@ -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
|
*/
|