name: bulk-github-star description: “自动星标GitHub用户的所有仓库。适用场景:(1) 支持开源创作者,(2) 批量发现有用项目,或(3) 自动化GitHub互动。”
批量GitHub仓库星标
通过单个命令自动星标任何GitHub用户的所有公开仓库。
何时使用
- 用户要求星标特定GitHub用户的所有仓库
- 批量赞赏开源贡献者
- 发现和保存创作者的所有项目
- 自动化GitHub互动的工作流程
所需工具/API
- GitHub CLI (
gh) 并认证 - 无需外部API密钥(使用GitHub CLI令牌)
安装GitHub CLI:
# Ubuntu/Debian
sudo apt-get install -y gh
# macOS
brew install gh
# Alpine (Docker)
apk add github-cli
# 需要登录
gh auth login
技能
star_all_user_repos
星标GitHub用户的所有公开仓库。
# 星标用户的所有仓库
USER="besoeasy"
repos=$(gh repo list $USER --limit 100 | grep "^$USER/" | cut -f1)
for repo in $repos; do
echo "星标: $repo"
gh api -X PUT /user/starred/$repo
done
echo "已星标 $(echo "$repos" | wc -l) 个仓库"
Node.js:
async function starAllUserRepos(username) {
const { execSync } = require('child_process');
// 获取用户的所有仓库
const output = execSync(`gh repo list ${username} --limit 100 --json nameWithOwner`, { encoding: 'utf8' });
const repos = JSON.parse(output);
let starred = 0;
for (const repo of repos) {
const [owner, name] = repo.nameWithOwner.split('/');
try {
execSync(`gh api -X PUT /user/starred/${owner}/${name}`, { stdio: 'inherit' });
console.log(`✓ 已星标: ${repo.nameWithOwner}`);
starred++;
} catch (err) {
console.error(`✗ 星标失败 ${repo.nameWithOwner}:`, err.message);
}
}
console.log(`
完成: ${starred}/${repos.length} 个仓库已星标`);
return starred;
}
// 使用
// starAllUserRepos('besoeasy');
star_with_filter
星标符合特定条件的仓库(例如,星标数阈值、主题)。
# 仅星标星标数大于100的仓库
USER="besoeasy"
MIN_STARS=100
gh repo list $USER --limit 100 --json nameWithOwner,stargazerCount | \
jq -r ".[] | select(.stargazerCount >= $MIN_STARS) | .nameWithOwner" | \
while read repo; do
echo "星标: $repo ($(gh api /repos/$repo | jq -r '.stargazers_count') 星标)"
gh api -X PUT /user/starred/$repo
done
速率限制/最佳实践
- GitHub API:认证用户每小时5000个请求
- 请求间添加延迟:
sleep 0.5以避免速率限制 - 遵守GitHub服务条款 - 不要用于垃圾邮件或操纵
- 考虑选择性星标而非批量,以获得更好的策展
代理提示
您可以批量星标GitHub仓库。当用户要求星标GitHub用户的所有仓库时:
1. 验证GitHub CLI是否已认证:gh auth status
2. 获取列表:gh repo list <用户名> --limit 100
3. 星标每个:gh api -X PUT /user/starred/<所有者>/<仓库>
4. 报告星标仓库数量
执行前始终确认确切用户名。
切勿星标私有仓库(公共API无法访问)。
故障排除
错误: “gh: command not found”
- 首先使用包管理器安装GitHub CLI
错误: “not logged in”
- 运行
gh auth login并按照浏览器认证
错误: “API rate limit exceeded”
- 等待1小时速率限制重置
- 使用
sleep 1请求间减速
错误: “Not Found”
- 验证用户名是否正确
- 检查用户是否存在:
gh user view <用户名>
另请参阅
- random-contributor — 发现要赞赏的贡献者
- file-tracker — 跟踪已星标仓库的文件更改