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
package/dist/lib/git.js
ADDED
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import { simpleGit } from 'simple-git';
|
|
2
|
+
import { access } from 'fs/promises';
|
|
3
|
+
/**
|
|
4
|
+
* Get a SimpleGit instance for a repository
|
|
5
|
+
*/
|
|
6
|
+
export function getGitInstance(repoPath) {
|
|
7
|
+
return simpleGit(repoPath);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Check if a directory is a git repository
|
|
11
|
+
*/
|
|
12
|
+
export async function isGitRepo(path) {
|
|
13
|
+
try {
|
|
14
|
+
const git = getGitInstance(path);
|
|
15
|
+
await git.revparse(['--git-dir']);
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Check if a path exists
|
|
24
|
+
*/
|
|
25
|
+
export async function pathExists(path) {
|
|
26
|
+
try {
|
|
27
|
+
await access(path);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Clone a repository
|
|
36
|
+
*/
|
|
37
|
+
export async function cloneRepo(url, path, branch) {
|
|
38
|
+
const git = simpleGit();
|
|
39
|
+
const options = branch ? ['--branch', branch] : [];
|
|
40
|
+
await git.clone(url, path, options);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get the current branch name
|
|
44
|
+
*/
|
|
45
|
+
export async function getCurrentBranch(repoPath) {
|
|
46
|
+
const git = getGitInstance(repoPath);
|
|
47
|
+
const branch = await git.revparse(['--abbrev-ref', 'HEAD']);
|
|
48
|
+
return branch.trim();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get repository status
|
|
52
|
+
*/
|
|
53
|
+
export async function getRepoStatus(repo) {
|
|
54
|
+
const exists = await pathExists(repo.absolutePath);
|
|
55
|
+
if (!exists) {
|
|
56
|
+
return {
|
|
57
|
+
name: repo.name,
|
|
58
|
+
branch: '',
|
|
59
|
+
clean: true,
|
|
60
|
+
staged: 0,
|
|
61
|
+
modified: 0,
|
|
62
|
+
untracked: 0,
|
|
63
|
+
ahead: 0,
|
|
64
|
+
behind: 0,
|
|
65
|
+
exists: false,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const git = getGitInstance(repo.absolutePath);
|
|
69
|
+
const status = await git.status();
|
|
70
|
+
return {
|
|
71
|
+
name: repo.name,
|
|
72
|
+
branch: status.current ?? 'unknown',
|
|
73
|
+
clean: status.isClean(),
|
|
74
|
+
staged: status.staged.length,
|
|
75
|
+
modified: status.modified.length,
|
|
76
|
+
untracked: status.not_added.length,
|
|
77
|
+
ahead: status.ahead,
|
|
78
|
+
behind: status.behind,
|
|
79
|
+
exists: true,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get status for all repositories
|
|
84
|
+
*/
|
|
85
|
+
export async function getAllRepoStatus(repos) {
|
|
86
|
+
const results = await Promise.all(repos.map((repo) => getRepoStatus(repo)));
|
|
87
|
+
return results;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Create a branch in a repository
|
|
91
|
+
*/
|
|
92
|
+
export async function createBranch(repoPath, branchName) {
|
|
93
|
+
const git = getGitInstance(repoPath);
|
|
94
|
+
await git.checkoutLocalBranch(branchName);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Checkout a branch in a repository
|
|
98
|
+
*/
|
|
99
|
+
export async function checkoutBranch(repoPath, branchName) {
|
|
100
|
+
const git = getGitInstance(repoPath);
|
|
101
|
+
await git.checkout(branchName);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check if a branch exists locally
|
|
105
|
+
*/
|
|
106
|
+
export async function branchExists(repoPath, branchName) {
|
|
107
|
+
const git = getGitInstance(repoPath);
|
|
108
|
+
try {
|
|
109
|
+
const branches = await git.branchLocal();
|
|
110
|
+
return branches.all.includes(branchName);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Check if a branch exists on remote
|
|
118
|
+
*/
|
|
119
|
+
export async function remoteBranchExists(repoPath, branchName, remote = 'origin') {
|
|
120
|
+
const git = getGitInstance(repoPath);
|
|
121
|
+
try {
|
|
122
|
+
const result = await git.listRemote(['--heads', remote, branchName]);
|
|
123
|
+
return result.trim().length > 0;
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Pull latest changes from remote
|
|
131
|
+
*/
|
|
132
|
+
export async function pullLatest(repoPath, remote = 'origin') {
|
|
133
|
+
const git = getGitInstance(repoPath);
|
|
134
|
+
await git.pull(remote);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Fetch from remote
|
|
138
|
+
*/
|
|
139
|
+
export async function fetchRemote(repoPath, remote = 'origin') {
|
|
140
|
+
const git = getGitInstance(repoPath);
|
|
141
|
+
await git.fetch(remote);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Push branch to remote
|
|
145
|
+
*/
|
|
146
|
+
export async function pushBranch(repoPath, branchName, remote = 'origin', setUpstream = false) {
|
|
147
|
+
const git = getGitInstance(repoPath);
|
|
148
|
+
const options = setUpstream ? ['-u', remote, branchName] : [remote, branchName];
|
|
149
|
+
await git.push(options);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get list of changed files (staged and unstaged)
|
|
153
|
+
*/
|
|
154
|
+
export async function getChangedFiles(repoPath) {
|
|
155
|
+
const git = getGitInstance(repoPath);
|
|
156
|
+
const status = await git.status();
|
|
157
|
+
return [...status.staged, ...status.modified, ...status.not_added];
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Check if there are uncommitted changes
|
|
161
|
+
*/
|
|
162
|
+
export async function hasUncommittedChanges(repoPath) {
|
|
163
|
+
const git = getGitInstance(repoPath);
|
|
164
|
+
const status = await git.status();
|
|
165
|
+
return !status.isClean();
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get commits between current branch and base branch
|
|
169
|
+
*/
|
|
170
|
+
export async function getCommitsBetween(repoPath, baseBranch, headBranch) {
|
|
171
|
+
const git = getGitInstance(repoPath);
|
|
172
|
+
const head = headBranch ?? (await getCurrentBranch(repoPath));
|
|
173
|
+
try {
|
|
174
|
+
const log = await git.log({ from: baseBranch, to: head });
|
|
175
|
+
return log.all.map((commit) => commit.hash);
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
return [];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Check if branch has commits not in base
|
|
183
|
+
*/
|
|
184
|
+
export async function hasCommitsAhead(repoPath, baseBranch) {
|
|
185
|
+
const commits = await getCommitsBetween(repoPath, baseBranch);
|
|
186
|
+
return commits.length > 0;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Run an operation across multiple repos
|
|
190
|
+
*/
|
|
191
|
+
export async function runOnAllRepos(repos, operation) {
|
|
192
|
+
const results = await Promise.all(repos.map(async (repo) => {
|
|
193
|
+
try {
|
|
194
|
+
const data = await operation(repo);
|
|
195
|
+
return {
|
|
196
|
+
repoName: repo.name,
|
|
197
|
+
success: true,
|
|
198
|
+
data,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
return {
|
|
203
|
+
repoName: repo.name,
|
|
204
|
+
success: false,
|
|
205
|
+
error: error instanceof Error ? error.message : String(error),
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}));
|
|
209
|
+
return results;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Create branch in all repos
|
|
213
|
+
*/
|
|
214
|
+
export async function createBranchInAllRepos(repos, branchName) {
|
|
215
|
+
return runOnAllRepos(repos, async (repo) => {
|
|
216
|
+
if (!(await pathExists(repo.absolutePath))) {
|
|
217
|
+
throw new Error('Repository not cloned');
|
|
218
|
+
}
|
|
219
|
+
await createBranch(repo.absolutePath, branchName);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Checkout branch in all repos
|
|
224
|
+
*/
|
|
225
|
+
export async function checkoutBranchInAllRepos(repos, branchName) {
|
|
226
|
+
return runOnAllRepos(repos, async (repo) => {
|
|
227
|
+
if (!(await pathExists(repo.absolutePath))) {
|
|
228
|
+
throw new Error('Repository not cloned');
|
|
229
|
+
}
|
|
230
|
+
await checkoutBranch(repo.absolutePath, branchName);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Pull latest in all repos
|
|
235
|
+
*/
|
|
236
|
+
export async function pullAllRepos(repos) {
|
|
237
|
+
return runOnAllRepos(repos, async (repo) => {
|
|
238
|
+
if (!(await pathExists(repo.absolutePath))) {
|
|
239
|
+
throw new Error('Repository not cloned');
|
|
240
|
+
}
|
|
241
|
+
await pullLatest(repo.absolutePath);
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Push branch in all repos that have it
|
|
246
|
+
*/
|
|
247
|
+
export async function pushAllRepos(repos, branchName, setUpstream = false) {
|
|
248
|
+
return runOnAllRepos(repos, async (repo) => {
|
|
249
|
+
if (!(await pathExists(repo.absolutePath))) {
|
|
250
|
+
throw new Error('Repository not cloned');
|
|
251
|
+
}
|
|
252
|
+
const currentBranch = await getCurrentBranch(repo.absolutePath);
|
|
253
|
+
if (currentBranch !== branchName) {
|
|
254
|
+
throw new Error(`Not on branch ${branchName}`);
|
|
255
|
+
}
|
|
256
|
+
await pushBranch(repo.absolutePath, branchName, 'origin', setUpstream);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Get the URL of a remote
|
|
261
|
+
*/
|
|
262
|
+
export async function getRemoteUrl(repoPath, remote = 'origin') {
|
|
263
|
+
const git = getGitInstance(repoPath);
|
|
264
|
+
try {
|
|
265
|
+
const remotes = await git.getRemotes(true);
|
|
266
|
+
const found = remotes.find((r) => r.name === remote);
|
|
267
|
+
return found?.refs?.fetch ?? null;
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Set the URL of a remote (creates it if it doesn't exist)
|
|
275
|
+
*/
|
|
276
|
+
export async function setRemoteUrl(repoPath, url, remote = 'origin') {
|
|
277
|
+
const git = getGitInstance(repoPath);
|
|
278
|
+
const existingUrl = await getRemoteUrl(repoPath, remote);
|
|
279
|
+
if (existingUrl === null) {
|
|
280
|
+
await git.addRemote(remote, url);
|
|
281
|
+
}
|
|
282
|
+
else if (existingUrl !== url) {
|
|
283
|
+
await git.remote(['set-url', remote, url]);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Set upstream tracking for the current branch
|
|
288
|
+
*/
|
|
289
|
+
export async function setUpstreamBranch(repoPath, remote = 'origin') {
|
|
290
|
+
const git = getGitInstance(repoPath);
|
|
291
|
+
const branch = await getCurrentBranch(repoPath);
|
|
292
|
+
await git.branch(['--set-upstream-to', `${remote}/${branch}`, branch]);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Get the upstream tracking branch for a local branch
|
|
296
|
+
* Returns null if no upstream is configured
|
|
297
|
+
*/
|
|
298
|
+
export async function getUpstreamBranch(repoPath, branch) {
|
|
299
|
+
const git = getGitInstance(repoPath);
|
|
300
|
+
const localBranch = branch ?? (await getCurrentBranch(repoPath));
|
|
301
|
+
try {
|
|
302
|
+
const result = await git.raw(['config', '--get', `branch.${localBranch}.merge`]);
|
|
303
|
+
// Result is like "refs/heads/feature-branch"
|
|
304
|
+
const ref = result.trim();
|
|
305
|
+
if (ref.startsWith('refs/heads/')) {
|
|
306
|
+
return ref.replace('refs/heads/', '');
|
|
307
|
+
}
|
|
308
|
+
return ref || null;
|
|
309
|
+
}
|
|
310
|
+
catch {
|
|
311
|
+
return null;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Check if the upstream branch for current branch still exists on remote
|
|
316
|
+
*/
|
|
317
|
+
export async function upstreamBranchExists(repoPath, remote = 'origin') {
|
|
318
|
+
const upstreamBranch = await getUpstreamBranch(repoPath);
|
|
319
|
+
if (!upstreamBranch) {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
return remoteBranchExists(repoPath, upstreamBranch, remote);
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Safely pull latest, handling the case where upstream branch was deleted
|
|
326
|
+
* Returns true if pull succeeded, false if had to recover (checkout default branch)
|
|
327
|
+
*/
|
|
328
|
+
export async function safePullLatest(repoPath, defaultBranch = 'main', remote = 'origin') {
|
|
329
|
+
const git = getGitInstance(repoPath);
|
|
330
|
+
const currentBranch = await getCurrentBranch(repoPath);
|
|
331
|
+
// If we're on the default branch, just pull
|
|
332
|
+
if (currentBranch === defaultBranch) {
|
|
333
|
+
try {
|
|
334
|
+
await git.pull(remote);
|
|
335
|
+
return { pulled: true, recovered: false };
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
339
|
+
return { pulled: false, recovered: false, message: errorMsg };
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// Check if upstream branch still exists
|
|
343
|
+
const upstreamExists = await upstreamBranchExists(repoPath, remote);
|
|
344
|
+
if (!upstreamExists) {
|
|
345
|
+
// Upstream was deleted (likely after PR merge), recover by checking out default branch
|
|
346
|
+
try {
|
|
347
|
+
await git.checkout(defaultBranch);
|
|
348
|
+
await git.pull(remote);
|
|
349
|
+
return {
|
|
350
|
+
pulled: true,
|
|
351
|
+
recovered: true,
|
|
352
|
+
message: `Switched from '${currentBranch}' to '${defaultBranch}' (upstream branch was deleted)`
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
catch (error) {
|
|
356
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
357
|
+
return { pulled: false, recovered: false, message: errorMsg };
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// Upstream exists, normal pull
|
|
361
|
+
try {
|
|
362
|
+
await git.pull(remote);
|
|
363
|
+
return { pulled: true, recovered: false };
|
|
364
|
+
}
|
|
365
|
+
catch (error) {
|
|
366
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
367
|
+
return { pulled: false, recovered: false, message: errorMsg };
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Octokit } from '@octokit/rest';
|
|
2
|
+
import type { LinkedPR, RepoInfo, PRCreateOptions, PRMergeOptions } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get GitHub token from environment or gh CLI
|
|
5
|
+
*/
|
|
6
|
+
export declare function getGitHubToken(): string;
|
|
7
|
+
/**
|
|
8
|
+
* Get or create Octokit instance
|
|
9
|
+
*/
|
|
10
|
+
export declare function getOctokit(): Octokit;
|
|
11
|
+
/**
|
|
12
|
+
* Create a pull request
|
|
13
|
+
*/
|
|
14
|
+
export declare function createPullRequest(owner: string, repo: string, head: string, base: string, title: string, body: string, draft?: boolean): Promise<{
|
|
15
|
+
number: number;
|
|
16
|
+
url: string;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Update a pull request body
|
|
20
|
+
*/
|
|
21
|
+
export declare function updatePullRequestBody(owner: string, repo: string, pullNumber: number, body: string): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Get pull request details
|
|
24
|
+
*/
|
|
25
|
+
export declare function getPullRequest(owner: string, repo: string, pullNumber: number): Promise<{
|
|
26
|
+
number: number;
|
|
27
|
+
url: string;
|
|
28
|
+
title: string;
|
|
29
|
+
body: string;
|
|
30
|
+
state: 'open' | 'closed';
|
|
31
|
+
merged: boolean;
|
|
32
|
+
mergeable: boolean | null;
|
|
33
|
+
head: {
|
|
34
|
+
ref: string;
|
|
35
|
+
sha: string;
|
|
36
|
+
};
|
|
37
|
+
base: {
|
|
38
|
+
ref: string;
|
|
39
|
+
};
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Get reviews for a pull request
|
|
43
|
+
*/
|
|
44
|
+
export declare function getPullRequestReviews(owner: string, repo: string, pullNumber: number): Promise<{
|
|
45
|
+
state: string;
|
|
46
|
+
user: string;
|
|
47
|
+
}[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Check if a PR is approved
|
|
50
|
+
*/
|
|
51
|
+
export declare function isPullRequestApproved(owner: string, repo: string, pullNumber: number): Promise<boolean>;
|
|
52
|
+
/**
|
|
53
|
+
* Get combined status checks for a PR
|
|
54
|
+
*/
|
|
55
|
+
export declare function getStatusChecks(owner: string, repo: string, ref: string): Promise<{
|
|
56
|
+
state: 'success' | 'failure' | 'pending';
|
|
57
|
+
statuses: {
|
|
58
|
+
context: string;
|
|
59
|
+
state: string;
|
|
60
|
+
}[];
|
|
61
|
+
}>;
|
|
62
|
+
/**
|
|
63
|
+
* Merge a pull request
|
|
64
|
+
*/
|
|
65
|
+
export declare function mergePullRequest(owner: string, repo: string, pullNumber: number, options?: PRMergeOptions): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Get full linked PR information
|
|
68
|
+
*/
|
|
69
|
+
export declare function getLinkedPRInfo(owner: string, repo: string, pullNumber: number, repoName: string): Promise<LinkedPR>;
|
|
70
|
+
/**
|
|
71
|
+
* Find PRs with a specific branch name
|
|
72
|
+
*/
|
|
73
|
+
export declare function findPRByBranch(owner: string, repo: string, branch: string): Promise<{
|
|
74
|
+
number: number;
|
|
75
|
+
url: string;
|
|
76
|
+
} | null>;
|
|
77
|
+
/**
|
|
78
|
+
* Create PRs for all repos with changes
|
|
79
|
+
*/
|
|
80
|
+
export declare function createLinkedPRs(repos: RepoInfo[], branchName: string, options: PRCreateOptions, manifestPRNumber?: number): Promise<LinkedPR[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Generate manifest PR body with linked PR table
|
|
83
|
+
*/
|
|
84
|
+
export declare function generateManifestPRBody(title: string, linkedPRs: LinkedPR[], additionalBody?: string): string;
|
|
85
|
+
/**
|
|
86
|
+
* Parse linked PRs from manifest PR body
|
|
87
|
+
*/
|
|
88
|
+
export declare function parseLinkedPRsFromBody(body: string): {
|
|
89
|
+
repoName: string;
|
|
90
|
+
number: number;
|
|
91
|
+
}[];
|
|
92
|
+
//# sourceMappingURL=github.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/lib/github.ts"],"names":[],"mappings":"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"}
|