@saferun/cli 0.6.46 → 0.6.48
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/dist/commands/sync.js +37 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/utils/sync.js +10 -7
- package/dist/utils/sync.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/sync.js
CHANGED
|
@@ -6,6 +6,39 @@
|
|
|
6
6
|
* Use when: switching machines, after team policy changes,
|
|
7
7
|
* or when hooks show "stale cache" warning.
|
|
8
8
|
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
9
42
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
43
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
44
|
};
|
|
@@ -72,7 +105,10 @@ class SyncCommand {
|
|
|
72
105
|
});
|
|
73
106
|
}
|
|
74
107
|
if (options.verbose) {
|
|
75
|
-
|
|
108
|
+
const os = await Promise.resolve().then(() => __importStar(require('os')));
|
|
109
|
+
const path = await Promise.resolve().then(() => __importStar(require('path')));
|
|
110
|
+
const globalConfigPath = path.join(os.homedir(), '.saferun', 'config.yml');
|
|
111
|
+
console.log(chalk_1.default.gray(`\nConfig saved to: ${globalConfigPath}`));
|
|
76
112
|
}
|
|
77
113
|
}
|
|
78
114
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/sync.js
CHANGED
|
@@ -18,6 +18,7 @@ exports.syncProtectedBranches = syncProtectedBranches;
|
|
|
18
18
|
exports.backgroundSync = backgroundSync;
|
|
19
19
|
exports.printStaleWarning = printStaleWarning;
|
|
20
20
|
const config_1 = require("./config");
|
|
21
|
+
const global_config_1 = require("./global-config");
|
|
21
22
|
const git_1 = require("./git");
|
|
22
23
|
const api_client_1 = require("./api-client");
|
|
23
24
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -66,6 +67,7 @@ function getConfigAge(config) {
|
|
|
66
67
|
* Sync protected branches from API to local config
|
|
67
68
|
*/
|
|
68
69
|
async function syncProtectedBranches(apiUrl, apiKey, repoRoot) {
|
|
70
|
+
var _a;
|
|
69
71
|
try {
|
|
70
72
|
const response = await fetch(`${apiUrl}/v1/settings/protected-branches`, {
|
|
71
73
|
headers: {
|
|
@@ -90,18 +92,19 @@ async function syncProtectedBranches(apiUrl, apiKey, repoRoot) {
|
|
|
90
92
|
}
|
|
91
93
|
const data = await response.json();
|
|
92
94
|
const serverBranches = data.patterns || ['main', 'master'];
|
|
93
|
-
// Load
|
|
94
|
-
const config = await (0,
|
|
95
|
-
const localBranches = config.github.protected_branches || [];
|
|
95
|
+
// Load GLOBAL config (hooks read from global, not repo-local)
|
|
96
|
+
const config = await (0, global_config_1.loadGlobalConfig)();
|
|
97
|
+
const localBranches = ((_a = config.github) === null || _a === void 0 ? void 0 : _a.protected_branches) || [];
|
|
96
98
|
// Check if update needed
|
|
97
|
-
const needsUpdate = JSON.stringify(serverBranches.sort()) !== JSON.stringify(localBranches.sort());
|
|
98
|
-
// Update config
|
|
99
|
+
const needsUpdate = JSON.stringify(serverBranches.sort()) !== JSON.stringify([...localBranches].sort());
|
|
100
|
+
// Update global config
|
|
101
|
+
config.github = config.github || { repo: 'auto', protected_branches: [] };
|
|
99
102
|
config.github.protected_branches = serverBranches;
|
|
100
103
|
config.sync = {
|
|
101
104
|
last_sync_at: new Date().toISOString(),
|
|
102
105
|
sync_source: 'api',
|
|
103
106
|
};
|
|
104
|
-
await (0,
|
|
107
|
+
await (0, global_config_1.saveGlobalConfig)(config);
|
|
105
108
|
return {
|
|
106
109
|
success: true,
|
|
107
110
|
updated: needsUpdate,
|
|
@@ -159,7 +162,7 @@ async function backgroundSync(silent = true) {
|
|
|
159
162
|
function printStaleWarning(config) {
|
|
160
163
|
if (isConfigVeryStale(config)) {
|
|
161
164
|
const age = getConfigAge(config);
|
|
162
|
-
console.log(chalk_1.default.yellow(`⚠️ SafeRun: Local policy cache is stale (${age}). Run 'saferun sync' to update.`));
|
|
165
|
+
console.log(chalk_1.default.yellow(`⚠️ SafeRun: Local policy cache is stale (${age}). Run command `) + chalk_1.default.white(`'saferun sync'`) + chalk_1.default.yellow(` to update.`));
|
|
163
166
|
}
|
|
164
167
|
}
|
|
165
168
|
//# sourceMappingURL=sync.js.map
|
package/dist/utils/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/utils/sync.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/utils/sync.ts"],"names":[],"mappings":"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"}
|