@saferun/cli 0.3.9 → 0.5.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.
@@ -30,8 +30,9 @@ function parseBranchArgs(args) {
30
30
  return { branches, force };
31
31
  }
32
32
  async function interceptBranchDelete(context) {
33
- var _a, _b, _c, _d, _e, _f, _g;
33
+ var _a, _b;
34
34
  const { branches, force } = parseBranchArgs(context.args);
35
+ // If no branches to delete, just run the command
35
36
  if (branches.length === 0) {
36
37
  return (0, git_1.runGitCommand)(['branch', ...context.args], {
37
38
  cwd: context.gitInfo.repoRoot,
@@ -39,146 +40,51 @@ async function interceptBranchDelete(context) {
39
40
  });
40
41
  }
41
42
  const repoSlug = context.config.github.repo === 'auto' ? (_a = context.gitInfo.repoSlug) !== null && _a !== void 0 ? _a : 'local/repo' : context.config.github.repo;
42
- const defaultBranch = (_b = context.gitInfo.defaultBranch) !== null && _b !== void 0 ? _b : 'main';
43
- const rule = (_c = context.config.rules) === null || _c === void 0 ? void 0 : _c.branch_delete;
44
- const branchRules = (_d = context.config.github.branch_rules) !== null && _d !== void 0 ? _d : [];
43
+ const githubToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
44
+ if (!githubToken) {
45
+ console.error(chalk_1.default.red('GitHub token not found. Set GITHUB_TOKEN or GH_TOKEN environment variable.'));
46
+ return 1;
47
+ }
45
48
  const approvals = [];
46
49
  for (const branchName of branches) {
47
- const protectedBranch = (0, git_1.isProtectedBranch)(branchName, (_e = context.config.github.protected_branches) !== null && _e !== void 0 ? _e : []);
48
- const branchRule = branchRules.find((entry) => (0, git_1.matchesBranchPattern)(branchName, entry.pattern));
49
- if (branchRule === null || branchRule === void 0 ? void 0 : branchRule.skip_checks) {
50
- context.metrics.track('operation_allowed', {
51
- hook: 'alias:branch',
52
- operation_type: 'branch_delete',
53
- repo: repoSlug,
54
- branch: branchName,
55
- reason: 'branch_rule_skip_checks',
56
- }).catch(() => undefined);
57
- await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
58
- event: 'branch_delete',
59
- operation: 'branch_delete',
60
- repo: repoSlug,
61
- branch: branchName,
62
- outcome: 'skip_checks',
63
- });
64
- continue;
65
- }
66
- const { ahead } = await (0, git_1.getAheadBehind)(branchName, defaultBranch, context.gitInfo.repoRoot);
67
- const reasons = [];
68
- if (protectedBranch)
69
- reasons.push('protected_branch');
70
- if (force)
71
- reasons.push('force_delete');
72
- if (ahead > 0)
73
- reasons.push(`unmerged_commits:${ahead}`);
74
- if (branchRule === null || branchRule === void 0 ? void 0 : branchRule.risk_level)
75
- reasons.push(`branch_rule_risk:${branchRule.risk_level}`);
76
- const humanPreview = protectedBranch
77
- ? `Delete protected branch ${branchName}${ahead > 0 ? ` with ${ahead} unmerged commits` : ''}`
78
- : `Delete branch ${branchName}${ahead > 0 ? ` with ${ahead} unmerged commits` : ''}`;
79
- let riskScore = protectedBranch ? 9 : force ? 7.5 : 6;
80
- riskScore += Math.min(ahead * 0.4, 2);
81
- if ((branchRule === null || branchRule === void 0 ? void 0 : branchRule.risk_level) === 'low')
82
- riskScore = Math.min(riskScore, 5);
83
- if ((branchRule === null || branchRule === void 0 ? void 0 : branchRule.risk_level) === 'high')
84
- riskScore = Math.max(riskScore, 8.5);
85
- if ((rule === null || rule === void 0 ? void 0 : rule.risk_score) != null)
86
- riskScore = rule.risk_score;
87
- riskScore = clampRisk(riskScore);
88
- const excludedByRule = (_f = rule === null || rule === void 0 ? void 0 : rule.exclude_patterns) === null || _f === void 0 ? void 0 : _f.some((pattern) => (0, git_1.matchesBranchPattern)(branchName, pattern));
89
- if (excludedByRule) {
90
- context.metrics.track('operation_allowed', {
91
- hook: 'alias:branch',
92
- operation_type: 'branch_delete',
93
- repo: repoSlug,
94
- branch: branchName,
95
- reason: 'rule_excluded',
96
- }).catch(() => undefined);
97
- await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
98
- event: 'branch_delete',
99
- operation: 'branch_delete',
50
+ try {
51
+ // Call SafeRun API to check if branch delete needs approval
52
+ const dryRun = await context.client.deleteGithubBranch({
100
53
  repo: repoSlug,
101
54
  branch: branchName,
102
- outcome: 'rule_excluded',
55
+ githubToken,
56
+ webhookUrl: (_b = context.config.notifications) === null || _b === void 0 ? void 0 : _b.webhook_url,
103
57
  });
104
- continue;
105
- }
106
- const enforcement = resolveEnforcement(context.modeSettings, rule === null || rule === void 0 ? void 0 : rule.action, 'require_approval');
107
- if (enforcement.action === 'allow' || enforcement.action === 'warn') {
108
- if (enforcement.action === 'warn' || ((_g = context.modeSettings) === null || _g === void 0 ? void 0 : _g.show_warnings)) {
109
- console.warn(chalk_1.default.yellow(`SafeRun warning: deleting branch '${branchName}'.`));
110
- }
111
- context.metrics.track('operation_allowed', {
58
+ // Track the operation
59
+ context.metrics.track('branch_delete_check', {
112
60
  hook: 'alias:branch',
113
61
  operation_type: 'branch_delete',
114
62
  repo: repoSlug,
115
63
  branch: branchName,
116
- reason: enforcement.action === 'warn' ? 'policy_warn' : 'policy_allow',
64
+ needs_approval: dryRun.needsApproval,
65
+ change_id: dryRun.changeId,
117
66
  }).catch(() => undefined);
118
- await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
119
- event: 'branch_delete',
120
- operation: 'branch_delete',
121
- repo: repoSlug,
122
- branch: branchName,
123
- outcome: enforcement.action === 'warn' ? 'policy_warn' : 'policy_allow',
124
- });
125
- continue;
126
- }
127
- const requiresApproval = enforcement.requiresApproval || enforcement.shouldBlock;
128
- const command = `git branch ${force ? '-D' : '-d'} ${branchName}`;
129
- try {
130
- const dryRun = await context.client.gitOperation({
131
- operationType: 'branch_delete',
132
- target: `${repoSlug}#${branchName}`,
133
- command,
134
- metadata: {
135
- repo: repoSlug,
136
- branch: branchName,
137
- protectedBranch,
138
- force,
139
- unmergedCommits: ahead,
140
- },
141
- riskScore: riskScore / 10,
142
- humanPreview,
143
- requiresApproval,
144
- reasons,
145
- });
146
- if (!dryRun.needsApproval && !enforcement.shouldBlock) {
67
+ // If no approval needed, API will handle it automatically
68
+ if (!dryRun.needsApproval) {
147
69
  context.metrics.track('operation_allowed', {
148
70
  hook: 'alias:branch',
149
71
  operation_type: 'branch_delete',
150
72
  repo: repoSlug,
151
73
  branch: branchName,
152
- reason: 'api_allows',
74
+ reason: 'api_auto_execute',
153
75
  }).catch(() => undefined);
154
76
  await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
155
77
  event: 'branch_delete',
156
78
  operation: 'branch_delete',
157
79
  repo: repoSlug,
158
80
  branch: branchName,
159
- outcome: 'api_allows',
81
+ outcome: 'auto_execute',
82
+ change_id: dryRun.changeId,
160
83
  });
84
+ console.log(chalk_1.default.green(`✓ Branch '${branchName}' will be deleted (auto-executed by API, revert available for 2h)`));
161
85
  continue;
162
86
  }
163
- if (!dryRun.needsApproval && enforcement.shouldBlock) {
164
- console.error(chalk_1.default.red(`SafeRun policy blocks deletion of '${branchName}'.`));
165
- context.metrics.track('operation_blocked', {
166
- hook: 'alias:branch',
167
- operation_type: 'branch_delete',
168
- repo: repoSlug,
169
- branch: branchName,
170
- reason: 'policy_block',
171
- }).catch(() => undefined);
172
- await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
173
- event: 'branch_delete',
174
- operation: 'branch_delete',
175
- repo: repoSlug,
176
- branch: branchName,
177
- outcome: 'blocked',
178
- reason: 'policy_block',
179
- });
180
- return 1;
181
- }
87
+ // Request approval through SafeRun flow
182
88
  const flow = new approval_flow_1.ApprovalFlow({
183
89
  client: context.client,
184
90
  metrics: context.metrics,
@@ -187,36 +93,33 @@ async function interceptBranchDelete(context) {
187
93
  });
188
94
  const outcome = await flow.requestApproval(dryRun);
189
95
  if (outcome !== approval_flow_1.ApprovalOutcome.Approved && outcome !== approval_flow_1.ApprovalOutcome.Bypassed) {
190
- await context.client.confirmGitOperation({
191
- changeId: dryRun.changeId,
192
- status: 'cancelled',
193
- metadata: { branch: branchName, repo: repoSlug },
194
- });
96
+ console.error(chalk_1.default.red(`✗ SafeRun blocked deletion of branch '${branchName}' (${outcome})`));
195
97
  await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
196
98
  event: 'branch_delete',
197
99
  operation: 'branch_delete',
198
100
  repo: repoSlug,
199
101
  branch: branchName,
200
102
  outcome: 'cancelled',
103
+ change_id: dryRun.changeId,
201
104
  });
