Skip to content

Avoid gh /meta probe in firewall issue dispatcher#3596

Closed
Copilot wants to merge 2 commits into
mainfrom
copilot/create-summary-issue
Closed

Avoid gh /meta probe in firewall issue dispatcher#3596
Copilot wants to merge 2 commits into
mainfrom
copilot/create-summary-issue

Conversation

Copilot AI commented May 22, 2026

Copy link
Copy Markdown
Contributor

The firewall issue dispatcher was still instructing agents to prefetch upstream awf issues with gh api graphql. On DIFC-proxied runners that fails on the CLI’s startup /meta probe, preventing the workflow from generating the tracking issue summary and proposed solution.

  • Prompt fetch path

    • Replaced the prompt’s gh api graphql example with direct curl calls to GITHUB_API_URL
    • Fetches the candidate issue list from search/issues, then hydrates each issue’s first 10 comments from the REST issue comments endpoint
    • Keeps the resulting JSON shape aligned with the existing prompt expectations (number, title, body, url, comments.nodes)
  • Proxy-safe auth handling

    • Uses the existing cross-repo token already present in the workflow environment
    • Avoids gh entirely for the prefetch step, so the workflow no longer depends on /meta being reachable
  • Compiled workflow sync

    • Regenerated the dispatcher lock file to keep the compiled workflow aligned with the source markdown

Example of the new prefetch pattern:

SEARCH_API="${GITHUB_API_URL%/}/search/issues"
ISSUES_API="${GITHUB_API_URL%/}/repos/github/gh-aw/issues"

curl -fsSL --get \
  -H "${AUTH_HEADER_NAME}: ${AUTH_HEADER_VALUE}" \
  --data-urlencode 'q=repo:github/gh-aw is:issue is:open label:awf' \
  "$SEARCH_API" \
  | jq -rc '.items[]' \
  | while IFS= read -r issue; do
      number=$(jq -r '.number' <<<"$issue")
      comments=$(curl -fsSL "${ISSUES_API}/${number}/comments?per_page=10" | jq '[.[] | {author: {login: .user.login}, body}]')
      jq -n --argjson issue "$issue" --argjson comments "$comments" '{ ... }'
    done \
  | jq -s '.'

Copilot AI linked an issue May 22, 2026 that may be closed by this pull request
Copilot AI changed the title [WIP] Create new issue summarizing problem and solution Avoid gh /meta probe in firewall issue dispatcher May 22, 2026
Copilot finished work on behalf of lpcox May 22, 2026 16:55
Copilot AI requested a review from lpcox May 22, 2026 16:55
@lpcox lpcox marked this pull request as ready for review May 22, 2026 16:58
Copilot AI review requested due to automatic review settings May 22, 2026 16:58
@github-actions

Copy link
Copy Markdown
Contributor

✅ Coverage Check Passed

Overall Coverage

Metric Base PR Delta
Lines 95.98% 96.05% 📈 +0.07%
Statements 95.81% 95.87% 📈 +0.06%
Functions 98.02% 98.02% ➡️ +0.00%
Branches 89.44% 89.48% 📈 +0.04%
📁 Per-file Coverage Changes (1 files)
File Lines (Before → After) Statements (Before → After)
src/config-writer.ts 83.0% → 85.6% (+2.54%) 83.0% → 85.6% (+2.54%)

Coverage comparison generated by scripts/ci/compare-coverage.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the firewall issue dispatcher prompt to avoid using the gh CLI for issue prefetching (which can fail due to the CLI’s startup /meta probe on DIFC-proxied runners), and keeps the compiled lock workflow in sync with the source markdown.

Changes:

  • Replaced the prompt’s gh api graphql example with REST curl calls to GITHUB_API_URL (search issues + hydrate first 10 comments).
  • Preserved the JSON shape expected by the prompt (number, title, body, url, comments.nodes) while avoiding gh.
  • Regenerated the compiled .lock.yml workflow to reflect the updated markdown prompt.
Show a summary per file
File Description
.github/workflows/firewall-issue-dispatcher.md Swaps the prompt’s issue/comment prefetch from gh api graphql to REST curl to avoid /meta probe failures.
.github/workflows/firewall-issue-dispatcher.lock.yml Recompiled lock workflow to match the updated dispatcher markdown prompt.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 2/2 changed files
  • Comments generated: 1

