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/README.md
CHANGED
|
@@ -21,6 +21,7 @@ Inspired by Android's [repo tool](https://source.android.com/docs/setup/create/r
|
|
|
21
21
|
## Features
|
|
22
22
|
|
|
23
23
|
- **Manifest-based configuration** - Define all your repos in a single YAML file
|
|
24
|
+
- **Multi-platform support** - Works with GitHub, GitLab, and Azure DevOps (even mixed in one workspace)
|
|
24
25
|
- **Synchronized branches** - Create and checkout branches across all repos at once
|
|
25
26
|
- **Linked PRs** - Create pull requests that reference each other across repos
|
|
26
27
|
- **Atomic merges** - All-or-nothing merge strategy ensures repos stay in sync
|
|
@@ -200,6 +201,76 @@ settings:
|
|
|
200
201
|
- **all-or-nothing** - All linked PRs must be approved before any can merge
|
|
201
202
|
- **independent** - PRs can be merged independently
|
|
202
203
|
|
|
204
|
+
## Multi-Platform Support
|
|
205
|
+
|
|
206
|
+
gitgrip supports multiple hosting platforms. The platform is auto-detected from the repository URL.
|
|
207
|
+
|
|
208
|
+
### Supported Platforms
|
|
209
|
+
|
|
210
|
+
| Platform | URL Patterns |
|
|
211
|
+
|----------|--------------|
|
|
212
|
+
| GitHub | `git@github.com:org/repo.git`, `https://github.com/org/repo.git` |
|
|
213
|
+
| GitLab | `git@gitlab.com:group/repo.git`, `https://gitlab.com/group/repo.git` |
|
|
214
|
+
| Azure DevOps | `git@ssh.dev.azure.com:v3/org/project/repo`, `https://dev.azure.com/org/project/_git/repo` |
|
|
215
|
+
|
|
216
|
+
### Authentication
|
|
217
|
+
|
|
218
|
+
Each platform requires its own authentication:
|
|
219
|
+
|
|
220
|
+
**GitHub:**
|
|
221
|
+
```bash
|
|
222
|
+
export GITHUB_TOKEN=your-token
|
|
223
|
+
# or
|
|
224
|
+
gh auth login
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**GitLab:**
|
|
228
|
+
```bash
|
|
229
|
+
export GITLAB_TOKEN=your-token
|
|
230
|
+
# or
|
|
231
|
+
glab auth login
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Azure DevOps:**
|
|
235
|
+
```bash
|
|
236
|
+
export AZURE_DEVOPS_TOKEN=your-pat
|
|
237
|
+
# or
|
|
238
|
+
az login
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Mixed-Platform Workspaces
|
|
242
|
+
|
|
243
|
+
A single manifest can contain repos from different platforms:
|
|
244
|
+
|
|
245
|
+
```yaml
|
|
246
|
+
repos:
|
|
247
|
+
frontend:
|
|
248
|
+
url: git@github.com:org/frontend.git
|
|
249
|
+
path: ./frontend
|
|
250
|
+
|
|
251
|
+
backend:
|
|
252
|
+
url: git@gitlab.com:org/backend.git
|
|
253
|
+
path: ./backend
|
|
254
|
+
|
|
255
|
+
infra:
|
|
256
|
+
url: https://dev.azure.com/org/project/_git/infra
|
|
257
|
+
path: ./infra
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Self-Hosted Instances
|
|
261
|
+
|
|
262
|
+
For GitHub Enterprise, GitLab self-hosted, or Azure DevOps Server, add a `platform` config:
|
|
263
|
+
|
|
264
|
+
```yaml
|
|
265
|
+
repos:
|
|
266
|
+
internal:
|
|
267
|
+
url: git@gitlab.company.com:team/repo.git
|
|
268
|
+
path: ./internal
|
|
269
|
+
platform:
|
|
270
|
+
type: gitlab
|
|
271
|
+
baseUrl: https://gitlab.company.com
|
|
272
|
+
```
|
|
273
|
+
|
|
203
274
|
## Shorthand
|
|
204
275
|
|
|
205
276
|
Use `gr` as the primary command:
|
|
@@ -216,7 +287,10 @@ The long form `gitgrip` also works.
|
|
|
216
287
|
|
|
217
288
|
- Node.js >= 18.0.0
|
|
218
289
|
- Git
|
|
219
|
-
-
|
|
290
|
+
- Platform CLI (optional, for token auth fallback):
|
|
291
|
+
- GitHub: `gh` CLI
|
|
292
|
+
- GitLab: `glab` CLI
|
|
293
|
+
- Azure DevOps: `az` CLI
|
|
220
294
|
|
|
221
295
|
## License
|
|
222
296
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/create.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/create.ts"],"names":[],"mappings":"AAgBA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgQzE"}
|
|
@@ -3,7 +3,8 @@ import ora from 'ora';
|
|
|
3
3
|
import inquirer from 'inquirer';
|
|
4
4
|
import { loadManifest, getAllRepoInfo, loadState, saveState, getManifestRepoInfo } from '../../lib/manifest.js';
|
|
5
5
|
import { pathExists, getCurrentBranch, hasCommitsAhead, pushBranch, remoteBranchExists, isGitRepo, } from '../../lib/git.js';
|
|
6
|
-
import {
|
|
6
|
+
import { getPlatformAdapter } from '../../lib/platform/index.js';
|
|
7
|
+
import { generateManifestPRBody, getLinkedPRInfo } from '../../lib/linker.js';
|
|
7
8
|
/**
|
|
8
9
|
* Create linked PRs across all repositories with changes
|
|
9
10
|
*/
|
|
@@ -75,10 +76,12 @@ export async function createPR(options = {}) {
|
|
|
75
76
|
const totalChanges = withChanges.length + (manifestHasChanges ? 1 : 0);
|
|
76
77
|
console.log(`Found changes in ${totalChanges} repos:`);
|
|
77
78
|
for (const { repo } of withChanges) {
|
|
78
|
-
|
|
79
|
+
const platformLabel = repo.platformType !== 'github' ? ` (${repo.platformType})` : '';
|
|
80
|
+
console.log(` ${chalk.green('•')} ${repo.name}${chalk.dim(platformLabel)}`);
|
|
79
81
|
}
|
|
80
82
|
if (manifestHasChanges && manifestInfo) {
|
|
81
|
-
|
|
83
|
+
const platformLabel = manifestInfo.platformType !== 'github' ? ` (${manifestInfo.platformType})` : '';
|
|
84
|
+
console.log(` ${chalk.green('•')} ${manifestInfo.name}${chalk.dim(platformLabel)}`);
|
|
82
85
|
}
|
|
83
86
|
console.log('');
|
|
84
87
|
// Check if any need to be pushed first (including manifest)
|
|
@@ -151,15 +154,30 @@ export async function createPR(options = {}) {
|
|
|
151
154
|
draft: options.draft,
|
|
152
155
|
base: options.base,
|
|
153
156
|
};
|
|
154
|
-
// Create PRs in each repo
|
|
155
|
-
const linkedPRs =
|
|
157
|
+
// Create PRs in each repo using their respective platforms
|
|
158
|
+
const linkedPRs = [];
|
|
159
|
+
for (const repo of reposForPR) {
|
|
160
|
+
const platform = getPlatformAdapter(repo.platformType, repo.platform);
|
|
161
|
+
// Check if PR already exists
|
|
162
|
+
const existing = await platform.findPRByBranch(repo.owner, repo.repo, branchName);
|
|
163
|
+
if (existing) {
|
|
164
|
+
const info = await getLinkedPRInfo(repo, existing.number);
|
|
165
|
+
linkedPRs.push(info);
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
// Create PR
|
|
169
|
+
const pr = await platform.createPullRequest(repo.owner, repo.repo, branchName, prOptions.base ?? repo.default_branch, prOptions.title, prOptions.body ?? '', prOptions.draft);
|
|
170
|
+
const info = await getLinkedPRInfo(repo, pr.number);
|
|
171
|
+
linkedPRs.push(info);
|
|
172
|
+
}
|
|
156
173
|
// Create manifest PR if manifest has changes
|
|
157
174
|
let manifestPR = null;
|
|
158
175
|
if (manifestHasChanges && manifestInfo) {
|
|
159
176
|
try {
|
|
177
|
+
const manifestPlatform = getPlatformAdapter(manifestInfo.platformType, manifestInfo.platform);
|
|
160
178
|
// Generate manifest PR body with linked PR table
|
|
161
179
|
const manifestBody = generateManifestPRBody(title, linkedPRs, body);
|
|
162
|
-
const manifestPRResult = await createPullRequest(manifestInfo.owner, manifestInfo.repo, branchName, manifestInfo.default_branch, title, manifestBody, options.draft);
|
|
180
|
+
const manifestPRResult = await manifestPlatform.createPullRequest(manifestInfo.owner, manifestInfo.repo, branchName, manifestInfo.default_branch, title, manifestBody, options.draft);
|
|
163
181
|
manifestPR = {
|
|
164
182
|
repoName: manifestInfo.name,
|
|
165
183
|
owner: manifestInfo.owner,
|
|
@@ -170,6 +188,7 @@ export async function createPR(options = {}) {
|
|
|
170
188
|
approved: false,
|
|
171
189
|
checksPass: true,
|
|
172
190
|
mergeable: true,
|
|
191
|
+
platformType: manifestInfo.platformType,
|
|
173
192
|
};
|
|
174
193
|
}
|
|
175
194
|
catch (error) {
|
|
@@ -181,10 +200,12 @@ export async function createPR(options = {}) {
|
|
|
181
200
|
// Display results
|
|
182
201
|
console.log(chalk.green('Created PRs:'));
|
|
183
202
|
for (const pr of linkedPRs) {
|
|
184
|
-
|
|
203
|
+
const platformLabel = pr.platformType && pr.platformType !== 'github' ? ` (${pr.platformType})` : '';
|
|
204
|
+
console.log(` ${pr.repoName}${chalk.dim(platformLabel)}: ${chalk.cyan(pr.url)}`);
|
|
185
205
|
}
|
|
186
206
|
if (manifestPR) {
|
|
187
|
-
|
|
207
|
+
const platformLabel = manifestPR.platformType && manifestPR.platformType !== 'github' ? ` (${manifestPR.platformType})` : '';
|
|
208
|
+
console.log(` ${manifestPR.repoName}${chalk.dim(platformLabel)}: ${chalk.cyan(manifestPR.url)}`);
|
|
188
209
|
}
|
|
189
210
|
// Generate a summary for the user
|
|
190
211
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/pr/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/pr/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/merge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/merge.ts"],"names":[],"mappings":"AASA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkMxE"}
|
|
@@ -3,7 +3,8 @@ import ora from 'ora';
|
|
|
3
3
|
import inquirer from 'inquirer';
|
|
4
4
|
import { loadManifest, getAllRepoInfo, getManifestRepoInfo } from '../../lib/manifest.js';
|
|
5
5
|
import { pathExists, getCurrentBranch, isGitRepo } from '../../lib/git.js';
|
|
6
|
-
import {
|
|
6
|
+
import { getPlatformAdapter } from '../../lib/platform/index.js';
|
|
7
|
+
import { getLinkedPRInfo } from '../../lib/linker.js';
|
|
7
8
|
/**
|
|
8
9
|
* Merge all PRs for current branch
|
|
9
10
|
*/
|
|
@@ -30,29 +31,31 @@ export async function mergePRs(options = {}) {
|
|
|
30
31
|
if (branch === repo.default_branch) {
|
|
31
32
|
return null;
|
|
32
33
|
}
|
|
33
|
-
const
|
|
34
|
+
const platform = getPlatformAdapter(repo.platformType, repo.platform);
|
|
35
|
+
const pr = await platform.findPRByBranch(repo.owner, repo.repo, branch);
|
|
34
36
|
if (!pr) {
|
|
35
37
|
return null;
|
|
36
38
|
}
|
|
37
|
-
const prInfo = await getLinkedPRInfo(repo
|
|
38
|
-
return { ...prInfo, branch };
|
|
39
|
+
const prInfo = await getLinkedPRInfo(repo, pr.number);
|
|
40
|
+
return { pr: { ...prInfo, branch }, repo };
|
|
39
41
|
}));
|
|
40
42
|
// Check for manifest PR too
|
|
41
43
|
const manifestInfo = getManifestRepoInfo(manifest, rootDir);
|
|
42
|
-
let
|
|
44
|
+
let manifestPREntry = null;
|
|
43
45
|
if (manifestInfo && await isGitRepo(manifestInfo.absolutePath)) {
|
|
44
46
|
const manifestBranch = await getCurrentBranch(manifestInfo.absolutePath);
|
|
45
47
|
if (manifestBranch !== manifestInfo.default_branch) {
|
|
46
|
-
const
|
|
48
|
+
const platform = getPlatformAdapter(manifestInfo.platformType, manifestInfo.platform);
|
|
49
|
+
const pr = await platform.findPRByBranch(manifestInfo.owner, manifestInfo.repo, manifestBranch);
|
|
47
50
|
if (pr) {
|
|
48
|
-
const prInfo = await getLinkedPRInfo(manifestInfo
|
|
49
|
-
|
|
51
|
+
const prInfo = await getLinkedPRInfo(manifestInfo, pr.number);
|
|
52
|
+
manifestPREntry = { pr: { ...prInfo, branch: manifestBranch }, repo: manifestInfo };
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
|
-
const prsToMerge = prResults.filter((
|
|
54
|
-
if (
|
|
55
|
-
prsToMerge.push(
|
|
56
|
+
const prsToMerge = prResults.filter((entry) => entry !== null);
|
|
57
|
+
if (manifestPREntry) {
|
|
58
|
+
prsToMerge.push(manifestPREntry);
|
|
56
59
|
}
|
|
57
60
|
spinner.stop();
|
|
58
61
|
if (prsToMerge.length === 0) {
|
|
@@ -60,24 +63,25 @@ export async function mergePRs(options = {}) {
|
|
|
60
63
|
return;
|
|
61
64
|
}
|
|
62
65
|
// Determine the branch name for display
|
|
63
|
-
const branches = [...new Set(prsToMerge.map(
|
|
66
|
+
const branches = [...new Set(prsToMerge.map(entry => entry.pr.branch))];
|
|
64
67
|
const branchDisplay = branches.length === 1 ? branches[0] : `${branches.length} branches`;
|
|
65
68
|
console.log(chalk.blue(`Merging PRs for branch: ${chalk.cyan(branchDisplay)}\n`));
|
|
66
69
|
// Check if all PRs are ready
|
|
67
|
-
const notReady = prsToMerge.filter((
|
|
70
|
+
const notReady = prsToMerge.filter((entry) => entry.pr.state !== 'open' || !entry.pr.approved || !entry.pr.checksPass || !entry.pr.mergeable);
|
|
68
71
|
if (notReady.length > 0 && !options.force) {
|
|
69
72
|
console.log(chalk.yellow('Some PRs are not ready to merge:\n'));
|
|
70
|
-
for (const
|
|
73
|
+
for (const entry of notReady) {
|
|
71
74
|
const issues = [];
|
|
72
|
-
if (pr.state !== 'open')
|
|
73
|
-
issues.push(`state: ${pr.state}`);
|
|
74
|
-
if (!pr.approved)
|
|
75
|
+
if (entry.pr.state !== 'open')
|
|
76
|
+
issues.push(`state: ${entry.pr.state}`);
|
|
77
|
+
if (!entry.pr.approved)
|
|
75
78
|
issues.push('not approved');
|
|
76
|
-
if (!pr.checksPass)
|
|
79
|
+
if (!entry.pr.checksPass)
|
|
77
80
|
issues.push('checks not passing');
|
|
78
|
-
if (!pr.mergeable)
|
|
81
|
+
if (!entry.pr.mergeable)
|
|
79
82
|
issues.push('not mergeable');
|
|
80
|
-
|
|
83
|
+
const platformLabel = entry.pr.platformType && entry.pr.platformType !== 'github' ? ` (${entry.pr.platformType})` : '';
|
|
84
|
+
console.log(` ${entry.pr.repoName}${chalk.dim(platformLabel)} #${entry.pr.number}: ${chalk.dim(issues.join(', '))}`);
|
|
81
85
|
}
|
|
82
86
|
console.log('');
|
|
83
87
|
console.log(chalk.dim('Use --force to merge anyway (not recommended).'));
|
|
@@ -85,9 +89,10 @@ export async function mergePRs(options = {}) {
|
|
|
85
89
|
}
|
|
86
90
|
// Show what will be merged
|
|
87
91
|
console.log('PRs to merge:');
|
|
88
|
-
for (const
|
|
89
|
-
const statusIcon = pr.approved && pr.checksPass ? chalk.green('✓') : chalk.yellow('⚠');
|
|
90
|
-
|
|
92
|
+
for (const entry of prsToMerge) {
|
|
93
|
+
const statusIcon = entry.pr.approved && entry.pr.checksPass ? chalk.green('✓') : chalk.yellow('⚠');
|
|
94
|
+
const platformLabel = entry.pr.platformType && entry.pr.platformType !== 'github' ? ` (${entry.pr.platformType})` : '';
|
|
95
|
+
console.log(` ${statusIcon} ${entry.pr.repoName}${chalk.dim(platformLabel)} #${entry.pr.number}`);
|
|
91
96
|
}
|
|
92
97
|
console.log('');
|
|
93
98
|
// Confirm unless --force
|
|
@@ -112,17 +117,19 @@ export async function mergePRs(options = {}) {
|
|
|
112
117
|
deleteBranch: options.deleteBranch ?? true,
|
|
113
118
|
};
|
|
114
119
|
const results = [];
|
|
115
|
-
for (const
|
|
116
|
-
const
|
|
120
|
+
for (const entry of prsToMerge) {
|
|
121
|
+
const platformLabel = entry.pr.platformType && entry.pr.platformType !== 'github' ? ` (${entry.pr.platformType})` : '';
|
|
122
|
+
const prSpinner = ora(`Merging ${entry.pr.repoName}${platformLabel} #${entry.pr.number}...`).start();
|
|
117
123
|
try {
|
|
118
|
-
const
|
|
124
|
+
const platform = getPlatformAdapter(entry.repo.platformType, entry.repo.platform);
|
|
125
|
+
const success = await platform.mergePullRequest(entry.pr.owner, entry.pr.repo, entry.pr.number, mergeOptions);
|
|
119
126
|
if (success) {
|
|
120
|
-
prSpinner.succeed(`${pr.repoName} #${pr.number}: merged`);
|
|
121
|
-
results.push({
|
|
127
|
+
prSpinner.succeed(`${entry.pr.repoName}${platformLabel} #${entry.pr.number}: merged`);
|
|
128
|
+
results.push({ entry, success: true });
|
|
122
129
|
}
|
|
123
130
|
else {
|
|
124
|
-
prSpinner.fail(`${pr.repoName} #${pr.number}: merge failed`);
|
|
125
|
-
results.push({
|
|
131
|
+
prSpinner.fail(`${entry.pr.repoName}${platformLabel} #${entry.pr.number}: merge failed`);
|
|
132
|
+
results.push({ entry, success: false, error: 'Merge API call failed' });
|
|
126
133
|
// Stop on first failure for all-or-nothing
|
|
127
134
|
if (manifest.settings.merge_strategy === 'all-or-nothing') {
|
|
128
135
|
console.log('');
|
|
@@ -133,8 +140,8 @@ export async function mergePRs(options = {}) {
|
|
|
133
140
|
}
|
|
134
141
|
catch (error) {
|
|
135
142
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
136
|
-
prSpinner.fail(`${pr.repoName} #${pr.number}: ${errorMsg}`);
|
|
137
|
-
results.push({
|
|
143
|
+
prSpinner.fail(`${entry.pr.repoName}${platformLabel} #${entry.pr.number}: ${errorMsg}`);
|
|
144
|
+
results.push({ entry, success: false, error: errorMsg });
|
|
138
145
|
if (manifest.settings.merge_strategy === 'all-or-nothing') {
|
|
139
146
|
console.log('');
|
|
140
147
|
console.log(chalk.red('Stopping due to merge failure (all-or-nothing merge strategy).'));
|
|
@@ -156,7 +163,7 @@ export async function mergePRs(options = {}) {
|
|
|
156
163
|
else {
|
|
157
164
|
console.log(chalk.yellow(`Merged ${succeeded}/${prsToMerge.length} PRs. ${failed} failed.`));
|
|
158
165
|
for (const result of results.filter((r) => !r.success)) {
|
|
159
|
-
console.log(chalk.red(` ✗ ${result.pr.repoName}: ${result.error}`));
|
|
166
|
+
console.log(chalk.red(` ✗ ${result.entry.pr.repoName}: ${result.error}`));
|
|
160
167
|
}
|
|
161
168
|
}
|
|
162
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/commands/pr/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/commands/pr/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/status.ts"],"names":[],"mappings":"AAQA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6JzE"}
|
|
@@ -2,7 +2,8 @@ import chalk from 'chalk';
|
|
|
2
2
|
import ora from 'ora';
|
|
3
3
|
import { loadManifest, getAllRepoInfo, getManifestRepoInfo } from '../../lib/manifest.js';
|
|
4
4
|
import { pathExists, getCurrentBranch, isGitRepo } from '../../lib/git.js';
|
|
5
|
-
import {
|
|
5
|
+
import { getPlatformAdapter } from '../../lib/platform/index.js';
|
|
6
|
+
import { getLinkedPRInfo } from '../../lib/linker.js';
|
|
6
7
|
/**
|
|
7
8
|
* Show status of PRs for current branch
|
|
8
9
|
*/
|
|
@@ -29,13 +30,14 @@ export async function prStatus(options = {}) {
|
|
|
29
30
|
if (branch === repo.default_branch) {
|
|
30
31
|
return null;
|
|
31
32
|
}
|
|
32
|
-
// Find PR for this repo's current branch
|
|
33
|
-
const
|
|
33
|
+
// Find PR for this repo's current branch using the appropriate platform
|
|
34
|
+
const platform = getPlatformAdapter(repo.platformType, repo.platform);
|
|
35
|
+
const pr = await platform.findPRByBranch(repo.owner, repo.repo, branch);
|
|
34
36
|
if (!pr) {
|
|
35
37
|
return null;
|
|
36
38
|
}
|
|
37
39
|
// Get full PR info
|
|
38
|
-
const prInfo = await getLinkedPRInfo(repo
|
|
40
|
+
const prInfo = await getLinkedPRInfo(repo, pr.number);
|
|
39
41
|
return { ...prInfo, branch };
|
|
40
42
|
}));
|
|
41
43
|
// Check for manifest PR too
|
|
@@ -44,9 +46,10 @@ export async function prStatus(options = {}) {
|
|
|
44
46
|
if (manifestInfo && await isGitRepo(manifestInfo.absolutePath)) {
|
|
45
47
|
const manifestBranch = await getCurrentBranch(manifestInfo.absolutePath);
|
|
46
48
|
if (manifestBranch !== manifestInfo.default_branch) {
|
|
47
|
-
const
|
|
49
|
+
const platform = getPlatformAdapter(manifestInfo.platformType, manifestInfo.platform);
|
|
50
|
+
const pr = await platform.findPRByBranch(manifestInfo.owner, manifestInfo.repo, manifestBranch);
|
|
48
51
|
if (pr) {
|
|
49
|
-
const prInfo = await getLinkedPRInfo(manifestInfo
|
|
52
|
+
const prInfo = await getLinkedPRInfo(manifestInfo, pr.number);
|
|
50
53
|
manifestPR = { ...prInfo, branch: manifestBranch };
|
|
51
54
|
}
|
|
52
55
|
}
|
|
@@ -70,8 +73,8 @@ export async function prStatus(options = {}) {
|
|
|
70
73
|
return;
|
|
71
74
|
}
|
|
72
75
|
// Display as table
|
|
73
|
-
console.log(chalk.dim(' Repo PR Status Approved Checks Mergeable'));
|
|
74
|
-
console.log(chalk.dim(' ' + '-'.repeat(
|
|
76
|
+
console.log(chalk.dim(' Repo PR Status Approved Checks Mergeable Platform'));
|
|
77
|
+
console.log(chalk.dim(' ' + '-'.repeat(88)));
|
|
75
78
|
for (const pr of foundPRs) {
|
|
76
79
|
const repoName = pr.repoName.padEnd(20);
|
|
77
80
|
const prNum = `#${pr.number}`.padEnd(8);
|
|
@@ -98,9 +101,10 @@ export async function prStatus(options = {}) {
|
|
|
98
101
|
? chalk.green('✓'.padEnd(10))
|
|
99
102
|
: chalk.yellow('pending'.padEnd(10));
|
|
100
103
|
const mergeable = pr.mergeable
|
|
101
|
-
? chalk.green('✓')
|
|
102
|
-
: chalk.red('✗');
|
|
103
|
-
|
|
104
|
+
? chalk.green('✓'.padEnd(10))
|
|
105
|
+
: chalk.red('✗'.padEnd(10));
|
|
106
|
+
const platformType = (pr.platformType ?? 'github').padEnd(10);
|
|
107
|
+
console.log(` ${repoName} ${prNum} ${statusText} ${approved} ${checks} ${mergeable} ${chalk.dim(platformType)}`);
|
|
104
108
|
}
|
|
105
109
|
// Summary
|
|
106
110
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/pr/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/pr/status.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/github.d.ts
CHANGED
|
@@ -1,15 +1,28 @@
|
|
|
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 type { LinkedPR, RepoInfo, PRCreateOptions, PRMergeOptions } from '../types.js';
|
|
12
|
+
export { getGitHubPlatform };
|
|
3
13
|
/**
|
|
4
|
-
* Get
|
|
14
|
+
* Get or create Octokit instance (for backward compatibility with tests)
|
|
15
|
+
* @deprecated Use getPlatformAdapter('github') instead
|
|
5
16
|
*/
|
|
6
|
-
export declare function
|
|
17
|
+
export declare function getOctokit(): Octokit;
|
|
7
18
|
/**
|
|
8
|
-
* Get or
|
|
19
|
+
* Get GitHub token from environment or gh CLI
|
|
20
|
+
* @deprecated Use getPlatformAdapter('github').getToken() instead
|
|
9
21
|
*/
|
|
10
|
-
export declare function
|
|
22
|
+
export declare function getGitHubToken(): string;
|
|
11
23
|
/**
|
|
12
24
|
* Create a pull request
|
|
25
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).createPullRequest() instead
|
|
13
26
|
*/
|
|
14
27
|
export declare function createPullRequest(owner: string, repo: string, head: string, base: string, title: string, body: string, draft?: boolean): Promise<{
|
|
15
28
|
number: number;
|
|
@@ -17,10 +30,12 @@ export declare function createPullRequest(owner: string, repo: string, head: str
|
|
|
17
30
|
}>;
|
|
18
31
|
/**
|
|
19
32
|
* Update a pull request body
|
|
33
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).updatePullRequestBody() instead
|
|
20
34
|
*/
|
|
21
35
|
export declare function updatePullRequestBody(owner: string, repo: string, pullNumber: number, body: string): Promise<void>;
|
|
22
36
|
/**
|
|
23
37
|
* Get pull request details
|
|
38
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).getPullRequest() instead
|
|
24
39
|
*/
|
|
25
40
|
export declare function getPullRequest(owner: string, repo: string, pullNumber: number): Promise<{
|
|
26
41
|
number: number;
|
|
@@ -40,6 +55,7 @@ export declare function getPullRequest(owner: string, repo: string, pullNumber:
|
|
|
40
55
|
}>;
|
|
41
56
|
/**
|
|
42
57
|
* Get reviews for a pull request
|
|
58
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).getPullRequestReviews() instead
|
|
43
59
|
*/
|
|
44
60
|
export declare function getPullRequestReviews(owner: string, repo: string, pullNumber: number): Promise<{
|
|
45
61
|
state: string;
|
|
@@ -47,10 +63,12 @@ export declare function getPullRequestReviews(owner: string, repo: string, pullN
|
|
|
47
63
|
}[]>;
|
|
48
64
|
/**
|
|
49
65
|
* Check if a PR is approved
|
|
66
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).isPullRequestApproved() instead
|
|
50
67
|
*/
|
|
51
68
|
export declare function isPullRequestApproved(owner: string, repo: string, pullNumber: number): Promise<boolean>;
|
|
52
69
|
/**
|
|
53
70
|
* Get combined status checks for a PR
|
|
71
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).getStatusChecks() instead
|
|
54
72
|
*/
|
|
55
73
|
export declare function getStatusChecks(owner: string, repo: string, ref: string): Promise<{
|
|
56
74
|
state: 'success' | 'failure' | 'pending';
|
|
@@ -61,14 +79,17 @@ export declare function getStatusChecks(owner: string, repo: string, ref: string
|
|
|
61
79
|
}>;
|
|
62
80
|
/**
|
|
63
81
|
* Merge a pull request
|
|
82
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).mergePullRequest() instead
|
|
64
83
|
*/
|
|
65
84
|
export declare function mergePullRequest(owner: string, repo: string, pullNumber: number, options?: PRMergeOptions): Promise<boolean>;
|
|
66
85
|
/**
|
|
67
86
|
* Get full linked PR information
|
|
87
|
+
* @deprecated Use linker.getLinkedPRInfo() with RepoInfo instead
|
|
68
88
|
*/
|
|
69
89
|
export declare function getLinkedPRInfo(owner: string, repo: string, pullNumber: number, repoName: string): Promise<LinkedPR>;
|
|
70
90
|
/**
|
|
71
91
|
* Find PRs with a specific branch name
|
|
92
|
+
* @deprecated Use getPlatformAdapter(repoInfo.platformType).findPRByBranch() instead
|
|
72
93
|
*/
|
|
73
94
|
export declare function findPRByBranch(owner: string, repo: string, branch: string): Promise<{
|
|
74
95
|
number: number;
|
|
@@ -76,14 +97,17 @@ export declare function findPRByBranch(owner: string, repo: string, branch: stri
|
|
|
76
97
|
} | null>;
|
|
77
98
|
/**
|
|
78
99
|
* Create PRs for all repos with changes
|
|
100
|
+
* @deprecated Use the new multi-platform PR creation flow
|
|
79
101
|
*/
|
|
80
102
|
export declare function createLinkedPRs(repos: RepoInfo[], branchName: string, options: PRCreateOptions, manifestPRNumber?: number): Promise<LinkedPR[]>;
|
|
81
103
|
/**
|
|
82
104
|
* Generate manifest PR body with linked PR table
|
|
105
|
+
* @deprecated Use linker.generateManifestPRBody() instead
|
|
83
106
|
*/
|
|
84
107
|
export declare function generateManifestPRBody(title: string, linkedPRs: LinkedPR[], additionalBody?: string): string;
|
|
85
108
|
/**
|
|
86
109
|
* Parse linked PRs from manifest PR body
|
|
110
|
+
* @deprecated Use linker.parseLinkedPRsFromBody() instead
|
|
87
111
|
*/
|
|
88
112
|
export declare function parseLinkedPRsFromBody(body: string): {
|
|
89
113
|
repoName: string;
|