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.
Files changed (132) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +211 -0
  3. package/actions/cross-repo-sync/action.yml +55 -0
  4. package/assets/banner.svg +73 -0
  5. package/assets/icon.svg +30 -0
  6. package/assets/logo-dark.svg +36 -0
  7. package/assets/logo.svg +36 -0
  8. package/dist/commands/add.d.ts +9 -0
  9. package/dist/commands/add.d.ts.map +1 -0
  10. package/dist/commands/add.js +80 -0
  11. package/dist/commands/add.js.map +1 -0
  12. package/dist/commands/bench.d.ts +12 -0
  13. package/dist/commands/bench.d.ts.map +1 -0
  14. package/dist/commands/bench.js +136 -0
  15. package/dist/commands/bench.js.map +1 -0
  16. package/dist/commands/branch.d.ts +15 -0
  17. package/dist/commands/branch.d.ts.map +1 -0
  18. package/dist/commands/branch.js +159 -0
  19. package/dist/commands/branch.js.map +1 -0
  20. package/dist/commands/checkout.d.ts +10 -0
  21. package/dist/commands/checkout.d.ts.map +1 -0
  22. package/dist/commands/checkout.js +85 -0
  23. package/dist/commands/checkout.js.map +1 -0
  24. package/dist/commands/commit.d.ts +10 -0
  25. package/dist/commands/commit.d.ts.map +1 -0
  26. package/dist/commands/commit.js +94 -0
  27. package/dist/commands/commit.js.map +1 -0
  28. package/dist/commands/diff.d.ts +11 -0
  29. package/dist/commands/diff.d.ts.map +1 -0
  30. package/dist/commands/diff.js +105 -0
  31. package/dist/commands/diff.js.map +1 -0
  32. package/dist/commands/env.d.ts +8 -0
  33. package/dist/commands/env.d.ts.map +1 -0
  34. package/dist/commands/env.js +35 -0
  35. package/dist/commands/env.js.map +1 -0
  36. package/dist/commands/forall.d.ts +13 -0
  37. package/dist/commands/forall.d.ts.map +1 -0
  38. package/dist/commands/forall.js +116 -0
  39. package/dist/commands/forall.js.map +1 -0
  40. package/dist/commands/init.d.ts +15 -0
  41. package/dist/commands/init.d.ts.map +1 -0
  42. package/dist/commands/init.js +106 -0
  43. package/dist/commands/init.js.map +1 -0
  44. package/dist/commands/link.d.ts +11 -0
  45. package/dist/commands/link.d.ts.map +1 -0
  46. package/dist/commands/link.js +205 -0
  47. package/dist/commands/link.js.map +1 -0
  48. package/dist/commands/migrate.d.ts +17 -0
  49. package/dist/commands/migrate.d.ts.map +1 -0
  50. package/dist/commands/migrate.js +180 -0
  51. package/dist/commands/migrate.js.map +1 -0
  52. package/dist/commands/pr/create.d.ts +13 -0
  53. package/dist/commands/pr/create.d.ts.map +1 -0
  54. package/dist/commands/pr/create.js +202 -0
  55. package/dist/commands/pr/create.js.map +1 -0
  56. package/dist/commands/pr/index.d.ts +4 -0
  57. package/dist/commands/pr/index.d.ts.map +1 -0
  58. package/dist/commands/pr/index.js +4 -0
  59. package/dist/commands/pr/index.js.map +1 -0
  60. package/dist/commands/pr/merge.d.ts +11 -0
  61. package/dist/commands/pr/merge.d.ts.map +1 -0
  62. package/dist/commands/pr/merge.js +168 -0
  63. package/dist/commands/pr/merge.js.map +1 -0
  64. package/dist/commands/pr/status.d.ts +9 -0
  65. package/dist/commands/pr/status.d.ts.map +1 -0
  66. package/dist/commands/pr/status.js +139 -0
  67. package/dist/commands/pr/status.js.map +1 -0
  68. package/dist/commands/push.d.ts +10 -0
  69. package/dist/commands/push.d.ts.map +1 -0
  70. package/dist/commands/push.js +101 -0
  71. package/dist/commands/push.js.map +1 -0
  72. package/dist/commands/run.d.ts +8 -0
  73. package/dist/commands/run.d.ts.map +1 -0
  74. package/dist/commands/run.js +75 -0
  75. package/dist/commands/run.js.map +1 -0
  76. package/dist/commands/status.d.ts +9 -0
  77. package/dist/commands/status.d.ts.map +1 -0
  78. package/dist/commands/status.js +201 -0
  79. package/dist/commands/status.js.map +1 -0
  80. package/dist/commands/sync.d.ts +13 -0
  81. package/dist/commands/sync.d.ts.map +1 -0
  82. package/dist/commands/sync.js +183 -0
  83. package/dist/commands/sync.js.map +1 -0
  84. package/dist/index.d.ts +3 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +352 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/lib/__bench__/files.bench.d.ts +2 -0
  89. package/dist/lib/__bench__/files.bench.d.ts.map +1 -0
  90. package/dist/lib/__bench__/files.bench.js +52 -0
  91. package/dist/lib/__bench__/files.bench.js.map +1 -0
  92. package/dist/lib/__bench__/manifest.bench.d.ts +2 -0
  93. package/dist/lib/__bench__/manifest.bench.d.ts.map +1 -0
  94. package/dist/lib/__bench__/manifest.bench.js +74 -0
  95. package/dist/lib/__bench__/manifest.bench.js.map +1 -0
  96. package/dist/lib/files.d.ts +84 -0
  97. package/dist/lib/files.d.ts.map +1 -0
  98. package/dist/lib/files.js +492 -0
  99. package/dist/lib/files.js.map +1 -0
  100. package/dist/lib/git.d.ts +125 -0
  101. package/dist/lib/git.d.ts.map +1 -0
  102. package/dist/lib/git.js +370 -0
  103. package/dist/lib/git.js.map +1 -0
  104. package/dist/lib/github.d.ts +92 -0
  105. package/dist/lib/github.d.ts.map +1 -0
  106. package/dist/lib/github.js +284 -0
  107. package/dist/lib/github.js.map +1 -0
  108. package/dist/lib/hooks.d.ts +19 -0
  109. package/dist/lib/hooks.d.ts.map +1 -0
  110. package/dist/lib/hooks.js +63 -0
  111. package/dist/lib/hooks.js.map +1 -0
  112. package/dist/lib/linker.d.ts +56 -0
  113. package/dist/lib/linker.d.ts.map +1 -0
  114. package/dist/lib/linker.js +185 -0
  115. package/dist/lib/linker.js.map +1 -0
  116. package/dist/lib/manifest.d.ts +73 -0
  117. package/dist/lib/manifest.d.ts.map +1 -0
  118. package/dist/lib/manifest.js +400 -0
  119. package/dist/lib/manifest.js.map +1 -0
  120. package/dist/lib/scripts.d.ts +26 -0
  121. package/dist/lib/scripts.d.ts.map +1 -0
  122. package/dist/lib/scripts.js +123 -0
  123. package/dist/lib/scripts.js.map +1 -0
  124. package/dist/lib/timing.d.ts +100 -0
  125. package/dist/lib/timing.d.ts.map +1 -0
  126. package/dist/lib/timing.js +293 -0
  127. package/dist/lib/timing.js.map +1 -0
  128. package/dist/types.d.ts +312 -0
  129. package/dist/types.d.ts.map +1 -0
  130. package/dist/types.js +2 -0
  131. package/dist/types.js.map +1 -0
  132. package/package.json +60 -0
