gitgrip 0.2.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/LICENSE +21 -0
- package/README.md +211 -0
- package/actions/cross-repo-sync/action.yml +55 -0
- package/assets/banner.svg +73 -0
- package/assets/icon.svg +30 -0
- package/assets/logo-dark.svg +36 -0
- package/assets/logo.svg +36 -0
- package/dist/commands/add.d.ts +9 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +80 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/bench.d.ts +12 -0
- package/dist/commands/bench.d.ts.map +1 -0
- package/dist/commands/bench.js +136 -0
- package/dist/commands/bench.js.map +1 -0
- package/dist/commands/branch.d.ts +15 -0
- package/dist/commands/branch.d.ts.map +1 -0
- package/dist/commands/branch.js +159 -0
- package/dist/commands/branch.js.map +1 -0
- package/dist/commands/checkout.d.ts +10 -0
- package/dist/commands/checkout.d.ts.map +1 -0
- package/dist/commands/checkout.js +85 -0
- package/dist/commands/checkout.js.map +1 -0
- package/dist/commands/commit.d.ts +10 -0
- package/dist/commands/commit.d.ts.map +1 -0
- package/dist/commands/commit.js +94 -0
- package/dist/commands/commit.js.map +1 -0
- package/dist/commands/diff.d.ts +11 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +105 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/env.d.ts +8 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +35 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/forall.d.ts +13 -0
- package/dist/commands/forall.d.ts.map +1 -0
- package/dist/commands/forall.js +116 -0
- package/dist/commands/forall.js.map +1 -0
- package/dist/commands/init.d.ts +15 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +106 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/link.d.ts +11 -0
- package/dist/commands/link.d.ts.map +1 -0
- package/dist/commands/link.js +205 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/migrate.d.ts +17 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +180 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/pr/create.d.ts +13 -0
- package/dist/commands/pr/create.d.ts.map +1 -0
- package/dist/commands/pr/create.js +202 -0
- package/dist/commands/pr/create.js.map +1 -0
- package/dist/commands/pr/index.d.ts +4 -0
- package/dist/commands/pr/index.d.ts.map +1 -0
- package/dist/commands/pr/index.js +4 -0
- package/dist/commands/pr/index.js.map +1 -0
- package/dist/commands/pr/merge.d.ts +11 -0
- package/dist/commands/pr/merge.d.ts.map +1 -0
- package/dist/commands/pr/merge.js +168 -0
- package/dist/commands/pr/merge.js.map +1 -0
- package/dist/commands/pr/status.d.ts +9 -0
- package/dist/commands/pr/status.d.ts.map +1 -0
- package/dist/commands/pr/status.js +139 -0
- package/dist/commands/pr/status.js.map +1 -0
- package/dist/commands/push.d.ts +10 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +101 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/run.d.ts +8 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +75 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +201 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +13 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +183 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +352 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/__bench__/files.bench.d.ts +2 -0
- package/dist/lib/__bench__/files.bench.d.ts.map +1 -0
- package/dist/lib/__bench__/files.bench.js +52 -0
- package/dist/lib/__bench__/files.bench.js.map +1 -0
- package/dist/lib/__bench__/manifest.bench.d.ts +2 -0
- package/dist/lib/__bench__/manifest.bench.d.ts.map +1 -0
- package/dist/lib/__bench__/manifest.bench.js +74 -0
- package/dist/lib/__bench__/manifest.bench.js.map +1 -0
- package/dist/lib/files.d.ts +84 -0
- package/dist/lib/files.d.ts.map +1 -0
- package/dist/lib/files.js +492 -0
- package/dist/lib/files.js.map +1 -0
- package/dist/lib/git.d.ts +125 -0
- package/dist/lib/git.d.ts.map +1 -0
- package/dist/lib/git.js +370 -0
- package/dist/lib/git.js.map +1 -0
- package/dist/lib/github.d.ts +92 -0
- package/dist/lib/github.d.ts.map +1 -0
- package/dist/lib/github.js +284 -0
- package/dist/lib/github.js.map +1 -0
- package/dist/lib/hooks.d.ts +19 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/hooks.js +63 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/linker.d.ts +56 -0
- package/dist/lib/linker.d.ts.map +1 -0
- package/dist/lib/linker.js +185 -0
- package/dist/lib/linker.js.map +1 -0
- package/dist/lib/manifest.d.ts +73 -0
- package/dist/lib/manifest.d.ts.map +1 -0
- package/dist/lib/manifest.js +400 -0
- package/dist/lib/manifest.js.map +1 -0
- package/dist/lib/scripts.d.ts +26 -0
- package/dist/lib/scripts.d.ts.map +1 -0
- package/dist/lib/scripts.js +123 -0
- package/dist/lib/scripts.js.map +1 -0
- package/dist/lib/timing.d.ts +100 -0
- package/dist/lib/timing.d.ts.map +1 -0
- package/dist/lib/timing.js +293 -0
- package/dist/lib/timing.js.map +1 -0
- package/dist/types.d.ts +312 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/pr/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/pr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface MergeOptions {
|
|
2
|
+
method?: 'merge' | 'squash' | 'rebase';
|
|
3
|
+
deleteBranch?: boolean;
|
|
4
|
+
force?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Merge all PRs for current branch
|
|
8
|
+
*/
|
|
9
|
+
export declare function mergePRs(options?: MergeOptions): Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/merge.ts"],"names":[],"mappings":"AAQA,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,CA4LxE"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { loadManifest, getAllRepoInfo, getManifestRepoInfo } from '../../lib/manifest.js';
|
|
5
|
+
import { pathExists, getCurrentBranch, isGitRepo } from '../../lib/git.js';
|
|
6
|
+
import { findPRByBranch, getLinkedPRInfo, mergePullRequest } from '../../lib/github.js';
|
|
7
|
+
/**
|
|
8
|
+
* Merge all PRs for current branch
|
|
9
|
+
*/
|
|
10
|
+
export async function mergePRs(options = {}) {
|
|
11
|
+
const { manifest, rootDir } = await loadManifest();
|
|
12
|
+
const repos = getAllRepoInfo(manifest, rootDir);
|
|
13
|
+
// Check if any repos are cloned
|
|
14
|
+
const clonedRepos = [];
|
|
15
|
+
for (const repo of repos) {
|
|
16
|
+
if (await pathExists(repo.absolutePath)) {
|
|
17
|
+
clonedRepos.push(repo);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (clonedRepos.length === 0) {
|
|
21
|
+
console.log(chalk.yellow('No repositories are cloned.'));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const spinner = ora('Checking PR status...').start();
|
|
25
|
+
try {
|
|
26
|
+
// Find all PRs for each repo based on its own current branch
|
|
27
|
+
const prResults = await Promise.all(clonedRepos.map(async (repo) => {
|
|
28
|
+
const branch = await getCurrentBranch(repo.absolutePath);
|
|
29
|
+
// Skip repos on their default branch (no PR expected)
|
|
30
|
+
if (branch === repo.default_branch) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const pr = await findPRByBranch(repo.owner, repo.repo, branch);
|
|
34
|
+
if (!pr) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const prInfo = await getLinkedPRInfo(repo.owner, repo.repo, pr.number, repo.name);
|
|
38
|
+
return { ...prInfo, branch };
|
|
39
|
+
}));
|
|
40
|
+
// Check for manifest PR too
|
|
41
|
+
const manifestInfo = getManifestRepoInfo(manifest, rootDir);
|
|
42
|
+
let manifestPR = null;
|
|
43
|
+
if (manifestInfo && await isGitRepo(manifestInfo.absolutePath)) {
|
|
44
|
+
const manifestBranch = await getCurrentBranch(manifestInfo.absolutePath);
|
|
45
|
+
if (manifestBranch !== manifestInfo.default_branch) {
|
|
46
|
+
const pr = await findPRByBranch(manifestInfo.owner, manifestInfo.repo, manifestBranch);
|
|
47
|
+
if (pr) {
|
|
48
|
+
const prInfo = await getLinkedPRInfo(manifestInfo.owner, manifestInfo.repo, pr.number, manifestInfo.name);
|
|
49
|
+
manifestPR = { ...prInfo, branch: manifestBranch };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const prsToMerge = prResults.filter((pr) => pr !== null);
|
|
54
|
+
if (manifestPR) {
|
|
55
|
+
prsToMerge.push(manifestPR);
|
|
56
|
+
}
|
|
57
|
+
spinner.stop();
|
|
58
|
+
if (prsToMerge.length === 0) {
|
|
59
|
+
console.log(chalk.yellow('No open PRs found.'));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
// Determine the branch name for display
|
|
63
|
+
const branches = [...new Set(prsToMerge.map(pr => pr.branch))];
|
|
64
|
+
const branchDisplay = branches.length === 1 ? branches[0] : `${branches.length} branches`;
|
|
65
|
+
console.log(chalk.blue(`Merging PRs for branch: ${chalk.cyan(branchDisplay)}\n`));
|
|
66
|
+
// Check if all PRs are ready
|
|
67
|
+
const notReady = prsToMerge.filter((pr) => pr.state !== 'open' || !pr.approved || !pr.checksPass || !pr.mergeable);
|
|
68
|
+
if (notReady.length > 0 && !options.force) {
|
|
69
|
+
console.log(chalk.yellow('Some PRs are not ready to merge:\n'));
|
|
70
|
+
for (const pr of notReady) {
|
|
71
|
+
const issues = [];
|
|
72
|
+
if (pr.state !== 'open')
|
|
73
|
+
issues.push(`state: ${pr.state}`);
|
|
74
|
+
if (!pr.approved)
|
|
75
|
+
issues.push('not approved');
|
|
76
|
+
if (!pr.checksPass)
|
|
77
|
+
issues.push('checks not passing');
|
|
78
|
+
if (!pr.mergeable)
|
|
79
|
+
issues.push('not mergeable');
|
|
80
|
+
console.log(` ${pr.repoName} #${pr.number}: ${chalk.dim(issues.join(', '))}`);
|
|
81
|
+
}
|
|
82
|
+
console.log('');
|
|
83
|
+
console.log(chalk.dim('Use --force to merge anyway (not recommended).'));
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
// Show what will be merged
|
|
87
|
+
console.log('PRs to merge:');
|
|
88
|
+
for (const pr of prsToMerge) {
|
|
89
|
+
const statusIcon = pr.approved && pr.checksPass ? chalk.green('✓') : chalk.yellow('⚠');
|
|
90
|
+
console.log(` ${statusIcon} ${pr.repoName} #${pr.number}`);
|
|
91
|
+
}
|
|
92
|
+
console.log('');
|
|
93
|
+
// Confirm unless --force
|
|
94
|
+
if (!options.force) {
|
|
95
|
+
const { confirm } = await inquirer.prompt([
|
|
96
|
+
{
|
|
97
|
+
type: 'confirm',
|
|
98
|
+
name: 'confirm',
|
|
99
|
+
message: `Merge ${prsToMerge.length} PRs?`,
|
|
100
|
+
default: false,
|
|
101
|
+
},
|
|
102
|
+
]);
|
|
103
|
+
if (!confirm) {
|
|
104
|
+
console.log('Cancelled.');
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Merge PRs one by one
|
|
109
|
+
console.log('');
|
|
110
|
+
const mergeOptions = {
|
|
111
|
+
method: options.method ?? 'merge',
|
|
112
|
+
deleteBranch: options.deleteBranch ?? true,
|
|
113
|
+
};
|
|
114
|
+
const results = [];
|
|
115
|
+
for (const pr of prsToMerge) {
|
|
116
|
+
const prSpinner = ora(`Merging ${pr.repoName} #${pr.number}...`).start();
|
|
117
|
+
try {
|
|
118
|
+
const success = await mergePullRequest(pr.owner, pr.repo, pr.number, mergeOptions);
|
|
119
|
+
if (success) {
|
|
120
|
+
prSpinner.succeed(`${pr.repoName} #${pr.number}: merged`);
|
|
121
|
+
results.push({ pr, success: true });
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
prSpinner.fail(`${pr.repoName} #${pr.number}: merge failed`);
|
|
125
|
+
results.push({ pr, success: false, error: 'Merge API call failed' });
|
|
126
|
+
// Stop on first failure for all-or-nothing
|
|
127
|
+
if (manifest.settings.merge_strategy === 'all-or-nothing') {
|
|
128
|
+
console.log('');
|
|
129
|
+
console.log(chalk.red('Stopping due to merge failure (all-or-nothing merge strategy).'));
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
136
|
+
prSpinner.fail(`${pr.repoName} #${pr.number}: ${errorMsg}`);
|
|
137
|
+
results.push({ pr, success: false, error: errorMsg });
|
|
138
|
+
if (manifest.settings.merge_strategy === 'all-or-nothing') {
|
|
139
|
+
console.log('');
|
|
140
|
+
console.log(chalk.red('Stopping due to merge failure (all-or-nothing merge strategy).'));
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Summary
|
|
146
|
+
console.log('');
|
|
147
|
+
const succeeded = results.filter((r) => r.success).length;
|
|
148
|
+
const failed = results.filter((r) => !r.success).length;
|
|
149
|
+
if (failed === 0) {
|
|
150
|
+
console.log(chalk.green(`All ${succeeded} PRs merged successfully!`));
|
|
151
|
+
if (mergeOptions.deleteBranch) {
|
|
152
|
+
console.log(chalk.dim('\nRemote branches have been deleted.'));
|
|
153
|
+
console.log(chalk.dim('Switch to default branch with: gitgrip checkout main'));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.log(chalk.yellow(`Merged ${succeeded}/${prsToMerge.length} PRs. ${failed} failed.`));
|
|
158
|
+
for (const result of results.filter((r) => !r.success)) {
|
|
159
|
+
console.log(chalk.red(` ✗ ${result.pr.repoName}: ${result.error}`));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
spinner.fail('Error during merge');
|
|
165
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/commands/pr/merge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/pr/status.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyJzE"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { loadManifest, getAllRepoInfo, getManifestRepoInfo } from '../../lib/manifest.js';
|
|
4
|
+
import { pathExists, getCurrentBranch, isGitRepo } from '../../lib/git.js';
|
|
5
|
+
import { findPRByBranch, getLinkedPRInfo } from '../../lib/github.js';
|
|
6
|
+
/**
|
|
7
|
+
* Show status of PRs for current branch
|
|
8
|
+
*/
|
|
9
|
+
export async function prStatus(options = {}) {
|
|
10
|
+
const { manifest, rootDir } = await loadManifest();
|
|
11
|
+
const repos = getAllRepoInfo(manifest, rootDir);
|
|
12
|
+
// Check if any repos are cloned
|
|
13
|
+
const clonedRepos = [];
|
|
14
|
+
for (const repo of repos) {
|
|
15
|
+
if (await pathExists(repo.absolutePath)) {
|
|
16
|
+
clonedRepos.push(repo);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (clonedRepos.length === 0) {
|
|
20
|
+
console.log(chalk.yellow('No repositories are cloned.'));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const spinner = ora('Fetching PR status...').start();
|
|
24
|
+
try {
|
|
25
|
+
// Find PRs for each repo based on its own current branch (not a single global branch)
|
|
26
|
+
const prStatuses = await Promise.all(clonedRepos.map(async (repo) => {
|
|
27
|
+
const branch = await getCurrentBranch(repo.absolutePath);
|
|
28
|
+
// Skip repos on their default branch (no PR expected)
|
|
29
|
+
if (branch === repo.default_branch) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
// Find PR for this repo's current branch
|
|
33
|
+
const pr = await findPRByBranch(repo.owner, repo.repo, branch);
|
|
34
|
+
if (!pr) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
// Get full PR info
|
|
38
|
+
const prInfo = await getLinkedPRInfo(repo.owner, repo.repo, pr.number, repo.name);
|
|
39
|
+
return { ...prInfo, branch };
|
|
40
|
+
}));
|
|
41
|
+
// Check for manifest PR too
|
|
42
|
+
const manifestInfo = getManifestRepoInfo(manifest, rootDir);
|
|
43
|
+
let manifestPR = null;
|
|
44
|
+
if (manifestInfo && await isGitRepo(manifestInfo.absolutePath)) {
|
|
45
|
+
const manifestBranch = await getCurrentBranch(manifestInfo.absolutePath);
|
|
46
|
+
if (manifestBranch !== manifestInfo.default_branch) {
|
|
47
|
+
const pr = await findPRByBranch(manifestInfo.owner, manifestInfo.repo, manifestBranch);
|
|
48
|
+
if (pr) {
|
|
49
|
+
const prInfo = await getLinkedPRInfo(manifestInfo.owner, manifestInfo.repo, pr.number, manifestInfo.name);
|
|
50
|
+
manifestPR = { ...prInfo, branch: manifestBranch };
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
spinner.stop();
|
|
55
|
+
const foundPRs = prStatuses.filter((pr) => pr !== null);
|
|
56
|
+
if (manifestPR) {
|
|
57
|
+
foundPRs.push(manifestPR);
|
|
58
|
+
}
|
|
59
|
+
if (foundPRs.length === 0) {
|
|
60
|
+
console.log(chalk.yellow('No open PRs found.'));
|
|
61
|
+
console.log(chalk.dim('\nCreate PRs with: gitgrip pr create'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Determine the branch name for display (use the common branch if all same, otherwise show per-PR)
|
|
65
|
+
const branches = [...new Set(foundPRs.map(pr => pr.branch))];
|
|
66
|
+
const branchDisplay = branches.length === 1 ? branches[0] : `${branches.length} branches`;
|
|
67
|
+
console.log(chalk.blue(`PR Status for branch: ${chalk.cyan(branchDisplay)}\n`));
|
|
68
|
+
if (options.json) {
|
|
69
|
+
console.log(JSON.stringify(foundPRs, null, 2));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// Display as table
|
|
73
|
+
console.log(chalk.dim(' Repo PR Status Approved Checks Mergeable'));
|
|
74
|
+
console.log(chalk.dim(' ' + '-'.repeat(76)));
|
|
75
|
+
for (const pr of foundPRs) {
|
|
76
|
+
const repoName = pr.repoName.padEnd(20);
|
|
77
|
+
const prNum = `#${pr.number}`.padEnd(8);
|
|
78
|
+
let statusIcon;
|
|
79
|
+
let statusText;
|
|
80
|
+
switch (pr.state) {
|
|
81
|
+
case 'open':
|
|
82
|
+
statusIcon = chalk.green('●');
|
|
83
|
+
statusText = chalk.green('open'.padEnd(10));
|
|
84
|
+
break;
|
|
85
|
+
case 'merged':
|
|
86
|
+
statusIcon = chalk.magenta('●');
|
|
87
|
+
statusText = chalk.magenta('merged'.padEnd(10));
|
|
88
|
+
break;
|
|
89
|
+
case 'closed':
|
|
90
|
+
statusIcon = chalk.red('●');
|
|
91
|
+
statusText = chalk.red('closed'.padEnd(10));
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
const approved = pr.approved
|
|
95
|
+
? chalk.green('✓'.padEnd(10))
|
|
96
|
+
: chalk.yellow('pending'.padEnd(10));
|
|
97
|
+
const checks = pr.checksPass
|
|
98
|
+
? chalk.green('✓'.padEnd(10))
|
|
99
|
+
: chalk.yellow('pending'.padEnd(10));
|
|
100
|
+
const mergeable = pr.mergeable
|
|
101
|
+
? chalk.green('✓')
|
|
102
|
+
: chalk.red('✗');
|
|
103
|
+
console.log(` ${repoName} ${prNum} ${statusText} ${approved} ${checks} ${mergeable}`);
|
|
104
|
+
}
|
|
105
|
+
// Summary
|
|
106
|
+
console.log('');
|
|
107
|
+
const allApproved = foundPRs.every((pr) => pr.approved);
|
|
108
|
+
const allChecksPass = foundPRs.every((pr) => pr.checksPass);
|
|
109
|
+
const allMergeable = foundPRs.every((pr) => pr.mergeable && pr.state === 'open');
|
|
110
|
+
const allOpen = foundPRs.every((pr) => pr.state === 'open');
|
|
111
|
+
if (allOpen && allApproved && allChecksPass && allMergeable) {
|
|
112
|
+
console.log(chalk.green(' ✓ All PRs are ready to merge'));
|
|
113
|
+
console.log(chalk.dim('\n Run `gitgrip pr merge` to merge all PRs.'));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
const issues = [];
|
|
117
|
+
if (!allOpen)
|
|
118
|
+
issues.push('some PRs are not open');
|
|
119
|
+
if (!allApproved)
|
|
120
|
+
issues.push('some PRs need approval');
|
|
121
|
+
if (!allChecksPass)
|
|
122
|
+
issues.push('some checks are pending');
|
|
123
|
+
if (!allMergeable)
|
|
124
|
+
issues.push('some PRs are not mergeable');
|
|
125
|
+
console.log(chalk.yellow(` ⚠ Not ready to merge: ${issues.join(', ')}`));
|
|
126
|
+
}
|
|
127
|
+
// Show links
|
|
128
|
+
console.log('');
|
|
129
|
+
console.log(chalk.dim(' Links:'));
|
|
130
|
+
for (const pr of foundPRs) {
|
|
131
|
+
console.log(chalk.dim(` ${pr.repoName}: ${pr.url}`));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
spinner.fail('Failed to fetch PR status');
|
|
136
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/pr/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface PushOptions {
|
|
2
|
+
setUpstream?: boolean;
|
|
3
|
+
force?: boolean;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Push current branch to remote across all repositories
|
|
7
|
+
*/
|
|
8
|
+
export declare function push(options?: PushOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAMA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsCD;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+EnE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { loadManifest, getAllRepoInfo, getManifestRepoInfo } from '../lib/manifest.js';
|
|
4
|
+
import { pathExists, getCurrentBranch, getGitInstance, isGitRepo } from '../lib/git.js';
|
|
5
|
+
/**
|
|
6
|
+
* Check if current branch has commits ahead of remote
|
|
7
|
+
*/
|
|
8
|
+
async function hasCommitsAheadOfRemote(repoPath) {
|
|
9
|
+
const git = getGitInstance(repoPath);
|
|
10
|
+
try {
|
|
11
|
+
const status = await git.status();
|
|
12
|
+
return status.ahead > 0;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
// If we can't determine, assume we might need to push
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if branch has an upstream configured
|
|
21
|
+
*/
|
|
22
|
+
async function hasUpstream(repoPath) {
|
|
23
|
+
const git = getGitInstance(repoPath);
|
|
24
|
+
try {
|
|
25
|
+
const branch = await getCurrentBranch(repoPath);
|
|
26
|
+
const result = await git.raw(['config', '--get', `branch.${branch}.remote`]);
|
|
27
|
+
return result.trim().length > 0;
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Push current branch to remote across all repositories
|
|
35
|
+
*/
|
|
36
|
+
export async function push(options = {}) {
|
|
37
|
+
const { setUpstream = false, force = false } = options;
|
|
38
|
+
const { manifest, rootDir } = await loadManifest();
|
|
39
|
+
let repos = getAllRepoInfo(manifest, rootDir);
|
|
40
|
+
// Include manifest repo if it exists
|
|
41
|
+
const manifestInfo = getManifestRepoInfo(manifest, rootDir);
|
|
42
|
+
if (manifestInfo && await isGitRepo(manifestInfo.absolutePath)) {
|
|
43
|
+
repos = [...repos, manifestInfo];
|
|
44
|
+
}
|
|
45
|
+
const results = [];
|
|
46
|
+
let hasCommits = false;
|
|
47
|
+
console.log(chalk.blue('Checking repositories for commits to push...\n'));
|
|
48
|
+
for (const repo of repos) {
|
|
49
|
+
const exists = await pathExists(repo.absolutePath);
|
|
50
|
+
if (!exists) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const branch = await getCurrentBranch(repo.absolutePath);
|
|
54
|
+
const hasUpstreamConfigured = await hasUpstream(repo.absolutePath);
|
|
55
|
+
// Check if there are commits to push
|
|
56
|
+
const needsPush = await hasCommitsAheadOfRemote(repo.absolutePath);
|
|
57
|
+
// Also push if no upstream and --set-upstream is specified
|
|
58
|
+
const needsUpstreamPush = !hasUpstreamConfigured && setUpstream;
|
|
59
|
+
if (!needsPush && !needsUpstreamPush) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
hasCommits = true;
|
|
63
|
+
const spinner = ora(`Pushing ${repo.name} (${branch})...`).start();
|
|
64
|
+
try {
|
|
65
|
+
const git = getGitInstance(repo.absolutePath);
|
|
66
|
+
const pushOptions = [];
|
|
67
|
+
if (setUpstream || !hasUpstreamConfigured) {
|
|
68
|
+
pushOptions.push('-u', 'origin', branch);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
pushOptions.push('origin', branch);
|
|
72
|
+
}
|
|
73
|
+
if (force) {
|
|
74
|
+
pushOptions.unshift('--force');
|
|
75
|
+
}
|
|
76
|
+
await git.push(pushOptions);
|
|
77
|
+
spinner.succeed(`${repo.name} (${chalk.cyan(branch)}): pushed`);
|
|
78
|
+
results.push({ repo, success: true, pushed: true, branch });
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
82
|
+
spinner.fail(`${repo.name}: ${errorMsg}`);
|
|
83
|
+
results.push({ repo, success: false, pushed: false, branch, error: errorMsg });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (!hasCommits) {
|
|
87
|
+
console.log(chalk.yellow('No commits to push in any repository.'));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
// Summary
|
|
91
|
+
console.log('');
|
|
92
|
+
const pushed = results.filter((r) => r.pushed).length;
|
|
93
|
+
const failed = results.filter((r) => !r.success).length;
|
|
94
|
+
if (failed === 0) {
|
|
95
|
+
console.log(chalk.green(`Pushed ${pushed} repository(s).`));
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
console.log(chalk.yellow(`Pushed ${pushed} repository(s). ${failed} failed.`));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAuED;;GAEG;AACH,wBAAsB,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3G"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { loadManifest } from '../lib/manifest.js';
|
|
3
|
+
import { runScript, listScripts } from '../lib/scripts.js';
|
|
4
|
+
/**
|
|
5
|
+
* Show available scripts
|
|
6
|
+
*/
|
|
7
|
+
async function showScripts() {
|
|
8
|
+
const { manifest } = await loadManifest();
|
|
9
|
+
const scripts = listScripts(manifest);
|
|
10
|
+
if (scripts.length === 0) {
|
|
11
|
+
console.log(chalk.dim('No scripts defined in manifest.'));
|
|
12
|
+
console.log(chalk.dim('\nAdd scripts to your manifest.yaml:'));
|
|
13
|
+
console.log(chalk.dim(`
|
|
14
|
+
workspace:
|
|
15
|
+
scripts:
|
|
16
|
+
build:
|
|
17
|
+
description: "Build all packages"
|
|
18
|
+
command: "pnpm -r build"
|
|
19
|
+
`));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
console.log(chalk.blue('Available Scripts\n'));
|
|
23
|
+
// Find longest name for alignment
|
|
24
|
+
const maxNameLength = Math.max(...scripts.map((s) => s.name.length));
|
|
25
|
+
for (const script of scripts) {
|
|
26
|
+
const paddedName = script.name.padEnd(maxNameLength);
|
|
27
|
+
const desc = script.description ?? chalk.dim('(no description)');
|
|
28
|
+
console.log(` ${chalk.cyan(paddedName)} ${desc}`);
|
|
29
|
+
}
|
|
30
|
+
console.log('');
|
|
31
|
+
console.log(chalk.dim(`Run a script with: cr run <name>`));
|
|
32
|
+
console.log(chalk.dim(`Pass extra args with: cr run <name> -- <args>`));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Run a named script
|
|
36
|
+
*/
|
|
37
|
+
async function executeScript(scriptName, args) {
|
|
38
|
+
const { manifest, rootDir } = await loadManifest();
|
|
39
|
+
console.log(chalk.blue(`Running script: ${scriptName}\n`));
|
|
40
|
+
const result = await runScript(scriptName, manifest, rootDir, args);
|
|
41
|
+
console.log('');
|
|
42
|
+
if (result.success) {
|
|
43
|
+
if (result.steps.length > 1) {
|
|
44
|
+
console.log(chalk.green(`\u2713 Script '${scriptName}' completed (${result.steps.length} steps)`));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(chalk.green(`\u2713 Script '${scriptName}' completed`));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const failedStep = result.steps.find((s) => !s.success);
|
|
52
|
+
if (failedStep) {
|
|
53
|
+
console.log(chalk.red(`\u2717 Script '${scriptName}' failed at step '${failedStep.name}'`));
|
|
54
|
+
if (failedStep.error) {
|
|
55
|
+
console.log(chalk.dim(` Error: ${failedStep.error}`));
|
|
56
|
+
}
|
|
57
|
+
if (failedStep.exitCode !== null) {
|
|
58
|
+
console.log(chalk.dim(` Exit code: ${failedStep.exitCode}`));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Main run command handler
|
|
66
|
+
*/
|
|
67
|
+
export async function run(scriptName, args = [], options = {}) {
|
|
68
|
+
if (options.list || !scriptName) {
|
|
69
|
+
await showScripts();
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
await executeScript(scriptName, args);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AA+CD;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwKvE"}
|