202
- console.error(chalk_1.default.red(`SafeRun blocked deletion of branch '${branchName}'.`));
203
105
  return 1;
204
106
  }
205
107
  approvals.push({
206
108
  branch: branchName,
207
109
  changeId: dryRun.changeId,
208
- metadata: { branch: branchName, repo: repoSlug, bypassed: outcome === approval_flow_1.ApprovalOutcome.Bypassed },
110
+ bypassed: outcome === approval_flow_1.ApprovalOutcome.Bypassed,
209
111
  });
112
+ console.log(chalk_1.default.green(`✓ Branch '${branchName}' approved for deletion`));
210
113
  }
211
114
  catch (error) {
212
115
  const message = error instanceof Error ? error.message : String(error);
213
- console.error(chalk_1.default.red(`SafeRun error while evaluating branch delete: ${message}`));
214
- context.metrics.track('operation_allowed', {
116
+ console.error(chalk_1.default.red(`SafeRun API error for branch '${branchName}': ${message}`));
117
+ context.metrics.track('operation_error', {
215
118
  hook: 'alias:branch',
216
119
  operation_type: 'branch_delete',
217
120
  repo: repoSlug,
218
121
  branch: branchName,
219
- reason: 'api_error',
122
+ error: message,
220
123
  }).catch(() => undefined);
221
124
  await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
222
125
  event: 'branch_delete',
@@ -226,91 +129,48 @@ async function interceptBranchDelete(context) {
226
129
  outcome: 'api_error',
227
130
  error: message,
228
131
  });
132
+ return 1;
229
133
  }
230
134
  }
