openai / openai/codex

GitHub connector returns 403 creating public cross-fork PRs into organization-owned repos

Open
#43,205 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

auth bug tool-calls
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

When using the ChatGPT GitHub connector as an external contributor, creating a pull request from a user-owned fork into a public organization-owned upstream repository fails with:

403 Resource not accessible by integration

The connector can read the upstream repository, read the fork, and inspect the diff. The same GitHub user can create the same pull request manually in GitHub.

Reproduction

  1. Use a fork you own of a public repository owned by an organization you do not administer.
  2. Ask the GitHub connector to create a pull request from the fork into the upstream repository.
  3. Repository reads and diff inspection succeed.
  4. create_pull_request fails with 403 Resource not accessible by integration.
  5. Create the same pull request in the GitHub web UI; it succeeds.

Example successful manual PR after connector failure:

https://github.com/delmaredigital/dd-starter/pull/6

A comparable cross-fork PR into a user-owned public upstream has also succeeded through the connector, so this is not a general inability to create pull requests from forks.

Expected behavior

Either:

  • create the pull request through a user-authorized path that supports normal public fork contributions, or
  • detect that the connector cannot perform this mutation before attempting it and return an actionable manual PR/compare link.

Actual behavior

The connector exposes create_pull_request, performs the mutation, and returns a raw integration 403 only at the final step.

The error does not clearly distinguish the user's GitHub permissions from the connector/App's mutation capability.

Impact

This breaks a common open-source contribution workflow. External contributors normally control their fork, not the upstream organization's GitHub App installation, so requiring upstream App access is not a practical workaround.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the GitHub connector's create_pull_request entry point and trace the authorization used for public cross-fork PR creation. Reproduce the organization-owned and user-owned upstream cases described in the issue, comparing the connector result with the successful manual PR. Done means the connector supports the organization-owned case or detects the limitation and returns an actionable manual PR/compare link.

Written by the indexing model from the issue text.

Assessment

Tech stack
github
Domain
api, authorization
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.