gitgrip 0.2.3 → 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/init.d.ts.map +1 -1
- package/dist/commands/init.js +3 -10
- package/dist/commands/init.js.map +1 -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/index.js +1 -17
- package/dist/index.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 +14 -16
- package/dist/lib/manifest.d.ts.map +1 -1
- package/dist/lib/manifest.js +49 -57
- 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/commands/migrate.d.ts +0 -17
- package/dist/commands/migrate.d.ts.map +0 -1
- package/dist/commands/migrate.js +0 -180
- package/dist/commands/migrate.js.map +0 -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":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuFxF"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mkdir } from 'fs/promises';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import ora from 'ora';
|
|
4
|
-
import { loadManifest, getAllRepoInfo,
|
|
4
|
+
import { loadManifest, getAllRepoInfo, getGitgripDir, getManifestsDir, } from '../lib/manifest.js';
|
|
5
5
|
import { cloneRepo, pathExists } from '../lib/git.js';
|
|
6
6
|
import { getTimingContext } from '../lib/timing.js';
|
|
7
7
|
/**
|
|
@@ -16,22 +16,15 @@ import { getTimingContext } from '../lib/timing.js';
|
|
|
16
16
|
export async function init(manifestUrl, options = {}) {
|
|
17
17
|
const timing = getTimingContext();
|
|
18
18
|
const cwd = process.cwd();
|
|
19
|
-
const gitgripDir =
|
|
19
|
+
const gitgripDir = getGitgripDir(cwd);
|
|
20
20
|
const existingDir = getGitgripDir(cwd);
|
|
21
21
|
const manifestsDir = getManifestsDir(cwd);
|
|
22
|
-
// Check if already initialized
|
|
22
|
+
// Check if already initialized
|
|
23
23
|
if (await pathExists(existingDir)) {
|
|
24
24
|
console.log(chalk.yellow('Workspace already initialized.'));
|
|
25
25
|
console.log(chalk.dim('Run `gr sync` to update, or delete .gitgrip/ to reinitialize.'));
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
|
-
// Check for legacy format
|
|
29
|
-
const legacyManifest = await findLegacyManifestPath(cwd);
|
|
30
|
-
if (legacyManifest) {
|
|
31
|
-
console.log(chalk.yellow('Found legacy codi-repos.yaml format.'));
|
|
32
|
-
console.log(chalk.dim('Run `gr migrate` to convert to the new .gitgrip/ structure.'));
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
28
|
// Create .gitgrip/ directory
|
|
36
29
|
timing?.startPhase('create dirs');
|
|
37
30
|
const spinner = ora('Creating workspace...').start();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAStD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAwB,EAAE;IACvD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhD,gCAAgC;IAChC,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,6DAA6D;QAC7D,MAAM,SAAS,GAAqE,MAAM,OAAO,CAAC,GAAG,CACnG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzD,sDAAsD;YACtD,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YACtD,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC,CAAC,CACH,CAAC;QAEF,4BAA4B;QAC5B,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,eAAe,GAAiE,IAAI,CAAC;QACzF,IAAI,YAAY,IAAI,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,cAAc,KAAK,YAAY,CAAC,cAAc,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACtF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAChG,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC9D,eAAe,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;gBACtF,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAkE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAC/H,IAAI,eAAe,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC;QAE1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAElF,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAC1G,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAEhE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM;oBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU;oBAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS;oBAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAEtD,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvH,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YACxH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnG,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvH,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACxC;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,SAAS,UAAU,CAAC,MAAM,OAAO;oBAC1C,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,YAAY,GAAmB;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO;YACjC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;SAC3C,CAAC;QAEF,MAAM,OAAO,GAAoF,EAAE,CAAC;QAEpG,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,EAAE,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvH,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,aAAa,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAErG,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAE9G,IAAI,OAAO,EAAE,CAAC;oBACZ,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,aAAa,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,CAAC;oBACtF,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,aAAa,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,gBAAgB,CAAC,CAAC;oBACzF,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;oBAExE,2CAA2C;oBAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,KAAK,gBAAgB,EAAE,CAAC;wBAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAC5E,CAAC;wBACF,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,GAAG,aAAa,KAAK,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC,CAAC;gBACxF,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAEzD,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,KAAK,gBAAgB,EAAE,CAAC;oBAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;oBACzF,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAExD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,SAAS,2BAA2B,CAAC,CAAC,CAAC;YAEtE,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,UAAU,SAAS,IAAI,UAAU,CAAC,MAAM,SAAS,MAAM,UAAU,CAAC,CAChF,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
|
|
@@ -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":"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,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAyB,EAAE;IACxD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IACnD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhD,gCAAgC;IAChC,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,sFAAsF;QACtF,MAAM,UAAU,GAA6C,MAAM,OAAO,CAAC,GAAG,CAC5E,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEzD,sDAAsD;YACtD,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,wEAAwE;YACxE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACxE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,IAAI,CAAC;YACd,CAAC;YAED,mBAAmB;YACnB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;YACtD,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC;QAC/B,CAAC,CAAC,CACH,CAAC;QAEF,4BAA4B;QAC5B,MAAM,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,UAAU,GAA2C,IAAI,CAAC;QAC9D,IAAI,YAAY,IAAI,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,cAAc,KAAK,YAAY,CAAC,cAAc,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACtF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBAChG,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;oBAC9D,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAuC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAC7F,IAAI,UAAU,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,mGAAmG;QACnG,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,WAAW,CAAC;QAE1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,uFAAuF,CACxF,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAExC,IAAI,UAAkB,CAAC;YACvB,IAAI,UAAkB,CAAC;YACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC9B,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5C,MAAM;gBACR,KAAK,QAAQ;oBACX,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAChC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM;gBACR,KAAK,QAAQ;oBACX,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC5B,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5C,MAAM;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ;gBAC1B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU;gBAC1B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAEvC,MAAM,SAAS,GAAG,EAAE,CAAC,SAAS;gBAC5B,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE9B,MAAM,YAAY,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE9D,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,KAAK,KAAK,KAAK,UAAU,KAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,KAAK,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1H,CAAC;QAED,UAAU;QACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;QAE5D,IAAI,OAAO,IAAI,WAAW,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW;gBAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa;gBAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY;gBAAE,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2BAA2B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,aAAa;QACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC"}
|