231
- const exitCode = await (0, git_1.runGitCommand)(['branch', ...context.args], {
232
- cwd: context.gitInfo.repoRoot,
233
- disableAliases: ['branch'],
234
- });
235
- for (const approval of approvals) {
236
- await context.client.confirmGitOperation({
237
- changeId: approval.changeId,
238
- status: exitCode === 0 ? 'applied' : 'failed',
239
- metadata: exitCode === 0 ? approval.metadata : { ...approval.metadata, exitCode },
135
+ // Execute git branch delete for approved branches
136
+ if (approvals.length > 0) {
137
+ const exitCode = await (0, git_1.runGitCommand)(['branch', ...context.args], {
138
+ cwd: context.gitInfo.repoRoot,
139
+ disableAliases: ['branch'],
240
140
  });
241
- }
242
- if (exitCode === 0) {
243
- for (const branchName of branches) {
244
- context.metrics.track('operation_allowed', {
245
- hook: 'alias:branch',
246
- operation_type: 'branch_delete',
247
- repo: repoSlug,
248
- branch: branchName,
249
- reason: 'executed',
250
- }).catch(() => undefined);
251
- await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
252
- event: 'branch_delete',
253
- operation: 'branch_delete',
254
- repo: repoSlug,
255
- branch: branchName,
256
- outcome: 'executed',
257
- });
258
- }
259
- }
260
- else {
261
- for (const branchName of branches) {
262
- context.metrics.track('operation_blocked', {
263
- hook: 'alias:branch',
264
- operation_type: 'branch_delete',
265
- repo: repoSlug,
266
- branch: branchName,
267
- reason: 'git_failed',
268
- }).catch(() => undefined);
269
- await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
270
- event: 'branch_delete',
271
- operation: 'branch_delete',
272
- repo: repoSlug,
273
- branch: branchName,
274
- outcome: 'failed',
275
- exitCode,
276
- });
141
+ // Log execution results
142
+ for (const approval of approvals) {
143
+ if (exitCode === 0) {
144
+ context.metrics.track('operation_executed', {
145
+ hook: 'alias:branch',
146
+ operation_type: 'branch_delete',
147
+ repo: repoSlug,
148
+ branch: approval.branch,
149
+ change_id: approval.changeId,
150
+ }).catch(() => undefined);
151
+ await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
152
+ event: 'branch_delete',
153
+ operation: 'branch_delete',
154
+ repo: repoSlug,
155
+ branch: approval.branch,
156
+ outcome: 'executed',
157
+ change_id: approval.changeId,
158
+ });
159
+ }
160
+ else {
161
+ await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
162
+ event: 'branch_delete',
163
+ operation: 'branch_delete',
164
+ repo: repoSlug,
165
+ branch: approval.branch,
166
+ outcome: 'failed',
167
+ exitCode,
168
+ change_id: approval.changeId,
169
+ });
170
+ }
277
171
  }
