Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/patch-bump-awf-v0-27-31.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 24 additions & 24 deletions .github/aw/actions-lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,10 @@
"digest": "sha256:676de58a0abad8054cd9d4fc45b861715856819f083a268372d60bca0090018c",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.13@sha256:676de58a0abad8054cd9d4fc45b861715856819f083a268372d60bca0090018c"
},
"ghcr.io/github/gh-aw-firewall/agent-act:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.30",
"digest": "sha256:d0beee47dd38e2df577d15b9ddf763a2b771367326fecb02e1aa924bc395954a",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.30@sha256:d0beee47dd38e2df577d15b9ddf763a2b771367326fecb02e1aa924bc395954a"
"ghcr.io/github/gh-aw-firewall/agent-act:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.31",
"digest": "sha256:58fee05c1c54ba5ca1e7056b3aaea30281841d5899093002e2c650710c50540f",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.31@sha256:58fee05c1c54ba5ca1e7056b3aaea30281841d5899093002e2c650710c50540f"
Comment on lines +200 to +203
},
"ghcr.io/github/gh-aw-firewall/agent:0.25.18": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.25.18",
Expand Down Expand Up @@ -292,10 +292,10 @@
"digest": "sha256:debc0b18ef8ea3a64585c4d1eea1099f0d9fa76b53d34a1f3c53b3225fe158fe",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.29@sha256:debc0b18ef8ea3a64585c4d1eea1099f0d9fa76b53d34a1f3c53b3225fe158fe"
},
"ghcr.io/github/gh-aw-firewall/agent:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.30",
"digest": "sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.30@sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613"
"ghcr.io/github/gh-aw-firewall/agent:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.31",
"digest": "sha256:84d861cb6da723ac10b7a00dddf778be681b8cd74b2091f18ce1d67fe4b3e7a1",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.31@sha256:84d861cb6da723ac10b7a00dddf778be681b8cd74b2091f18ce1d67fe4b3e7a1"
},
"ghcr.io/github/gh-aw-firewall/agent:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.4",
Expand Down Expand Up @@ -412,10 +412,10 @@
"digest": "sha256:c7754df3f06f346c817db0525ba523cbdaf5349239fd7f37897c4250a8fc7bde",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.29@sha256:c7754df3f06f346c817db0525ba523cbdaf5349239fd7f37897c4250a8fc7bde"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30",
"digest": "sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30@sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785"
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.31",
"digest": "sha256:80d982fe7925c640d76cbbfbe94081d2d34f7657b7c37494d8d5488f5dae3c63",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.31@sha256:80d982fe7925c640d76cbbfbe94081d2d34f7657b7c37494d8d5488f5dae3c63"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.4",
Expand Down Expand Up @@ -457,10 +457,10 @@
"digest": "sha256:fbedcc57550fcbb0ad386fda8028ad77172ee505f53af9a8d8a7b8e1644b0e38",
"pinned_image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.29@sha256:fbedcc57550fcbb0ad386fda8028ad77172ee505f53af9a8d8a7b8e1644b0e38"
},
"ghcr.io/github/gh-aw-firewall/build-tools:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.30",
"digest": "sha256:6ce8eb6ef9b959dd4bab4b005efba76f2dde0834a2716d18221965eb317ed2fa",
"pinned_image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.30@sha256:6ce8eb6ef9b959dd4bab4b005efba76f2dde0834a2716d18221965eb317ed2fa"
"ghcr.io/github/gh-aw-firewall/build-tools:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.31",
"digest": "sha256:b10c0c125cb63fc0f039503a4594b40391be7991985e6e19aee63d068a84d7ad",
"pinned_image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.31@sha256:b10c0c125cb63fc0f039503a4594b40391be7991985e6e19aee63d068a84d7ad"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.28": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.28",
Expand Down Expand Up @@ -542,10 +542,10 @@
"digest": "sha256:bfc90b1f10d2ff61dbbbf0d57600001f85bf5f6444ed78bc05d9f6677327e4b8",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.29@sha256:bfc90b1f10d2ff61dbbbf0d57600001f85bf5f6444ed78bc05d9f6677327e4b8"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.30",
"digest": "sha256:959c876217038ac6f9c2047b591e819e5f1f726625a34490ccdcacaa71d83e4c",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.30@sha256:959c876217038ac6f9c2047b591e819e5f1f726625a34490ccdcacaa71d83e4c"
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.31",
"digest": "sha256:7c63bc4e57d6eac1be996bb793a5a2d74d40b15a616003f4b6805a457046c673",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.31@sha256:7c63bc4e57d6eac1be996bb793a5a2d74d40b15a616003f4b6805a457046c673"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.4",
Expand Down Expand Up @@ -662,10 +662,10 @@
"digest": "sha256:7bfa0742f9a5bd6309507caaa80a8b6cf3e05bd95a1429affbf64cc94cfbd34f",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.29@sha256:7bfa0742f9a5bd6309507caaa80a8b6cf3e05bd95a1429affbf64cc94cfbd34f"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.30",
"digest": "sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.30@sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a"
"ghcr.io/github/gh-aw-firewall/squid:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.31",
"digest": "sha256:c05a3f086946fab0833e078f46d35571080f187ca72f038958d45aa5cc150494",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.31@sha256:c05a3f086946fab0833e078f46d35571080f187ca72f038958d45aa5cc150494"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.4",
Expand Down
48 changes: 24 additions & 24 deletions pkg/actionpins/data/action_pins.json
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,10 @@
"digest": "sha256:676de58a0abad8054cd9d4fc45b861715856819f083a268372d60bca0090018c",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.13@sha256:676de58a0abad8054cd9d4fc45b861715856819f083a268372d60bca0090018c"
},
"ghcr.io/github/gh-aw-firewall/agent-act:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.30",
"digest": "sha256:d0beee47dd38e2df577d15b9ddf763a2b771367326fecb02e1aa924bc395954a",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.30@sha256:d0beee47dd38e2df577d15b9ddf763a2b771367326fecb02e1aa924bc395954a"
"ghcr.io/github/gh-aw-firewall/agent-act:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.31",
"digest": "sha256:58fee05c1c54ba5ca1e7056b3aaea30281841d5899093002e2c650710c50540f",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent-act:0.27.31@sha256:58fee05c1c54ba5ca1e7056b3aaea30281841d5899093002e2c650710c50540f"
},
"ghcr.io/github/gh-aw-firewall/agent:0.25.18": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.25.18",
Expand Down Expand Up @@ -292,10 +292,10 @@
"digest": "sha256:debc0b18ef8ea3a64585c4d1eea1099f0d9fa76b53d34a1f3c53b3225fe158fe",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.29@sha256:debc0b18ef8ea3a64585c4d1eea1099f0d9fa76b53d34a1f3c53b3225fe158fe"
},
"ghcr.io/github/gh-aw-firewall/agent:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.30",
"digest": "sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.30@sha256:3cc1e14efa9e52ed1fc29d72a0eabf02ff86b30c6af9685fa9ddd687caca6613"
"ghcr.io/github/gh-aw-firewall/agent:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.31",
"digest": "sha256:84d861cb6da723ac10b7a00dddf778be681b8cd74b2091f18ce1d67fe4b3e7a1",
"pinned_image": "ghcr.io/github/gh-aw-firewall/agent:0.27.31@sha256:84d861cb6da723ac10b7a00dddf778be681b8cd74b2091f18ce1d67fe4b3e7a1"
},
"ghcr.io/github/gh-aw-firewall/agent:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/agent:0.27.4",
Expand Down Expand Up @@ -412,10 +412,10 @@
"digest": "sha256:c7754df3f06f346c817db0525ba523cbdaf5349239fd7f37897c4250a8fc7bde",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.29@sha256:c7754df3f06f346c817db0525ba523cbdaf5349239fd7f37897c4250a8fc7bde"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30",
"digest": "sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.30@sha256:fdbd94bb668ed736a27c146633842db5c7e658dc7a0d6a0e6011e74e18132785"
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.31",
"digest": "sha256:80d982fe7925c640d76cbbfbe94081d2d34f7657b7c37494d8d5488f5dae3c63",
"pinned_image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.31@sha256:80d982fe7925c640d76cbbfbe94081d2d34f7657b7c37494d8d5488f5dae3c63"
},
"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/api-proxy:0.27.4",
Expand Down Expand Up @@ -457,10 +457,10 @@
"digest": "sha256:fbedcc57550fcbb0ad386fda8028ad77172ee505f53af9a8d8a7b8e1644b0e38",
"pinned_image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.29@sha256:fbedcc57550fcbb0ad386fda8028ad77172ee505f53af9a8d8a7b8e1644b0e38"
},
"ghcr.io/github/gh-aw-firewall/build-tools:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.30",
"digest": "sha256:6ce8eb6ef9b959dd4bab4b005efba76f2dde0834a2716d18221965eb317ed2fa",
"pinned_image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.30@sha256:6ce8eb6ef9b959dd4bab4b005efba76f2dde0834a2716d18221965eb317ed2fa"
"ghcr.io/github/gh-aw-firewall/build-tools:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.31",
"digest": "sha256:b10c0c125cb63fc0f039503a4594b40391be7991985e6e19aee63d068a84d7ad",
"pinned_image": "ghcr.io/github/gh-aw-firewall/build-tools:0.27.31@sha256:b10c0c125cb63fc0f039503a4594b40391be7991985e6e19aee63d068a84d7ad"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.28": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.25.28",
Expand Down Expand Up @@ -542,10 +542,10 @@
"digest": "sha256:bfc90b1f10d2ff61dbbbf0d57600001f85bf5f6444ed78bc05d9f6677327e4b8",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.29@sha256:bfc90b1f10d2ff61dbbbf0d57600001f85bf5f6444ed78bc05d9f6677327e4b8"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.30",
"digest": "sha256:959c876217038ac6f9c2047b591e819e5f1f726625a34490ccdcacaa71d83e4c",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.30@sha256:959c876217038ac6f9c2047b591e819e5f1f726625a34490ccdcacaa71d83e4c"
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.31",
"digest": "sha256:7c63bc4e57d6eac1be996bb793a5a2d74d40b15a616003f4b6805a457046c673",
"pinned_image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.31@sha256:7c63bc4e57d6eac1be996bb793a5a2d74d40b15a616003f4b6805a457046c673"
},
"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.4",
Expand Down Expand Up @@ -662,10 +662,10 @@
"digest": "sha256:7bfa0742f9a5bd6309507caaa80a8b6cf3e05bd95a1429affbf64cc94cfbd34f",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.29@sha256:7bfa0742f9a5bd6309507caaa80a8b6cf3e05bd95a1429affbf64cc94cfbd34f"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.30": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.30",
"digest": "sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.30@sha256:eb74fca5309c7542df0f32aef41b92c728ecef7ac3b0cca9f9a6b97cc324d22a"
"ghcr.io/github/gh-aw-firewall/squid:0.27.31": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.31",
"digest": "sha256:c05a3f086946fab0833e078f46d35571080f187ca72f038958d45aa5cc150494",
"pinned_image": "ghcr.io/github/gh-aw-firewall/squid:0.27.31@sha256:c05a3f086946fab0833e078f46d35571080f187ca72f038958d45aa5cc150494"
},
"ghcr.io/github/gh-aw-firewall/squid:0.27.4": {
"image": "ghcr.io/github/gh-aw-firewall/squid:0.27.4",
Expand Down
2 changes: 1 addition & 1 deletion pkg/constants/version_constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ const DefaultGitHubMCPServerVersion Version = "v1.5.0"
//
// The first recompile regenerates all lock files using the new version; the second recompile
// refreshes the container SHA pins that were resolved during the first pass.
const DefaultFirewallVersion Version = "v0.27.30"
const DefaultFirewallVersion Version = "v0.27.31"

// AWFExcludeEnvMinVersion is the minimum AWF version that supports the --exclude-env flag.
// Workflows pinning an older AWF version must not emit --exclude-env flags or the run will fail.
Expand Down
5 changes: 5 additions & 0 deletions pkg/workflow/awf_config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1152,6 +1152,11 @@ func TestValidateAWFConfigJSON_AllowsMaxTurnCacheMisses(t *testing.T) {
require.NoError(t, err, "maxCacheMisses should pass compile-time schema validation")
}

func TestValidateAWFConfigJSON_AllowsSbxContainerRuntime(t *testing.T) {
err := validateAWFConfigJSON(`{"container":{"containerRuntime":"sbx"}}`)
require.NoError(t, err, "container.containerRuntime=sbx should pass compile-time schema validation")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[/tdd] Missing symmetry: gvisor is not tested against the new enum-restricted schema, and no negative test guards against invalid values like "runc".

Since containerRuntime was previously a free-form string and is now an enum, a typo or unsupported value would be silently accepted by old code but rejected by AWF at runtime.

💡 Suggested additions
func TestValidateAWFConfigJSON_AllowsGVisorContainerRuntime(t *testing.T) {
    err := validateAWFConfigJSON(`{"container":{"containerRuntime":"gvisor"}}`)
    require.NoError(t, err, "container.containerRuntime=gvisor should pass compile-time schema validation")
}

func TestValidateAWFConfigJSON_RejectsUnknownContainerRuntime(t *testing.T) {
    err := validateAWFConfigJSON(`{"container":{"containerRuntime":"runc"}}`)
    require.Error(t, err, "container.containerRuntime must only accept enum values")
}

This mirrors the existing TestValidateAWFConfigJSON_RejectsInvalidJSON two-sided pattern.

@copilot please address this.

}

// TestBuildAWFConfigJSON_ValidateFlag verifies that schema validation runs when
// WorkflowData.ValidateAWFConfig is true (--validate mode) and is skipped otherwise.
func TestBuildAWFConfigJSON_ValidateFlag(t *testing.T) {
Expand Down
Loading
Loading