github-auth — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited github-auth (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill provides secure access to GitHub credentials for API operations, repository management, and git commands.
When helping with GitHub operations that require authentication:
.env file~/apps/your_claude_skills/.env or use relative path: ./.env%USERPROFILE%\apps\your_claude_skills\.env or relative: .\.env # Linux/macOS:
source ./.env
# Windows PowerShell:
# Get-Content .\.env | ForEach-Object { if ($_ -match '^([^=]+)=(.*)$') { [Environment]::SetEnvironmentVariable($matches[1], $matches[2]) } } # Linux/macOS:
GITHUB_USERNAME=$(grep GITHUB_USERNAME ./.env | cut -d= -f2)
GITHUB_PAT=$(grep GITHUB_PAT ./.env | cut -d= -f2)
# Windows PowerShell:
# $GITHUB_USERNAME = (Get-Content .\.env | Select-String "GITHUB_USERNAME").Line.Split("=")[1]
# $GITHUB_PAT = (Get-Content .\.env | Select-String "GITHUB_PAT").Line.Split("=")[1]Use the GitHub CLI (gh) for authenticated operations:
# Authenticate gh with stored PAT
echo "$GITHUB_PAT" | gh auth login --with-token
# Or use API directly with curl
curl -H "Authorization: token $GITHUB_PAT" https://api.github.com/user/repos⚠️ SECURITY WARNING: Embedding credentials in URLs is a security risk. Use SSH keys or git credential helper instead.
RECOMMENDED: Use SSH Keys
# Setup SSH key for GitHub (one-time setup)
ssh-keygen -t ed25519 -C "[email protected]"
cat ~/.ssh/id_ed25519.pub # Add this to GitHub Settings > SSH Keys
# Clone with SSH (RECOMMENDED)
git clone [email protected]:owner/repo.git
# Add SSH remote
git remote add origin [email protected]:owner/repo.gitALTERNATIVE: Use Git Credential Helper
# Configure git credential helper (stores credentials securely)
git config --global credential.helper store
# First time will prompt for credentials, then stores them securely
git clone https://github.com/owner/repo.gitNOT RECOMMENDED: Credentials in URL (only for automation/CI)
# WARNING: Credentials in URLs can leak in logs/history
# Only use in secure, automated environments
git clone https://$GITHUB_USERNAME:[email protected]/owner/repo.git gh repo create owner/repo --private --description "Description" gh repo list gh pr create --title "Title" --body "Description" gh issue create --title "Issue" --body "Description"
gh issue list gh release create v1.0.0 --title "Release 1.0.0" --notes "Release notes"echo $GITHUB_PAT or display the tokengh commands over raw API callsIf authentication fails:
gh auth status# Load credentials (Linux/macOS):
source ./.env
# Load credentials (Windows PowerShell):
# Get-Content .\.env | ForEach-Object { if ($_ -match '^([^=]+)=(.*)$') { [Environment]::SetEnvironmentVariable($matches[1], $matches[2]) } }
# Create private repository
gh repo create yourusername/my-new-repo --private --description "My new project"
# Initialize local repo and push
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/yourusername/my-new-repo.git
git push -u origin main# Clone with SSH (most secure)
git clone [email protected]:yourusername/private-repo.git# First time setup (one-time)
git config --global credential.helper store
# Clone - will prompt for credentials first time, then cache
git clone https://github.com/yourusername/private-repo.git# Load credentials (Linux/macOS):
source ./.env
# Load credentials (Windows PowerShell):
# Get-Content .\.env | ForEach-Object { if ($_ -match '^([^=]+)=(.*)$') { [Environment]::SetEnvironmentVariable($matches[1], $matches[2]) } }
# List user's repositories (Linux/macOS):
curl -s -H "Authorization: token $GITHUB_PAT" \
https://api.github.com/user/repos | jq -r '.[].full_name'
# Windows PowerShell:
# $headers = @{ Authorization = "token $env:GITHUB_PAT" }
# (Invoke-RestMethod -Uri "https://api.github.com/user/repos" -Headers $headers).full_name~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.