172
+ return exitCode;
278
173
  }
279
- return exitCode;
280
- }
281
- function resolveEnforcement(modeSettings, ruleAction, defaultAction) {
282
- var _a;
283
- if ((modeSettings === null || modeSettings === void 0 ? void 0 : modeSettings.block_operations) === false) {
284
- const warn = (modeSettings === null || modeSettings === void 0 ? void 0 : modeSettings.show_warnings) === true;
285
- return {
286
- action: warn ? 'warn' : 'allow',
287
- requiresApproval: false,
288
- shouldBlock: false,
289
- };
290
- }
291
- let action = (_a = ruleAction) !== null && _a !== void 0 ? _a : defaultAction;
292
- if (action === 'warn' && (modeSettings === null || modeSettings === void 0 ? void 0 : modeSettings.show_warnings) === false) {
293
- action = 'allow';
294
- }
295
- if (action === 'require_approval' && (modeSettings === null || modeSettings === void 0 ? void 0 : modeSettings.require_approval) === false) {
296
- action = (modeSettings === null || modeSettings === void 0 ? void 0 : modeSettings.show_warnings) ? 'warn' : 'allow';
297
- }
298
- switch (action) {
299
- case 'allow':
300
- return { action: 'allow', requiresApproval: false, shouldBlock: false };
301
- case 'warn':
302
- return { action: 'warn', requiresApproval: false, shouldBlock: false };
303
- case 'block':
304
- return { action: 'block', requiresApproval: true, shouldBlock: true };
305
- case 'require_approval':
306
- default:
307
- return { action: 'require_approval', requiresApproval: true, shouldBlock: false };
308
- }
309
- }
310
- function clampRisk(score) {
311
- if (Number.isNaN(score)) {
312
- return 0;
313
- }
314
- return Math.min(10, Math.max(0, score));
174
+ return 0;
315
175
  }
