[WIP] Fix missing data in contribution check workflow#5308
Conversation
Steps run in the agent job but the prompt is built in the activation
job, so ${{ steps.*.outputs.* }} expressions always evaluate to empty
strings. Follow the doc-maintainer pattern: write fetched data to
/tmp/gh-aw/contribution-check-context/ and update the prompt to read
those files. Remove stale GH_AW_EXPR env vars from activation job.
Closes #5289
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
There was a problem hiding this comment.
Pull request overview
This PR updates the Contribution Check agentic workflow so pre-fetched PR context (diff, metadata, and CONTRIBUTING.md) is persisted via context files under /tmp/gh-aw/contribution-check-context/ rather than transient step outputs, and aligns the locked workflow plus its test accordingly.
Changes:
- Write pre-fetched PR metadata, changed-file diffs, and CONTRIBUTING.md contents to context files under
/tmp/gh-aw/contribution-check-context/. - Update the prompt body to instruct the agent to read those context files instead of relying on
${{ steps.*.outputs.* }}. - Update the locked workflow and the workflow test assertions to match the new context-file approach.
Show a summary per file
| File | Description |
|---|---|
scripts/ci/contribution-check-workflow.test.ts |
Updates assertions to validate the workflow uses context files and updated prompt wording. |
.github/workflows/contribution-check.md |
Switches prefetch steps to write context files and updates the agent prompt to read them. |
.github/workflows/contribution-check.lock.yml |
Mirrors the context-file prefetch behavior and removes now-stale env wiring for step-output data. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 3
| CONTEXT_DIR=/tmp/gh-aw/contribution-check-context | ||
| mkdir -p "$CONTEXT_DIR" | ||
| gh api "repos/${GH_REPO}/contents/CONTRIBUTING.md" --jq '.content' 2>/dev/null \ | ||
| | tr -d '\n' | base64 -d 2>/dev/null \ | ||
| > "$CONTEXT_DIR/contributing.md" \ | ||
| || echo "(CONTRIBUTING.md not found)" > "$CONTEXT_DIR/contributing.md" |
| id: contributing | ||
| name: Fetch CONTRIBUTING.md | ||
| run: "DELIM=\"GHAW_CONTRIBUTING_$(date +%s)\"\n{\n echo \"CONTENT<<${DELIM}\"\n gh api \"repos/${GH_REPO}/contents/CONTRIBUTING.md\" --jq '.content' 2>/dev/null | tr -d '\\n' | base64 -d 2>/dev/null || echo \"(CONTRIBUTING.md not found)\"\n echo \"${DELIM}\"\n} >> \"$GITHUB_OUTPUT\"\n" | ||
| run: "CONTEXT_DIR=/tmp/gh-aw/contribution-check-context\nmkdir -p \"$CONTEXT_DIR\"\ngh api \"repos/${GH_REPO}/contents/CONTRIBUTING.md\" --jq '.content' 2>/dev/null \\\n | tr -d '\\n' | base64 -d 2>/dev/null \\\n > \"$CONTEXT_DIR/contributing.md\" \\\n || echo \"(CONTRIBUTING.md not found)\" > \"$CONTEXT_DIR/contributing.md\"\n" |
|
@copilot address the review feedback and fix the pr title and summary |
|
@copilot address the review feedback and fix the pr title and summary |
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
|
🔑 Smoke Copilot PAT PAT auth validated. All systems operational. ✅ |
|
✅ Build Test Suite completed successfully! |
|
🔌 Smoke Services — All services reachable! ✅ |
|
✅ Smoke Copilot BYOK AOAI (api-key) completed. Copilot AOAI BYOK (api-key) mode operational. 🔓 |
|
❌ Smoke Claude failed |
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓 |
|
✅ Smoke Gemini completed. All facets verified. 💎 |
|
❌ Smoke Copilot BYOK AOAI (Entra) reports failed. AOAI BYOK (Entra) mode investigation needed... |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ |
|
🚀 Security Guard has started processing this pull request |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
✅ Smoke Test: Copilot BYOK (Direct) Mode - PASSTest Results:
Configuration: Direct BYOK mode (COPILOT_PROVIDER_API_KEY forwarded to api-proxy sidecar)
|
🔬 Smoke Test: Copilot PAT Auth
Overall: PARTIAL — PAT auth confirmed via MCP; pre-step data injection failed (workflow template vars not substituted). Auth mode: PAT (COPILOT_GITHUB_TOKEN)
|
|
✅ chore: upgrade gh-aw to v0.80.6 and recompile workflows Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "registry.npmjs.org"See Network Configuration for more information.
|
🔍 Smoke Test Results
PR: [WIP] Fix missing data in contribution check workflow Overall: PASS ✅
|
Smoke Test: API Proxy OpenTelemetry Tracing
All 5 scenarios pass. OTEL tracing integration is working correctly.
|
Chroot Version Comparison Results
Overall: ❌ Not all tests passed — Python and Node.js versions differ between host and chroot environments.
|
Smoke Test Results: Gemini Engine Validation
Overall status: FAIL Warning Firewall blocked 1 domainThe following domain was blocked by the firewall during workflow execution:
network:
allowed:
- defaults
- "localhost"See Network Configuration for more information.
|
Smoke Test Results
Overall: FAIL — Service containers unreachable via
|
🏗️ Build Test Suite Results
Overall: 8/8 ecosystems passed — ✅ PASS
|
Smoke Test Results
Running in direct BYOK mode (COPILOT_PROVIDER_API_KEY + COPILOT_PROVIDER_BASE_URL) via api-proxy → Azure OpenAI (Foundry, o4-mini-aw) PASS
|
contribution-check.mdsteps to write to context files instead of$GITHUB_OUTPUTcontribution-check.mdprompt body to read from context filescontribution-check.lock.ymlagent job steps to matchcontribution-check.lock.ymlactivation jobscripts/ci/contribution-check-workflow.test.tsassertions