Problem
gh-aw does not support configuring a custom OpenAI-compatible API endpoint from a GitHub Actions secret at runtime. The endpoint host must currently be hardcoded in the compiled .lock.yml, which is unacceptable for sensitive internal proxy/load balancer hosts.
Context
Original report: github/gh-aw#41929
Root Cause
The AWF API proxy sidecar (containers/api-proxy/) and the compiler's lock file emission both treat the upstream API endpoint as a static compile-time value. There is no mechanism to inject the endpoint host at runtime from a secret.
Proposed Solution
- Add a new
engine.openaiEndpointSecret (or similar) field in the workflow schema that names a GitHub Actions secret containing the endpoint URL.
- At runtime, the lock file runner should resolve the secret value and pass it as
--openai-endpoint (or equivalent) to the AWF API proxy sidecar.
- In
containers/api-proxy/, read the endpoint from an environment variable (e.g., OPENAI_ENDPOINT_OVERRIDE) rather than a hard-coded value, and ensure the endpoint host is added to the Squid domain allowlist dynamically.
- Ensure the secret value is never logged or emitted to workflow outputs.
Generated by Firewall Issue Dispatcher · sonnet46 · 30.4 AIC · ⊞ 6.4K · ◷
Problem
gh-awdoes not support configuring a custom OpenAI-compatible API endpoint from a GitHub Actions secret at runtime. The endpoint host must currently be hardcoded in the compiled.lock.yml, which is unacceptable for sensitive internal proxy/load balancer hosts.Context
Original report: github/gh-aw#41929
Root Cause
The AWF API proxy sidecar (
containers/api-proxy/) and the compiler's lock file emission both treat the upstream API endpoint as a static compile-time value. There is no mechanism to inject the endpoint host at runtime from a secret.Proposed Solution
engine.openaiEndpointSecret(or similar) field in the workflow schema that names a GitHub Actions secret containing the endpoint URL.--openai-endpoint(or equivalent) to the AWF API proxy sidecar.containers/api-proxy/, read the endpoint from an environment variable (e.g.,OPENAI_ENDPOINT_OVERRIDE) rather than a hard-coded value, and ensure the endpoint host is added to the Squid domain allowlist dynamically.