316
176
  //# sourceMappingURL=branch-delete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch-delete.js","sourceRoot":"","sources":["../../src/interceptors/branch-delete.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"branch-delete.js","sourceRoot":"","sources":["../../src/interceptors/branch-delete.ts"],"names":[],"mappings":";;;;;AAmCA,sDAqKC;AAxMD,kDAA0B;AAE1B,0DAAuE;AACvE,sCAA6C;AAC7C,4CAA+C;AAQ/C,SAAS,eAAe,CAAC,IAAc;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,OAA2B;;IACrE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,iDAAiD;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAA,mBAAa,EAAC,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;YAChD,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;YAC7B,cAAc,EAAE,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,OAAO,CAAC,QAAQ,mCAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/H,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAErE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAC;QACvG,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,4DAA4D;YAC5D,MAAM,MAAM,GAAiB,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBACnE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;gBAClB,WAAW;gBACX,UAAU,EAAE,MAAA,OAAO,CAAC,MAAM,CAAC,aAAa,0CAAE,WAAiC;aAC5E,CAAC,CAAC;YAEH,sBAAsB;YACtB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE;gBAC3C,IAAI,EAAE,cAAc;gBACpB,cAAc,EAAE,eAAe;gBAC/B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;gBAClB,cAAc,EAAE,MAAM,CAAC,aAAa;gBACpC,SAAS,EAAE,MAAM,CAAC,QAAQ;aAC3B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAE1B,0DAA0D;YAC1D,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE;oBACzC,IAAI,EAAE,cAAc;oBACpB,cAAc,EAAE,eAAe;oBAC/B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,kBAAkB;iBAC3B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAE1B,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC3C,KAAK,EAAE,eAAe;oBACtB,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,cAAc;oBACvB,SAAS,EAAE,MAAM,CAAC,QAAQ;iBAC3B,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,UAAU,mEAAmE,CAAC,CAAC,CAAC;gBACrH,SAAS;YACX,CAAC;YAED,wCAAwC;YACxC,MAAM,IAAI,GAAG,IAAI,4BAAY,CAAC;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAEnD,IAAI,OAAO,KAAK,+BAAe,CAAC,QAAQ,IAAI,OAAO,KAAK,+BAAe,CAAC,QAAQ,EAAE,CAAC;gBACjF,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,yCAAyC,UAAU,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC;gBAE9F,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC3C,KAAK,EAAE,eAAe;oBACtB,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,WAAW;oBACpB,SAAS,EAAE,MAAM,CAAC,QAAQ;iBAC3B,CAAC,CAAC;gBAEH,OAAO,CAAC,CAAC;YACX,CAAC;YAED,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,OAAO,KAAK,+BAAe,CAAC,QAAQ;aAC/C,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,UAAU,yBAAyB,CAAC,CAAC,CAAC;QAE7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,UAAU,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC;YAErF,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACvC,IAAI,EAAE,cAAc;gBACpB,cAAc,EAAE,eAAe;gBAC/B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,OAAO;aACf,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAE1B,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC3C,KAAK,EAAE,eAAe;gBACtB,SAAS,EAAE,eAAe;gBAC1B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;YAEH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAa,EAAC,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;YAChE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;YAC7B,cAAc,EAAE,CAAC,QAAQ,CAAC;SAC3B,CAAC,CAAC;QAEH,wBAAwB;QACxB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE;oBAC1C,IAAI,EAAE,cAAc;oBACpB,cAAc,EAAE,eAAe;oBAC/B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,SAAS,EAAE,QAAQ,CAAC,QAAQ;iBAC7B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAE1B,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC3C,KAAK,EAAE,eAAe;oBACtB,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,QAAQ,CAAC,QAAQ;iBAC7B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC3C,KAAK,EAAE,eAAe;oBACtB,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,QAAQ;oBACjB,QAAQ;oBACR,SAAS,EAAE,QAAQ,CAAC,QAAQ;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { InterceptorContext } from './types';
