fix(worker): use Ask GitHub PAT for repository auth#1440
Conversation
|
@brendan-kellam your pull request is missing a changelog! |
WalkthroughAdds an optional Ask GitHub token environment variable and an early GitHub-specific credential path that returns the token and an authenticated clone URL. Tests cover token selection, clone URL construction, and environment restoration. ChangesGitHub token authentication
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Repo as GitHub repository
participant Auth as getAuthCredentialsForRepo
participant Env as env.EXPERIMENT_ASK_GH_GITHUB_TOKEN
participant Clone as createGitCloneUrlWithToken
Repo->>Auth: provide repository metadata
Auth->>Env: read experimental token
Auth->>Clone: create clone URL with x-access-token and PAT
Clone-->>Auth: return authenticated clone URL
Auth-->>Repo: return hostUrl, token, and cloneUrlWithToken
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/backend/src/utils.ts`:
- Around line 118-133: Restrict the Ask GitHub PAT branch in the repository
authentication flow to GitHub repositories whose external host matches the
intended GitHub hostname, in addition to the existing external_codeHostType and
EXPERIMENT_ASK_GH_GITHUB_TOKEN checks. Only call createGitCloneUrlWithToken and
return the PAT-based credentials for that matching host; preserve the existing
per-connection authentication path for other GitHub hosts.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 9ccd1c2d-24a7-48f9-8861-e76a8062e8f1
📒 Files selected for processing (3)
packages/backend/src/utils.test.tspackages/backend/src/utils.tspackages/shared/src/env.server.ts
Summary
EXPERIMENT_ASK_GH_GITHUB_TOKENas an optional server environment variableTest plan
yarn workspace @sourcebot/backend test --run src/utils.test.tsyarn workspace @sourcebot/backend buildNote
Medium Risk
Changes how GitHub service credentials are chosen for clone/sync when the experimental PAT is set, which can override GitHub App and connection tokens cluster-wide; scope is limited to opt-in env configuration.
Overview
Adds optional
EXPERIMENT_ASK_GH_GITHUB_TOKENand, when set, makesgetAuthCredentialsForReporeturn that PAT for GitHub repos before GitHub App installation tokens or per-connection credentials. Clone URLs use the standardx-access-tokenembedded-auth form.A unit test asserts this precedence even when the repo has no connections. Worker flows that already call
getAuthCredentialsForRepo(e.g. repo indexing and permission sync) will automatically use the PAT when the env is configured.Reviewed by Cursor Bugbot for commit 9efa345. Bugbot is set up for automated code reviews on this repo. Configure here.
Summary by CodeRabbit
New Features
Tests