Files
ljwx-children/.github-token-security.md
bruno 2cb4ddc4c0 feat: complete Week 1-4 optimization implementation
Major Updates:
- ✅ Implemented 4 Claude Code Skills (2600+ lines)
  - code-review: Security, quality, type checking
  - test-generator: Auto-generate pytest tests
  - doc-updater: Auto-update README and API docs
  - refactor-assistant: Code smell detection

- ✅ Implemented 2 Git Hooks (450+ lines)
  - pre-commit: Auto-format, lint, review
  - pre-push: Test suite and coverage check

- 📚 Complete documentation (20+ files)
  - Skills READMEs with examples
  - Optimization roadmap and progress
  - TODO list with 22 tasks
  - Quick reference guide

- 📊 Progress: 45% → 64% (Phase 1: 20% → 60%)

- 💰 ROI: Saving 50.6 hours/month ≈ 6.3 person-days/month

Next Steps:
- API Designer Skill
- Code templates library
- Prompt library
- GitHub Projects task tracking

🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-30 12:10:29 +08:00

4.7 KiB
Raw Permalink Blame History

GitHub Token 安全提醒 ⚠️

🔐 重要安全提示

⚠️ 立即行动

你在本次配置过程中使用的 GitHub Token 已在对话中暴露:

Token: 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

请立即采取以下措施:

1. 撤销已暴露的 Token

# 访问 GitHub Token 管理页面
open https://github.com/settings/tokens

# 或使用命令行
gh auth status

操作步骤:

  1. 访问:https://github.com/settings/tokens
  2. 找到刚才使用的 token(查看创建时间)
  3. 点击 "Delete" 按钮删除该 token
  4. 确认删除

2. 生成新的 Token(如需要)

创建新 token:

  1. 访问:https://github.com/settings/tokens/new
  2. 设置有意义的名称:如 "SDLC Project Management - 2024"
  3. 设置过期时间:建议 90 天
  4. 勾选必要权限:
    • ✅ repo - 仓库访问
    • ✅ project - 项目管理
    • ✅ write:org - 组织项目(如果需要)
  5. 点击 "Generate token"
  6. 立即复制 token 并保存到安全的地方

3. 安全存储 Token

推荐方式:

方式 A:使用环境变量(临时)

# 添加到 ~/.bashrc 或 ~/.zshrc
export GITHUB_TOKEN="your_new_token_here"

# 重新加载
source ~/.bashrc  # 或 source ~/.zshrc

方式 B:使用 GitHub CLI(推荐)

# GitHub CLI 会安全存储 token
gh auth login

# 选择:
# - GitHub.com
# - HTTPS
# - Login with a web browser (或 Paste an authentication token)

方式 C:使用密钥管理工具

# macOS Keychain
security add-generic-password \
  -s "GitHub Token" \
  -a "your_username" \
  -w "your_new_token_here"

# 读取
security find-generic-password \
  -s "GitHub Token" \
  -a "your_username" \
  -w

4. 永远不要将 Token 提交到代码仓库

检查 .gitignore:

# 确保以下文件被忽略
echo ".env" >> .gitignore
echo ".env.local" >> .gitignore
echo "*.token" >> .gitignore
echo ".github-token" >> .gitignore

检查历史提交:

# 搜索是否有 token 泄露
git log -p | grep -i "ghp_"

# 如果发现泄露,需要重写历史(危险操作)
# 建议使用 git filter-branch 或 BFG Repo-Cleaner

5. 使用脚本时的最佳实践

不要这样做 ❌:

# 永远不要在命令行中直接写 token
python scripts/setup-project-fields.py --token ghp_xxxxx

应该这样做 ✅:

# 使用环境变量
export GITHUB_TOKEN="your_token"
python scripts/setup-project-fields.py --project-id PVT_xxx

# 或从文件读取(文件要加入 .gitignore)
cat .github-token | xargs -I {} \
  python scripts/setup-project-fields.py --token {}

🛡️ Token 权限最小化原则

根据需求选择权限

任务 需要的权限
配置 Project 字段 project (read & write)
读取 Issues repo (read)
创建 Issues repo (write)
组织级 Project write:org
公开仓库只读 public_repo

建议: 为不同用途创建不同的 token,权限各不相同

Token 过期时间

推荐设置:
- 个人开发:30-90 天
- 自动化脚本:90-365 天
- 临时测试:7 天
- 永不过期:❌ 不推荐

🚨 Token 泄露检测

GitHub 自动扫描

GitHub 会自动扫描公开仓库中的 token,如果检测到会:

  1. 立即撤销该 token
  2. 发送邮件通知你
  3. 在安全页面显示警告

手动检查

# 检查当前仓库
git grep -i "ghp_"
git log --all --full-history --source --all -- "*" | grep -i "ghp_"

# 检查环境变量
printenv | grep -i "github"

📋 安全检查清单

  • 已撤销暴露的 token
  • 已生成新的 token(如需要)
  • 新 token 保存在安全的地方
  • .gitignore 包含 token 相关文件
  • 未在代码中硬编码 token
  • 使用环境变量或密钥管理工具
  • 设置了合理的 token 过期时间
  • 只授予必要的权限

🔗 相关资源

💡 未来改进

使用 GitHub Apps(推荐)

相比 Personal Access Token,GitHub Apps 更安全:

  • 细粒度权限控制
  • 可以限制到特定仓库
  • 更好的审计日志
  • Token 自动轮换

使用 OAuth Apps

适合 Web 应用场景,用户授权流程更安全。


重要性: 🔴 高 操作紧急性: ⚠️ 立即处理 最后更新: 2024-12-30

记住:泄露的 token 相当于泄露了你的 GitHub 账号权限!