-
Notifications
You must be signed in to change notification settings - Fork 253
Closed
Labels
Description
Context
From discussion #17412 — Static Analysis Report 2026-02-21.
Problem
ShellCheck (via actionlint) reports 132 SC2086 warnings across 66 workflows: shell variables referenced without double-quotes, risking word splitting and glob expansion.
The most common pattern is unquoted $GITHUB_OUTPUT and similar special variables in compiled workflow steps:
# ❌ Unquoted - risks word splitting
echo "has_content=true" >> $GITHUB_OUTPUT
# ✅ Quoted - safe
echo "has_content=true" >> "$GITHUB_OUTPUT"Additionally, 162 SC2129 style warnings across all 156 workflows suggest using grouped redirects:
# ❌ Individual redirects
echo "foo=bar" >> $GITHUB_OUTPUT
echo "baz=qux" >> $GITHUB_OUTPUT
# ✅ Grouped redirect
{
echo "foo=bar"
echo "baz=qux"
} >> "$GITHUB_OUTPUT"Steps
- Search the workflow compiler (
pkg/workflow/) for generated shell script templates that use$GITHUB_OUTPUT,$GITHUB_ENV,$GITHUB_STEP_SUMMARYetc. without quotes - Update the compiler templates to quote all variable references:
"$GITHUB_OUTPUT","$GITHUB_ENV","$GITHUB_STEP_SUMMARY" - For grouped output patterns, update templates to use
{ ... } >> "$GITHUB_OUTPUT"syntax - Run
make recompileto regenerate all.lock.ymlfiles - Verify with actionlint that SC2086/SC2129 warnings are reduced
- Run
make agent-finishbefore committing
Acceptance Criteria
- Compiler templates quote all special GitHub environment variable references
- SC2086 warnings reduced significantly (target: 0 for compiler-generated code)
-
make recompilesucceeds - All existing tests pass (
make test-unit)
Generated by Plan Command for issue #discussion #17412
- expires on Feb 23, 2026, 12:57 PM UTC
Reactions are currently unavailable