<< All versions
Skill v1.0.0
currentAutomated scan100/100besoeasy/open-skills/bulk-github-star
──Details
PublishedAugust 25, 2026 at 02:12 PM
Content Hashsha256:6efc83839c4de8ac...
Git SHA3bc011321c90
──Files
Files (1 file, 3.8 KB)
SKILL.md3.8 KBactive
SKILL.md · 146 lines · 3.8 KB
version: "1.0.0" name: bulk-github-star description: "Star all repositories from a GitHub user automatically. Use when: (1) Supporting open source creators, (2) Bulk discovery of useful projects, or (3) Automating GitHub engagement."
Bulk GitHub Repository Starring
Automate starring all public repositories from any GitHub user with a single command.
When to use
- User asks to star all repos from a specific GitHub user
- Bulk appreciation for open source contributors
- Discovering and saving all projects from a creator
- Automation workflows for GitHub engagement
Required tools / APIs
- GitHub CLI (
gh) with authentication - No external API keys required (uses GitHub CLI token)
Install GitHub CLI:
bash
# Ubuntu/Debiansudo apt-get install -y gh# macOSbrew install gh# Alpine (Docker)apk add github-cli# Login requiredgh auth login
Skills
star_all_user_repos
Star all public repositories from a GitHub user.
bash
# Star all repos from a userUSER="besoeasy"repos=$(gh repo list $USER --limit 100 | grep "^$USER/" | cut -f1)for repo in $repos; doecho "Starring: $repo"gh api -X PUT /user/starred/$repodoneecho "Starred $(echo "$repos" | wc -l) repositories"
Node.js:
javascript
async function starAllUserRepos(username) {const { execSync } = require('child_process');// Get all repos for userconst 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(`✓ Starred: ${repo.nameWithOwner}`);starred++;} catch (err) {console.error(`✗ Failed to star ${repo.nameWithOwner}:`, err.message);}}console.log(`\nCompleted: ${starred}/${repos.length} repositories starred`);return starred;}// Usage// starAllUserRepos('besoeasy');
star_with_filter
Star repos matching specific criteria (e.g., stars threshold, topic).
bash
# Star only repos with >100 starsUSER="besoeasy"MIN_STARS=100gh repo list $USER --limit 100 --json nameWithOwner,stargazerCount | \jq -r ".[] | select(.stargazerCount >= $MIN_STARS) | .nameWithOwner" | \while read repo; doecho "Starring: $repo ($(gh api /repos/$repo | jq -r '.stargazers_count') stars)"gh api -X PUT /user/starred/$repodone
Rate limits / Best practices
- GitHub API: 5000 requests/hour for authenticated users
- Add delays between requests:
sleep 0.5to avoid rate limits - Respect GitHub ToS - don't use for spam or manipulation
- Consider starring selectively rather than bulk for better curation
Agent prompt
text
You can bulk star GitHub repositories. When a user asks to star all repos from a GitHub user:1. Verify GitHub CLI is authenticated: gh auth status2. Get the list: gh repo list <username> --limit 1003. Star each using: gh api -X PUT /user/starred/<owner>/<repo>4. Report count of starred repositoriesAlways confirm the exact username before executing.Never star private repos (not accessible via public API anyway).
Troubleshooting
Error: "gh: command not found"
- Install GitHub CLI first using package manager
Error: "not logged in"
- Run
gh auth loginand follow browser authentication
Error: "API rate limit exceeded"
- Wait 1 hour for rate limit reset
- Use
sleep 1between requests to slow down
Error: "Not Found"
- Verify the username is correct
- Check if user exists:
gh user view <username>
See also
- random-contributor — find contributors to appreciate
- file-tracker — track file changes in starred repos