[BUG] PR monitoring routine silently no-ops on repos that report CI via commit statuses

Resolved 💬 1 comment Opened May 27, 2026 by anujbhandari2 Closed Jun 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

The web-session PR monitoring routine (the one that subscribes to a PR on pull_request.opened and is supposed to triage CI failures) never wakes and cannot poll CI state on repos whose CI publishes results as GitHub commit statuses rather than as check runs. The session sits idle through a clearly-failed build and the user gets no triage comment.

Concretely, the Claude Code GitHub App is missing the Commit statuses: Read-only permission, and subscribe_pr_activity does not appear to forward GitHub status webhook events. Both the event-driven and the polling paths are blind on these repos.

Diagnosis

Verified via MCP tools from inside the session:

  1. mcp__github__pull_request_read{method: "get_check_runs", ...}{"total_count": 0, "check_runs": []} — confirms the repo's CI does not publish check runs.
  2. mcp__github__pull_request_read{method: "get_status", ...}403 Resource not accessible by integration — confirms the integration token lacks statuses:read.
  3. Verified the org-level install permissions at for the Claude Code GitHub App. Currently granted:
  • Read: members, metadata
  • Read & write: actions, checks, code, discussions, issues, pull requests, repository hooks, workflows
  • Commit statuses: not requested at all (so admins cannot grant it — the app would have to request it first)

What Should Happen?

  1. Add statuses: read to the Claude Code GitHub App manifest. Org admins will then see a "permission update requested" banner and can approve it per-install.
  2. Have the subscribe_pr_activity bridge subscribe to and forward GitHub status events (not only check_run / check_suite), wrapped as <github-webhook-activity> the same way.
  3. Once both are in place, mcp__github__pull_request_read{method: "get_status"} should also stop returning 403, restoring the polling fallback.

Error Messages/Logs

Steps to Reproduce

  • Session started by pull_request.opened webhook; routine called mcp__github__subscribe_pr_activity successfully
  • CI ran, failed, posted statuses on head SHA
  • No <github-webhook-activity> event was delivered to the session
  • Routine ended its turn after subscribing and never woke again

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.152

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