Allow Agentic Triage to emit safe outputs - #11912
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). 1 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The regenerated lockfile broadens shell tool permissions beyond what the PR description specifies (allowing more than just safeoutputs).
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR updates the Agentic Triage workflow configuration to allow emitting “safe outputs” by permitting the safeoutputs command via the restricted shell interface, and regenerates the gh-aw lockfile accordingly.
Changes:
- Enable restricted
bashaccess forsafeoutputsin the workflow frontmatter. - Regenerate
issue-triage.lock.ymlto incorporate the safeoutputs CLI prompt additions and updated tool permissions.
File summaries
| File | Description |
|---|---|
| .github/workflows/issue-triage.md | Changes tools.bash from false to an allowlist containing safeoutputs. |
| .github/workflows/issue-triage.lock.yml | Updates generated prompt config/placeholder substitutions and expands the Copilot CLI tool allowlist in the locked workflow. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
No changes needing a change description found. |
|
You can try these changes here
|
There was a problem hiding this comment.
🔵 Needs a closer look
The lockfile grants broader shell permissions than the workflow’s safeoutputs-only boundary.
Review details
Suppressed comments (1)
.github/workflows/issue-triage.lock.yml:970
- The generated command line now permits
shell(github:*)and generic commands such ascat,grep, andyqin addition toshell(safeoutputs). That makes the effective shell surface broader than.github/workflows/issue-triage.md:36(bash: [safeoutputs]) and contradicts the PR's stated security boundary; please correct the gh-aw generation/configuration so the committed lockfile grants only the required safe-output shell permission.
-- /bin/bash -c 'set +o histexpand; export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; GH_AW_TOOL_BINS="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')"; GH_AW_TOOL_BINS="${GH_AW_TOOL_BINS%:}"; export PATH="$PATH${GH_AW_TOOL_BINS:+:}$GH_AW_TOOL_BINS"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true; [ -n "$ERLANG_HOME" ] && export PATH="$ERLANG_HOME/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" "${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs" "${RUNNER_TEMP}/gh-aw/bin/copilot" --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(github:*)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(printf)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(safeoutputs)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool web_fetch --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt'
- Files reviewed: 2/2 changed files
- Comments generated: 0 new
- Review effort level: Lite
Agentic Triage completed successfully but produced no safe outputs because shell access blocked the generated
safeoutputsCLI shim.Workflow configuration
safeoutputscommand through the restricted shell interface.Generated workflow