GitHub connector returns 403 creating public cross-fork PRs into organization-owned repos
Nobody has claimed this yet.
- 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
- Use a fork you own of a public repository owned by an organization you do not administer.
- Ask the GitHub connector to create a pull request from the fork into the upstream repository.
- Repository reads and diff inspection succeed.
create_pull_requestfails with403 Resource not accessible by integration.- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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