2
+ export declare function interceptForcePush(context: InterceptorContext): Promise<number>;
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.interceptForcePush = interceptForcePush;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const approval_flow_1 = require("../utils/approval-flow");
9
+ const git_1 = require("../utils/git");
10
+ const logger_1 = require("../utils/logger");
11
+ function parsePushArgs(args) {
12
+ let remote = 'origin';
13
+ let branch = '';
14
+ let isForce = false;
15
+ // Check for --force or -f flag
16
+ for (const arg of args) {
17
+ if (arg === '--force' || arg === '-f' || arg === '--force-with-lease') {
18
+ isForce = true;
19
+ }
20
+ }
21
+ // If not force push, skip interception
22
+ if (!isForce) {
23
+ return null;
24
+ }
25
+ // Parse remote and branch
26
+ const nonFlags = args.filter((arg) => !arg.startsWith('-'));
27
+ if (nonFlags.length > 0) {
28
+ remote = nonFlags[0];
29
+ }
30
+ if (nonFlags.length > 1) {
31
+ branch = nonFlags[1];
32
+ }
33
+ // If no branch specified, get current branch
34
+ if (!branch) {
35
+ try {
36
+ const { execSync } = require('child_process');
37
+ branch = execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }).trim();
38
+ }
39
+ catch {
40
+ branch = 'HEAD';
41
+ }
42
+ }
43
+ return { remote, branch, isForce };
44
+ }
45
+ async function interceptForcePush(context) {
46
+ var _a, _b;
47
+ const params = parsePushArgs(context.args);
48
+ // If not force push, run normally
49
+ if (!params || !params.isForce) {
50
+ return (0, git_1.runGitCommand)(['push', ...context.args], {
51
+ cwd: context.gitInfo.repoRoot,
52
+ disableAliases: ['push'],
53
+ });
54
+ }
55
+ const repoSlug = context.config.github.repo === 'auto' ? (_a = context.gitInfo.repoSlug) !== null && _a !== void 0 ? _a : 'local/repo' : context.config.github.repo;
56
+ const githubToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
57
+ if (!githubToken) {
58
+ console.error(chalk_1.default.red('GitHub token not found. Set GITHUB_TOKEN or GH_TOKEN environment variable.'));
59
+ return 1;
60
+ }
61
+ console.log(chalk_1.default.yellow(`⚠️ Force push detected: ${params.remote}/${params.branch}`));
62
+ console.log(chalk_1.default.yellow(' This is a DANGEROUS operation - it rewrites history!'));
63
+ try {
64
+ // Get current commit SHA
65
+ let commitSha;
66
+ try {
67
+ const { execSync } = require('child_process');
68
+ commitSha = execSync('git rev-parse HEAD', { encoding: 'utf-8' }).trim();
69
+ }
70
+ catch {
71
+ commitSha = 'unknown';
72
+ }
73
+ // Call SafeRun API to check if force push needs approval
74
+ const dryRun = await context.client.forcePushGithub({
75
+ repo: repoSlug,
76
+ branch: params.branch,
77
+ githubToken,
78
+ reason: `Force push to ${params.branch} (rewrites history)`,
79
+ webhookUrl: (_b = context.config.notifications) === null || _b === void 0 ? void 0 : _b.webhook_url,
80
+ });
81
+ // Track the operation
82
+ context.metrics.track('force_push_check', {
83
+ hook: 'alias:push',
84
+ operation_type: 'force_push',
85
+ repo: repoSlug,
86
+ branch: params.branch,
87
+ needs_approval: dryRun.needsApproval,
88
+ change_id: dryRun.changeId,
89
+ commit_sha: commitSha,
90
+ }).catch(() => undefined);
91
+ // Force push ALWAYS requires approval (IRREVERSIBLE)
92
+ if (!dryRun.needsApproval) {
93
+ console.log(chalk_1.default.red('⚠️ CRITICAL: Force push should ALWAYS require approval!'));
94
+ console.log(chalk_1.default.red(' This is a bug - contact SafeRun support.'));
95
+ return 1;
96
+ }
97
+ // Request approval through SafeRun flow
98
+ const flow = new approval_flow_1.ApprovalFlow({
99
+ client: context.client,
100
+ metrics: context.metrics,
101
+ config: context.config,
102
+ modeSettings: context.modeSettings,
103
+ });
104
+ const outcome = await flow.requestApproval(dryRun);
105
+ if (outcome !== approval_flow_1.ApprovalOutcome.Approved && outcome !== approval_flow_1.ApprovalOutcome.Bypassed) {
106
+ console.error(chalk_1.default.red(`✗ SafeRun blocked force push to '${params.branch}' (${outcome})`));
107
+ await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
108
+ event: 'force_push',
109
+ operation: 'force_push',
110
+ repo: repoSlug,
111
+ branch: params.branch,
112
+ outcome: 'cancelled',
113
+ change_id: dryRun.changeId,
114
+ });
115
+ context.metrics.track('operation_blocked', {
116
+ hook: 'alias:push',
117
+ operation_type: 'force_push',
118
+ repo: repoSlug,
119
+ branch: params.branch,
120
+ outcome,
121
+ }).catch(() => undefined);
122
+ return 1;
123
+ }
124
+ // Approved - execute force push
125
+ console.log(chalk_1.default.green(`✓ Force push approved - executing...`));
126
+ await (0, logger_1.logOperation)(context.gitInfo.repoRoot, {
127
+ event: 'force_push',
128
+ operation: 'force_push',
129
+ repo: repoSlug,
130
+ branch: params.branch,
131
+ outcome: 'approved',
132
+ change_id: dryRun.changeId,
133
+ });
134
+ context.metrics.track('operation_approved', {
135
+ hook: 'alias:push',
136
+ operation_type: 'force_push',
137
+ repo: repoSlug,
138
+ branch: params.branch,
139
+ }).catch(() => undefined);
140
+ // Execute the force push
141
+ // 3. Execute push command
142
+ const exitCode = await (0, git_1.runGitCommand)(['push', ...context.args], {
143
+ cwd: context.gitInfo.repoRoot,
144
+ disableAliases: ['push'],
145
+ });
146
+ if (exitCode === 0) {
147
+ console.log(chalk_1.default.green(`✓ Force pushed to ${params.remote}/${params.branch}`));
148
+ console.log(chalk_1.default.yellow(`⚠️ History has been rewritten - other users will need to force pull!`));
149
+ // Confirm execution to SafeRun
150
+ try {
151
+ // Record execution
152
+ await context.client.applyChange(dryRun.changeId, true);
153
+ }
154
+ catch (err) {
155
+ console.warn(chalk_1.default.yellow('Warning: Failed to confirm execution to SafeRun'));
156
+ }
157
+ }
158
+ return exitCode;
159
+ }
160
+ catch (error) {
161
+ console.error(chalk_1.default.red(`✗ SafeRun force push check failed: ${error.message}`));
162
+ context.metrics.track('operation_error', {
163
+ hook: 'alias:push',
164
+ operation_type: 'force_push',
165
+ repo: repoSlug,
166
+ branch: params.branch,
167
+ error: error.message,
168
+ }).catch(() => undefined);
169
+ // In case of API error, allow the operation (fail-open)
170
+ console.log(chalk_1.default.yellow('⚠️ Proceeding without SafeRun protection due to error'));
171
+ return (0, git_1.runGitCommand)(['push', ...context.args], {
172
+ cwd: context.gitInfo.repoRoot,
173
+ disableAliases: ['push'],
174
+ });
175
+ }
176
+ }
177
+ //# sourceMappingURL=force-push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"force-push.js","sourceRoot":"","sources":["../../src/interceptors/force-push.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,21 @@ class OnlineClientWithFallback {
60
60
  this.cache = options.cache;
