-
Notifications
You must be signed in to change notification settings - Fork 37
Support custom AWF installation path in firewall configuration #5339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add support for a custom `path` field in the firewall configuration that allows users to bypass the default GitHub release download mechanism and use their own AWF binaries. Path resolution rules: - Paths starting with `/` are treated as absolute paths - Other paths are resolved relative to GITHUB_WORKSPACE - When `path` is specified, AWF download is skipped - A validation step verifies the binary exists and is executable Changes: - Add Path field to FirewallConfig struct - Add path property to JSON schema - Extract path from frontmatter in extractFirewallConfig - Add helper functions: resolveAWFPath, getAWFBinaryPath, generateAWFPathValidationStep - Modify GetInstallationSteps to generate validation step when path is specified - Modify GetExecutionSteps to use dynamic AWF binary path - Add unit tests and integration tests Co-authored-by: Mossaka <5447827+Mossaka@users.noreply.github.com>
|
🤖 SYSTEM_INIT: Smoke Copilot No Firewall ACTIVATED. PROCESSING pull request. ALL SUBSYSTEMS ONLINE. |
|
📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing... |
|
📰 BREAKING: Smoke Copilot Playwright is now investigating this pull request. Sources say the story is developing... |
|
🔮 The ancient spirits stir... Smoke Codex awakens to divine this pull request... |
|
🎉 Yo ho ho! Changeset Generator found the treasure and completed successfully! ⚓💰 |
|
💥 WHOOSH! Smoke Claude springs into action on this pull request! [Panel 1 begins...] |
Smoke Test ResultsLast 2 Merged PRs:
Test Results:
Overall Status: PASS
|
Smoke Test Results - Copilot Engine (No Firewall)Test timestamp: 2025-12-03T01:25:07Z
Overall Status: PASS
|
Smoke Test Results (Claude)Last 2 Merged PRs:
Test Results:
Overall Status: PASS
|
|
Recent merged PRs:
|
Smoke Test Results✅ Playwright MCP: Navigate to https://github.com and verify title contains "GitHub" Overall Status: PASS
|
Adds support for specifying a custom AWF binary path in the firewall configuration, bypassing the default GitHub release download.
Usage
Changes
pkg/workflow/firewall.go): AddedPathfieldpkg/parser/schemas/main_workflow_schema.json): Addedpathproperty to firewall objectpkg/workflow/frontmatter_extraction.go): Extractpathfrom firewall configpkg/workflow/copilot_engine.go):resolveAWFPath()- resolves absolute paths as-is, relative paths against${GITHUB_WORKSPACE}getAWFBinaryPath()- returns custom path or defaultawfgenerateAWFPathValidationStep()- creates step to verify binary exists and is executableGetInstallationSteps()to emit validation step instead of install step when path is setGetExecutionSteps()to use dynamic binary pathBehavior
pathawffrom PATHpath: /abs/path/abs/pathpath: rel/path${GITHUB_WORKSPACE}/rel/pathWhen
pathis specified, theversionfield is ignored.Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
https://api.github.com/user/usr/bin/gh gh api user --jq .login(http block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
you are tasked to support custom awf installation path in agentic workflow frontmatter configurations, allowing users to bypass the default GitHub release download mechanism and use their own AWF binaries.
Recommended Approach
User-Facing Syntax
Path resolution rules:
/are treated as absolute paths${GITHUB_WORKSPACE}(repository root)pathis specified, AWF download is skippedversionfield is ignored whenpathis providedImplementation Steps
1. Data Structure Changes
File:
pkg/workflow/firewall.go(line ~16)Add
Pathfield toFirewallConfigstruct:2. Schema Updates
File:
pkg/parser/schemas/main_workflow_schema.json(line ~1670)Add
pathproperty to firewall object schema:3. Frontmatter Extraction
File:
pkg/workflow/frontmatter_extraction.go(after line 686)Add path extraction in
extractFirewallConfig:4. Core Logic Changes
File:
pkg/workflow/copilot_engine.go4.1 Modify
GetInstallationSteps(lines 64-76)Change from unconditional AWF installation to conditional:
4.2 Add New Helper Functions (after line 867)
Function:
generateAWFPathValidationStepCreates a validation step to verify custom AWF binary:
Function:
resolveAWFPathHandles path resolution for absolute and relative paths:
Function:
getAWFBinaryPathReturns appropriate AWF binary path for execution:
4.3 Update
GetExecutionSteps(line 256)Change from hardcoded
awfto dynamic path: