Composer下载公开仓库需OAuth令牌及自定义依赖配置技术咨询
It sounds like you're hitting GitHub's API rate limits or have a minor configuration quirk that's causing Composer to ask for an OAuth token even though your forked repository is public. Let's break down the solutions step by step:
1. Confirm Your Fork is Public
First, double-check that your fork at https://github.com/mmuhasan/php-sql-query-builder is set to public. Accidental private visibility can force token requests, though this is less likely if you didn't modify the repo's settings after forking.
2. Resolve GitHub API Rate Limits (Most Common Cause)
Composer relies on GitHub's API to fetch repository metadata, and unauthenticated requests have a strict rate limit (only 60 requests per hour). Once you hit this limit, GitHub will prompt for an OAuth token to lift the restriction (authenticated requests get 5000 requests per hour). Here's how to set this up:
- Go to your GitHub account → Settings → Developer settings → Personal access tokens → Generate new token
- Give it a descriptive name (like "Composer Public Repo Access") and only check the
public_repopermission (this is all you need for public repositories) - Generate the token, then run this terminal command to configure Composer globally:
composer config --global github-oauth.github.com YOUR_GENERATED_TOKEN
This lets Composer authenticate requests, avoiding rate limits and token prompts entirely.
3. Fix Your Composer.json Configuration
Make sure your require block uses Composer's correct branch naming convention. Branch versions must be prefixed with dev-, so your branch dev-where-bug-fix should be referenced as dev-dev-where-bug-fix in the require statement. Here's the corrected snippet:
"repositories": [ { "type": "vcs", "url": "https://github.com/mmuhasan/php-sql-query-builder" } ], "require": { "nilportugues/sql-query-builder": "dev-dev-where-bug-fix" }
Also, double-check for typos in the repository URL or package name—small mistakes can cause unexpected behavior.
4. Clear Composer's Cache
Old cached metadata can sometimes lead to odd issues. Run this command to clear the cache, then try installing your dependencies again:
composer clear-cache
After trying these steps, Composer should fetch your forked repository without asking for an OAuth token (or if it does, the token you configured will handle it seamlessly).
内容的提问来源于stack exchange,提问作者Md Monjur Ul Hasan