@@ -0,0 +1,312 @@
1
+ /**
2
+ * Configuration for copying a file from repo to workspace
3
+ */
4
+ export interface CopyFileConfig {
5
+ /** Source path relative to repo */
6
+ src: string;
7
+ /** Destination path relative to workspace root */
8
+ dest: string;
9
+ }
10
+ /**
11
+ * Configuration for creating a symlink from repo to workspace
12
+ */
13
+ export interface LinkFileConfig {
14
+ /** Source path relative to repo */
15
+ src: string;
16
+ /** Destination path relative to workspace root */
17
+ dest: string;
18
+ }
19
+ /**
20
+ * Configuration for a single repository in the manifest
21
+ */
22
+ export interface RepoConfig {
23
+ /** Git URL (SSH or HTTPS) */
24
+ url: string;
25
+ /** Local path relative to manifest root */
26
+ path: string;
27
+ /** Default branch name (e.g., main, master) */
28
+ default_branch: string;
29
+ /** Files to copy from repo to workspace */
30
+ copyfile?: CopyFileConfig[];
31
+ /** Symlinks to create from repo to workspace */
32
+ linkfile?: LinkFileConfig[];
33
+ }
34
+ /**
35
+ * Configuration for the manifest repository itself
36
+ */
37
+ export interface ManifestRepoConfig {
38
+ /** Git URL for the manifest repository */
39
+ url: string;
40
+ /** Default branch name (e.g., main, master) */
41
+ default_branch?: string;
42
+ /** Files to copy from manifest repo to workspace */
43
+ copyfile?: CopyFileConfig[];
44
+ /** Symlinks to create from manifest repo to workspace */
45
+ linkfile?: LinkFileConfig[];
46
+ }
47
+ /**
48
+ * Global settings for the manifest
49
+ */
50
+ export interface ManifestSettings {
51
+ /** Prefix for cross-repo PR titles */
52
+ pr_prefix: string;
53
+ /** Merge strategy: all-or-nothing means all linked PRs must merge together */
54
+ merge_strategy: 'all-or-nothing' | 'independent';
55
+ }
56
+ /**
57
+ * A step in a multi-step script
58
+ */
59
+ export interface ScriptStep {
60
+ /** Step name for display */
61
+ name: string;
62
+ /** Command to execute */
63
+ command: string;
64
+ /** Working directory relative to workspace root */
65
+ cwd?: string;
66
+ }
67
+ /**
68
+ * A workspace script definition
69
+ */
70
+ export interface WorkspaceScript {
71
+ /** Description of what the script does */
72
+ description?: string;
73
+ /** Single command to run (mutually exclusive with steps) */
74
+ command?: string;
75
+ /** Working directory for single command */
76
+ cwd?: string;
77
+ /** Multi-step commands (mutually exclusive with command) */
78
+ steps?: ScriptStep[];
79
+ }
80
+ /**
81
+ * A hook command to run
82
+ */
83
+ export interface HookCommand {
84
+ /** Command to execute */
85
+ command: string;
86
+ /** Working directory relative to workspace root */
87
+ cwd?: string;
88
+ }
89
+ /**
90
+ * Workspace hooks configuration
91
+ */
92
+ export interface WorkspaceHooks {
93
+ /** Hooks to run after sync */
94
+ 'post-sync'?: HookCommand[];
95
+ /** Hooks to run after checkout */
96
+ 'post-checkout'?: HookCommand[];
97
+ }
98
+ /**
99
+ * Workspace configuration section
100
+ */
101
+ export interface WorkspaceConfig {
102
+ /** Environment variables to set */
103
+ env?: Record<string, string>;
104
+ /** Named scripts */
105
+ scripts?: Record<string, WorkspaceScript>;
106
+ /** Lifecycle hooks */
107
+ hooks?: WorkspaceHooks;
108
+ }
109
+ /**
110
+ * The full manifest file structure (manifest.yaml)
111
+ */
112
+ export interface Manifest {
113
+ version: number;
114
+ /** Optional manifest repository configuration for self-tracking */
115
+ manifest?: ManifestRepoConfig;
116
+ repos: Record<string, RepoConfig>;
117
+ settings: ManifestSettings;
118
+ /** Workspace configuration for scripts, hooks, and env */
119
+ workspace?: WorkspaceConfig;
120
+ }
121
+ /**
122
+ * Parsed repository info with computed fields
123
+ */
124
+ export interface RepoInfo extends RepoConfig {
125
+ /** Repository name (key from manifest) */
126
+ name: string;
127
+ /** Absolute path on disk */
128
+ absolutePath: string;
129
+ /** Owner from GitHub URL */
130
+ owner: string;
131
+ /** Repo name from GitHub URL */
132
+ repo: string;
133
+ }
134
+ /**
135
+ * Status of a single repository
136
+ */
137
+ export interface RepoStatus {
138
+ /** Repository name */
139
+ name: string;
140
+ /** Current branch */
141
+ branch: string;
142
+ /** Whether working directory is clean */
143
+ clean: boolean;
144
+ /** Number of staged files */
145
+ staged: number;
146
+ /** Number of modified files */
147
+ modified: number;
148
+ /** Number of untracked files */
149
+ untracked: number;
150
+ /** Commits ahead of remote */
151
+ ahead: number;
152
+ /** Commits behind remote */
153
+ behind: number;
154
+ /** Whether repo exists on disk */
155
+ exists: boolean;
156
+ }
157
+ /**
158
+ * A linked PR in a child repository
159
+ */
160
+ export interface LinkedPR {
161
+ /** Repository name (from manifest) */
162
+ repoName: string;
163
+ /** Owner on GitHub */
164
+ owner: string;
165
+ /** Repo name on GitHub */
166
+ repo: string;
167
+ /** PR number */
168
+ number: number;
169
+ /** PR URL */
170
+ url: string;
171
+ /** PR state: open, closed, merged */
172
+ state: 'open' | 'closed' | 'merged';
173
+ /** Whether PR is approved */
174
+ approved: boolean;
175
+ /** Whether all checks passed */
176
+ checksPass: boolean;
177
+ /** Whether PR is mergeable */
178
+ mergeable: boolean;
179
+ }
180
+ /**
181
+ * A manifest PR that tracks linked child PRs
182
+ */
183
+ export interface ManifestPR {
184
+ /** Manifest PR number */
185
+ number: number;
186
+ /** Manifest PR URL */
187
+ url: string;
188
+ /** PR title */
189
+ title: string;
190
+ /** Linked child PRs */
191
+ linkedPRs: LinkedPR[];
192
+ /** Overall state */
193
+ state: 'open' | 'closed' | 'merged';
194
+ /** Whether all linked PRs are ready to merge */
195
+ readyToMerge: boolean;
196
+ }
197
+ /**
198
+ * State file for tracking cross-repo work (.gitgrip/state.json)
199
+ */
200
+ export interface StateFile {
201
+ /** Current manifest PR being worked on */
202
+ currentManifestPR?: number;
203
+ /** Map of branch names to manifest PR numbers */
204
+ branchToPR: Record<string, number>;
205
+ /** Map of manifest PR numbers to linked PRs */
206
+ prLinks: Record<number, LinkedPR[]>;
207
+ }
208
+ /**
209
+ * Result of a git operation across repos
210
+ */
211
+ export interface MultiRepoResult<T> {
212
+ /** Repository name */
213
+ repoName: string;
214
+ /** Whether operation succeeded */
215
+ success: boolean;
216
+ /** Result data if successful */
217
+ data?: T;
218
+ /** Error message if failed */
219
+ error?: string;
220
+ }
221
+ /**
222
+ * Options for PR creation
223
+ */
224
+ export interface PRCreateOptions {
225
+ /** PR title */
226
+ title: string;
227
+ /** PR body/description */
228
+ body?: string;
229
+ /** Base branch to merge into */
230
+ base?: string;
231
+ /** Whether to create as draft */
232
+ draft?: boolean;
233
+ /** Only create PRs for repos with changes */
234
+ changesOnly?: boolean;
235
+ }
236
+ /**
237
+ * Options for PR merge
238
+ */
239
+ export interface PRMergeOptions {
240
+ /** Merge method: merge, squash, or rebase */
241
+ method?: 'merge' | 'squash' | 'rebase';
242
+ /** Whether to delete branches after merge */
243
+ deleteBranch?: boolean;
244
+ /** Whether to skip confirmation */
245
+ force?: boolean;
246
+ }
247
+ /**
248
+ * GitHub repository info extracted from URL
249
+ */
250
+ export interface GitHubRepoInfo {
251
+ owner: string;
252
+ repo: string;
253
+ }
254
+ /**
255
+ * Status of a file link (copyfile or linkfile)
256
+ */
257
+ export interface LinkStatus {
258
+ /** Type of link */
259
+ type: 'copyfile' | 'linkfile';
260
+ /** Repository name */
261
+ repoName: string;
262
+ /** Source path (absolute) */
263
+ src: string;
264
+ /** Destination path (absolute) */
265
+ dest: string;
266
+ /** Status of the link */
267
+ status: 'valid' | 'broken' | 'missing' | 'conflict';
268
+ /** Additional message */
269
+ message?: string;
270
+ }
271
+ /**
272
+ * A single timing entry in a timing report
273
+ */
274
+ export interface TimingEntry {
275
+ /** Label for this timing phase */
276
+ label: string;
277
+ /** Duration in milliseconds */
278
+ duration: number;
279
+ /** Nested timing entries */
280
+ children?: TimingEntry[];
281
+ }
282
+ /**
283
+ * A complete timing report with all phases
284
+ */
285
+ export interface TimingReport {
286
+ /** Total duration in milliseconds */
287
+ total: number;
288
+ /** Individual timing entries */
289
+ entries: TimingEntry[];
290
+ }
291
+ /**
292
+ * Result of a benchmark run
293
+ */
294
+ export interface BenchmarkResult {
295
+ /** Benchmark name */
296
+ name: string;
297
+ /** Number of iterations run */
298
+ iterations: number;
299
+ /** Minimum duration in milliseconds */
300
+ min: number;
301
+ /** Maximum duration in milliseconds */
302
+ max: number;
303
+ /** Average duration in milliseconds */
304
+ avg: number;
305
+ /** 50th percentile (median) in milliseconds */
306
+ p50: number;
307
+ /** 95th percentile in milliseconds */
308
+ p95: number;
309
+ /** Standard deviation in milliseconds */
310
+ stdDev: number;
311
+ }
312
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "gitgrip",
3
+ "version": "0.2.0",
4
+ "description": "git a grip - Multi-repo workflow tool",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "gitgrip": "dist/index.js",
9
+ "gr": "dist/index.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "dev": "tsx src/index.ts",
14
+ "lint": "eslint src/",
15
+ "test": "vitest",
16
+ "bench": "vitest bench",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "keywords": [
20
+ "git",
21
+ "gitgrip",
22
+ "grip",
23
+ "multi-repo",
24
+ "monorepo",
25
+ "github",
26
+ "pr",
27
+ "cli",
28
+ "workflow"
29
+ ],
30
+ "author": "Layne Penney",
31
+ "license": "MIT",
32
+ "homepage": "https://github.com/laynepenney/gitgrip#readme",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/laynepenney/gitgrip.git"
36
+ },
37
+ "bugs": {
38
+ "url": "https://github.com/laynepenney/gitgrip/issues"
39
+ },
40
+ "dependencies": {
41
+ "@octokit/rest": "^21.0.0",
42
+ "chalk": "^5.3.0",
43
+ "commander": "^12.0.0",
44
+ "inquirer": "^9.2.0",
45
+ "ora": "^8.0.0",
46
+ "simple-git": "^3.22.0",
47
+ "yaml": "^2.3.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/inquirer": "^9.0.7",
51
+ "@types/node": "^20.11.0",
52
+ "eslint": "^8.56.0",
53
+ "tsx": "^4.7.0",
54
+ "typescript": "^5.3.0",
55
+ "vitest": "^1.2.0"
56
+ },
57
+ "engines": {
58
+ "node": ">=18.0.0"
59
+ }
60
+ }