[BUG] git push and GitHub MCP push_files both fail with 403 — GitHub App is authorized (OAuth) but never installed, with no self-service way to install it

Status Closed — duplicate
Reported on v2.1.211
Maintainer reply None cached
Activity 1 comment · opened Jul 19, 2026 · closed Aug 15, 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?

On a Claude Code on the web session with a repo connected via the session's repo picker, both push paths (the session's git proxy, and the GitHub MCP push_files tool) fail with 403. Root cause traced to: the "Claude" GitHub App shows up under GitHub's "Authorized GitHub Apps" tab (OAuth-only) but not under "Installed GitHub Apps", so it holds no repository permissions (e.g. Contents: write) — even though the repo was already connected to the Claude Code session and readable through it. There is no visible way from the GitHub UI or claude.ai settings to trigger the actual installation step (only a "Revoke" button is available on the OAuth authorization).

What Should Happen?

On a Claude Code on the web session with a repo connected via the session's repo picker, both push paths (the session's git proxy, and the GitHub MCP push_files tool) fail with 403. Root cause traced to: the "Claude" GitHub App shows up under GitHub's "Authorized GitHub Apps" tab (OAuth-only) but not under "Installed GitHub Apps", so it holds no repository permissions (e.g. Contents: write) — even though the repo was already connected to the Claude Code session and readable through it. There is no visible way from the GitHub UI or claude.ai settings to trigger the actual installation step (only a "Revoke" button is available on the OAuth authorization).

Error Messages/Logs

Steps to Reproduce

On a Claude Code on the web session with a repo connected via the session's repo picker, both push paths (the session's git proxy, and the GitHub MCP push_files tool) fail with 403. Root cause traced to: the "Claude" GitHub App shows up under GitHub's "Authorized GitHub Apps" tab (OAuth-only) but not under "Installed GitHub Apps", so it holds no repository permissions (e.g. Contents: write) — even though the repo was already connected to the Claude Code session and readable through it. There is no visible way from the GitHub UI or claude.ai settings to trigger the actual installation step (only a "Revoke" button is available on the OAuth authorization).

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.211

Platform

Anthropic API

Operating System

Windows

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 ↗