@marcusrbrown/infra 0.24.0 → 0.25.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/dist/cli.js +14 -11
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -6950,7 +6950,7 @@ import { goke } from "goke";
|
|
|
6950
6950
|
// package.json
|
|
6951
6951
|
var package_default = {
|
|
6952
6952
|
name: "@marcusrbrown/infra",
|
|
6953
|
-
version: "0.
|
|
6953
|
+
version: "0.25.0",
|
|
6954
6954
|
description: "Infrastructure management CLI \u2014 deploy automation, health checks, and MCP bridge",
|
|
6955
6955
|
keywords: [
|
|
6956
6956
|
"infra",
|
|
@@ -6993,7 +6993,7 @@ var package_default = {
|
|
|
6993
6993
|
},
|
|
6994
6994
|
devDependencies: {
|
|
6995
6995
|
"@marcusrbrown/infra-shared": "workspace:*",
|
|
6996
|
-
"@modelcontextprotocol/sdk": "1.
|
|
6996
|
+
"@modelcontextprotocol/sdk": "1.32.1",
|
|
6997
6997
|
yaml: "2.9.1"
|
|
6998
6998
|
},
|
|
6999
6999
|
engines: {
|
|
@@ -8406,7 +8406,7 @@ var CONTENT_EVENTS = new Set([
|
|
|
8406
8406
|
"discussion_comment"
|
|
8407
8407
|
]);
|
|
8408
8408
|
var VERIFIED_ACTION_SHA_BY_LAYOUT = {
|
|
8409
|
-
"fro-bot/agent@v0.
|
|
8409
|
+
"fro-bot/agent@v0.118.2": "77f2bad7d68ac38279cd0fa28f38b26a0cd15dfb"
|
|
8410
8410
|
};
|
|
8411
8411
|
var REQUIRED_S3_INPUTS = {
|
|
8412
8412
|
"s3-backup": undefined,
|
|
@@ -8849,9 +8849,16 @@ function hasHandoff(job) {
|
|
|
8849
8849
|
const serialized = stringifyUnknown(job);
|
|
8850
8850
|
return /needs\.[\w-]+\.outputs\./.test(serialized) || /actions\/(?:download-artifact|upload-artifact|cache|cache\/restore|cache\/save)@/.test(serialized);
|
|
8851
8851
|
}
|
|
8852
|
+
var STATIC_AWS_CREDENTIAL_PATTERN = /AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY|aws-access-key-id|aws-secret-access-key/;
|
|
8853
|
+
function withoutBlankedCredentialKeys(value) {
|
|
8854
|
+
if (Array.isArray(value))
|
|
8855
|
+
return value.map(withoutBlankedCredentialKeys);
|
|
8856
|
+
if (!isMapping(value))
|
|
8857
|
+
return value;
|
|
8858
|
+
return Object.fromEntries(Object.entries(value).filter(([key, entry]) => !(entry === "" && STATIC_AWS_CREDENTIAL_PATTERN.test(key))).map(([key, entry]) => [key, withoutBlankedCredentialKeys(entry)]));
|
|
8859
|
+
}
|
|
8852
8860
|
function hasStaticAwsCredentials(job) {
|
|
8853
|
-
|
|
8854
|
-
return /AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY|aws-access-key-id|aws-secret-access-key/.test(serialized);
|
|
8861
|
+
return STATIC_AWS_CREDENTIAL_PATTERN.test(stringifyUnknown(withoutBlankedCredentialKeys(job)));
|
|
8855
8862
|
}
|
|
8856
8863
|
function ancestors(jobId, analyses) {
|
|
8857
8864
|
const visited = new Set;
|
|
@@ -8910,7 +8917,7 @@ function formatStorageWorkflowSnippet() {
|
|
|
8910
8917
|
with:
|
|
8911
8918
|
role-to-assume: \${{ vars.FRO_BOT_S3_ROLE_TO_ASSUME }}
|
|
8912
8919
|
aws-region: \${{ vars.FRO_BOT_S3_REGION }}
|
|
8913
|
-
- uses: fro-bot/agent@
|
|
8920
|
+
- uses: fro-bot/agent@77f2bad7d68ac38279cd0fa28f38b26a0cd15dfb
|
|
8914
8921
|
with:
|
|
8915
8922
|
s3-backup: true
|
|
8916
8923
|
s3-bucket: \${{ vars.FRO_BOT_S3_BUCKET }}
|
|
@@ -8946,10 +8953,6 @@ function environmentResult(environmentValue, branchPoliciesValue) {
|
|
|
8946
8953
|
violations.push("GitHub Environment fro-bot-storage is missing or returned an invalid response.");
|
|
8947
8954
|
return { verified: false, violations };
|
|
8948
8955
|
}
|
|
8949
|
-
const protectionRules = Array.isArray(environmentValue.protection_rules) ? environmentValue.protection_rules : [];
|
|
8950
|
-
const hasReviewer = protectionRules.some((rule) => isMapping(rule) && rule.type === "required_reviewers" && Array.isArray(rule.reviewers) && rule.reviewers.length > 0);
|
|
8951
|
-
if (!hasReviewer)
|
|
8952
|
-
violations.push("GitHub Environment fro-bot-storage has no required reviewer protection rule.");
|
|
8953
8956
|
const branchPolicy = environmentValue.deployment_branch_policy;
|
|
8954
8957
|
if (!isMapping(branchPolicy) || branchPolicy.protected_branches !== false || branchPolicy.custom_branch_policies !== true) {
|
|
8955
8958
|
violations.push("GitHub Environment fro-bot-storage does not use a custom deployment-branch policy.");
|
|
@@ -9135,7 +9138,7 @@ var STORAGE_VARIABLE_NAMES = {
|
|
|
9135
9138
|
prefix: "FRO_BOT_S3_PREFIX",
|
|
9136
9139
|
expectedBucketOwner: "FRO_BOT_S3_EXPECTED_BUCKET_OWNER"
|
|
9137
9140
|
};
|
|
9138
|
-
var KNOWN_KEY_LAYOUT_VERSION = "fro-bot/agent@v0.
|
|
9141
|
+
var KNOWN_KEY_LAYOUT_VERSION = "fro-bot/agent@v0.118.2";
|
|
9139
9142
|
var manifestSchema = z6.object({
|
|
9140
9143
|
owner: z6.string().min(1),
|
|
9141
9144
|
repo: z6.string().min(1),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marcusrbrown/infra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "Infrastructure management CLI — deploy automation, health checks, and MCP bridge",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"infra",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@marcusrbrown/infra-shared": "workspace:*",
|
|
46
|
-
"@modelcontextprotocol/sdk": "1.
|
|
46
|
+
"@modelcontextprotocol/sdk": "1.32.1",
|
|
47
47
|
"yaml": "2.9.1"
|
|
48
48
|
},
|
|
49
49
|
"engines": {
|