一个用于全面测试GitHub权限和功能完整性的自动化工具。
- Git客户端版本和配置
- 网络连接性(GitHub API)
- 必要工具(curl, jq, git)
- GitHub CLI (gh) 可用性
- Token有效性检查
- 用户身份验证
- 权限范围分析
- 过期时间检测
- REST API访问测试
- GraphQL API访问测试
- 速率限制检查
- 错误处理验证
- 创建/删除仓库
- 推送/拉取代码
- 分支管理
- 标签操作
- Issues创建和管理
- Pull Requests流程
- GitHub Actions执行
- Webhooks配置
- 仓库设置访问
- 验证拥有的仓库权限
- 组织访问权限
- 团队权限
- 安装权限(Github Apps)
- GitHub Personal Access Token(需要以下权限):
repo(全部权限)admin:org(只读)userprojectnotificationsgistworkflow
export GITHUB_TOKEN="your_personal_access_token"# 完整测试
./test_github_environment.sh
# 仅运行特定测试
./test_github_environment.sh --test api
./test_github_environment.sh --test git
./test_github_environment.sh --test permissions
# 生成详细报告
./test_github_environment.sh --reporttesting/
├── test_github_environment.sh # 主测试脚本
├── config/
│ └── test_config.json # 测试配置
├── modules/
│ ├── env_check.sh # 环境检查模块
│ ├── token_test.sh # Token测试模块
│ ├── api_test.sh # API测试模块
│ ├── git_test.sh # Git操作测试模块
│ ├── repo_test.sh # 仓库功能测试模块
│ └── permissions_test.sh # 权限范围测试模块
├── logs/
│ ├── test_results.json # JSON格式测试结果
│ ├── detailed_report.md # 详细Markdown报告
│ └── error_log.txt # 错误日志
└── examples/
└── sample_test_output.txt # 示例输出
- 检查Git版本和配置
- 验证网络连接到GitHub
- 检查必要工具是否安装
- 测试GitHub CLI可用性
- 验证Token格式和有效性
- 获取用户信息
- 检查Token权限范围
- 验证过期时间
- REST API端点测试
- GraphQL查询测试
- 速率限制检查
- 错误响应处理
- 克隆仓库
- 提交更改
- 推送/拉取操作
- 分支和标签管理
- 冲突处理
- 创建/删除测试仓库
- Issues生命周期
- Pull Requests流程
- GitHub Actions工作流
- Webhooks管理
- 验证对不同资源的访问权限
- 检查组织权限
- 验证团队访问
- 测试GitHub Apps权限
测试完成后生成以下报告:
{
"summary": {
"total_tests": 42,
"passed": 38,
"failed": 4,
"success_rate": 90.48
},
"environment": {
"git_version": "2.39.0",
"github_cli_installed": true
},
"token": {
"valid": true,
"username": "your-username",
"scopes": ["repo", "user", "workflow"]
},
"permissions": {
"repositories": {
"create": true,
"delete": true
},
"organizations": {
"read": true,
"write": false
}
}
}包含:
- 执行摘要
- 详细测试结果
- 建议和修复步骤
- 下一步操作
- Token安全:测试完成后会自动清理Token痕迹
- 测试仓库:所有创建的测试仓库都会在测试完成后删除
- 数据隐私:所有测试数据都是临时的,不会保留敏感信息
- 权限最小化:测试仅使用必要的权限,不会过度请求
❌ Token validation failed: Bad credentials
解决:重新生成Token,确保包含所有必要权限
❌ Cannot connect to GitHub API
解决:检查网络连接,确保可访问api.github.com
❌ Insufficient permissions for repository creation
解决:重新生成Token,确保包含repo完整权限
⚠️ GitHub CLI (gh) not installed
解决:安装GitHub CLI或跳过相关测试
- 在
modules/目录创建新的测试脚本 - 在主脚本中注册新的测试模块
- 更新配置文件和报告生成
编辑config/test_config.json:
{
"test_repository": "github-env-test-temp",
"cleanup": true,
"verbose": false,
"timeout_seconds": 30
}欢迎提交问题和拉取请求!
MIT
注意:此项目仅用于测试目的,请勿用于生产环境。