61
61
  this.defaultAction = options.defaultAction;
62
62
  this.cacheDuration = options.cacheDuration;
63
+ // Return a proxy that forwards all methods to onlineClient
64
+ return new Proxy(this, {
65
+ get(target, prop, receiver) {
66
+ // If method exists on target (OnlineClientWithFallback), use it
67
+ if (prop in target) {
68
+ return Reflect.get(target, prop, receiver);
69
+ }
70
+ // Otherwise, forward to onlineClient (SafeRunClient)
71
+ const value = target.onlineClient[prop];
72
+ if (typeof value === 'function') {
73
+ return value.bind(target.onlineClient);
74
+ }
75
+ return value;
76
+ },
77
+ });
63
78
  }
64
79
  async gitOperation(params) {
65
80
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/utils/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/utils/api-client.ts"],"names":[],"mappings":"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"}
@@ -63,7 +63,7 @@ const DEFAULT_CONFIG = {
63
63
  error_handling: {
64
64
  '403_forbidden': {
65
65
  action: 'block',
66
- message: '🚫 API limit exceeded - operations blocked for safety.\n\nOptions:\n • Upgrade your plan at https://saferun-landing.vercel.app\n • Wait for limit reset (resets monthly)\n • Temporarily disable: SAFERUN_DISABLE=1 git commit\n • Uninstall completely: npx saferun uninstall',
66
+ message: '🚫 API limit exceeded - operations blocked for safety.\n\nOptions:\n • Upgrade your plan at https://saferun-landing.vercel.app\n • Wait for limit reset (resets monthly)\n • Uninstall completely: npx saferun uninstall',
67
67
  },
68
68
  '500_server_error': {
69
69
  action: 'warn',