Comment on lines 115 to +116
- **No extra reads** — do not open `AGENTS.md`, source files, or any workspace files; all needed context is in the GraphQL response above.
- **Don't retry without diagnosing** — analyze the error before retrying any failed tool call. No newline at end of file
- **Don't retry without diagnosing** — analyze the error before retrying any failed tool call.
@github-actions

Copy link
Copy Markdown
Contributor

Claude Engine Validation ✅

  • GitHub API: 2 recent PR entries confirmed
  • Playwright Check: PASS — GitHub title verified
  • File Verify: smoke-test-claude-26300787700.txt exists

Result: All smoke tests PASS

💥 [THE END] — Illustrated by Smoke Claude

@github-actions

Copy link
Copy Markdown
Contributor

Smoke Test: Copilot BYOK (Offline) Mode ✅

PR #3596: Avoid gh /meta probe in firewall issue dispatcher (@Copilot, assigned: @lpcox, @Copilot)

Results:

  • ✅ GitHub MCP connectivity (fetched PR Avoid gh /meta probe in firewall issue dispatcher #3596)
  • ⚠️ GitHub.com HTTP test (pre-step data not provided)
  • ⚠️ File write/read test (file path not provided)
  • ✅ BYOK inference (responding via api-proxy → api.githubcopilot.com)

Note: Running in BYOK offline mode (COPILOT_OFFLINE=true) via api-proxy → api.githubcopilot.com

Status: PASS (core BYOK inference validated)

🔑 BYOK report filed by Smoke Copilot BYOK

@github-actions

Copy link
Copy Markdown
Contributor

Smoke Test Results

✅ GitHub MCP: chore(deps): bump dompurify from 3.3.2 to 3.4.5 in /docs-site
❌ GitHub.com connectivity: No HTTP code provided
❌ File write/read: File not found at expected path

Overall: FAIL

@Copilot @lpcox

📰 BREAKING: Report filed by Smoke Copilot

@github-actions

Copy link
Copy Markdown
Contributor

Smoke test failed. MCP command not found, SSL connectivity error.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • localhost

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "localhost"

See Network Configuration for more information.

💎 Faceted by Smoke Gemini

@github-actions

Copy link
Copy Markdown
Contributor

Smoke Test

✅ GitHub PR review: Remove unused export from ProbeResult interface; fix: upgrade test-coverage-improver sandbox to AWF v0.25.51
❌ SafeInputs GH CLI: safeinputs-gh unavailable
✅ Playwright: GitHub title verified
❌ Tavily search: no search tool registered
✅ File IO + bash: verified
✅ Discussion: oracle comment posted
✅ Build: npm ci && npm run build
Overall status: FAIL

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex

@github-actions

Copy link
Copy Markdown
Contributor

Service Connectivity Test Results

❌ Redis: Connection timeout (host.docker.internal:6379)
❌ PostgreSQL: No response (host.docker.internal:5432)

Overall: FAIL — Services not reachable from AWF sandbox

🔌 Service connectivity validated by Smoke Services

@github-actions

Copy link
Copy Markdown
Contributor

🏗️ Build Test Suite Results

Ecosystem Project Build/Install Tests Status
Bun elysia 1/1 passed ✅ PASS
Bun hono 1/1 passed ✅ PASS
C++ fmt N/A ✅ PASS
C++ json N/A ✅ PASS
Deno oak N/A 1/1 passed ✅ PASS
Deno std N/A 1/1 passed ✅ PASS
.NET hello-world N/A ✅ PASS
.NET json-parse N/A ✅ PASS
Go color 1 passed ✅ PASS
Go env 1 passed ✅ PASS
Go uuid 1 passed ✅ PASS
Java gson 1/1 passed ✅ PASS
Java caffeine 1/1 passed ✅ PASS
Node.js clsx All passed ✅ PASS
Node.js execa All passed ✅ PASS
Node.js p-limit All passed ✅ PASS
Rust fd 1/1 passed ✅ PASS
Rust zoxide 1/1 passed ✅ PASS

Overall: 8/8 ecosystems passed — ✅ PASS

All build and test operations completed successfully across all ecosystems.

Generated by Build Test Suite for issue #3596 · ● 15.8M ·

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

/meta issue

3 participants