Skip to content

πŸ›πŸ§‘β€πŸ’» - Private pull request linkage inspection ignores authentication and fails with HTTP 404Β #610

Closed

Description

@efraespada

Is there an existing issue for this?

  • I have searched the existing issues.

Which actions are affected?

Pull Request

Which platforms are affected?

Linux (observed; the HTTP behavior is platform-independent)

Description

Copilot v3.9.0 cannot inspect issue linkage when opening a pull request in a private consumer repository. PullRequestLifecycleRepository.isLinked accepts _token but performs an unauthenticated fetch against the GitHub HTML pull-request URL. GitHub returns HTTP 404 for a private pull request without an authenticated browser session, even when the configured contributor token can read the same PR through the REST API.

The Action then reports provider.unavailable and fails the pull-request workflow. This is deterministic for a private repository, rather than a temporary provider outage. It can fail the overall workflow even when the separate code review completes.

Expected: inspect linkage through an authenticated, supported API using the supplied credentials; retain exact PR/issue identity and existing lifecycle safeguards. Provide an accurate diagnostic if the operation is unsupported. Do not make the repository public, broaden permissions unnecessarily, or bypass linkage verification.

Reproducing the issue

  1. Configure vypdev/copilot@v3 for a private consumer repository using a token that can read and update its pull requests and issues.
  2. Start an admitted issue and open its linked managed-branch PR using the normal workflow.
  3. Observe LinkPullRequestIssueUseCase fail while inspecting linkage.
  4. Inspect pinned source src/data/repository/pull_request/pull_request_lifecycle_repository.ts at 40dc4ad1d7ff5bebd7efd52f9429391cc9869577: isLinked ignores _token and calls fetch(pullRequestUrl, { signal: controller.signal }) without authentication.
  5. Compare status-only requests for the affected PR: anonymous HTML returns 404; authenticated REST retrieves the PR successfully. No credentials or response bodies are needed in the report.

Observed in private consumer PRs #190 and #191. Example affected workflow: https://github.com/vypdev/platform/actions/runs/39347109203 (access required).

copilot Version

v3.9.0; floating v3 resolved to 40dc4ad1d7ff5bebd7efd52f9429391cc9869577.

Relevant Log Output

Executing LinkPullRequestIssueUseCase.
Unable to inspect issue linkage for pull request #191.
Error code: provider.unavailable

Independent status-only reproduction: anonymous PR HTML HTTP 404; authenticated REST HTTP 200.

Additional context and comments

This is distinct from #605 / #607: that fix authenticates Git fetch for private issue-branch creation. Branch creation now works; this remaining defect is in PR linkage inspection. No consumer credentials, branch-protection settings, workflow permissions, or lifecycle labels were changed as a workaround.

Suggested regression coverage: authenticated private PR linkage, public PR linkage, genuine 403/404 and transport errors, retained base/description on failure, and no unauthenticated HTML dependency.

Activity

  1. added theissue type on Oct 20, 2026
  2. added
    bugSomething isn't working
    bugfixSomething isn't working
    priority: highCritical issue, needs immediate attention.
    on Oct 20, 2026
  3. moved this to Todo in vypdevon Oct 20, 2026
  4. changed the title [-]Private pull-request linkage inspection ignores authentication and fails with HTTP 404[/-] [+]πŸ› - Private pull request linkage inspection ignores authentication and fails with HTTP 404[/+] on Oct 20, 2026
  5. vypbot commented on Oct 20, 2026

    @vypbot
    Contributor

    Hi! I’m @vypbot, the Copilot assistant for this repository.

    I can answer questions, explain the codebase, propose implementation and test plans, review issues and pull requests for potential bugs or security problems, and help authorized maintainers apply changes.

    Try /copilot help to see the available commands, or mention @vypbot with your question.

  6. moved this from Todo to In Progress in vypdevon Oct 20, 2026
  7. added
    branchedIndicates that a branch has been created for this issue.
    on Oct 20, 2026
  8. changed the title [-]πŸ› - Private pull request linkage inspection ignores authentication and fails with HTTP 404[/-] [+]πŸ›πŸ§‘β€πŸ’» - Private pull request linkage inspection ignores authentication and fails with HTTP 404[/+] on Oct 20, 2026
  9. 4 remaining items

  10. added
    size: XLIndicates that the issue or task is extra large in scope and complexity.
    90%Progress: 90%
    and removed on Oct 20, 2026
  11. vypbot commented on Oct 20, 2026

    @vypbot
    Contributor

    Issue closed β€” historical progress

    Current status: closed as completed.

    The last estimate is retained below as history. Closure does not certify a new percentage, tests, or branch alignment.

    Action required: none for this closed issue. If work continues, reopen the issue; a fresh assessment can update this same card.

    Last assessment before closure (historical)

    Progress: 90% β€” in progress

    > Current status: The source changes address the core defect with credential-authenticated GraphQL linkage inspection, exact repository/PR/issue matching, bounded pagination, fail-closed error handling, preserved lifecycle behavior, regression cases, and documentation. The supplied comparison does not establish that tests, typecheck, lint, or other validation passed; generated build metadata is not verification.

    Next: Run the documented regression suites and repository validation checks, then confirm acceptance in a private consumer as specified.

  12. added a commit that references this issue on Oct 20, 2026
  13. vypbot commented on Oct 20, 2026

    @vypbot
    Contributor

    Issue closed: synchronization recommendation retired

    No branch synchronization is required for this closed issue.

    The previous recommendation is historical. Issue closure does not certify that the branches are synchronized.

  14. moved this from In Progress to Done in vypdevon Oct 20, 2026
  15. added
    100%Progress: 100%
    and removed
    90%Progress: 90%
    in-progressStart work on an admitted issue.
    state:workingWork can proceed on the verified branch or without a branch.
    on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

100%Progress: 100%branchedIndicates that a branch has been created for this issue.bugSomething isn't workingbugfixSomething isn't workingpriority: highCritical issue, needs immediate attention.size: XLIndicates that the issue or task is extra large in scope and complexity.

Type

Projects

  • Status
    Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions