|
| 1 | +# GitHub Actions 故障排除 |
| 2 | + |
| 3 | +## 403 权限错误解决方案 |
| 4 | + |
| 5 | +如果您遇到 `⚠️ GitHub release failed with status: 403` 错误,请按以下步骤检查和修复: |
| 6 | + |
| 7 | +### 1. 检查仓库设置 |
| 8 | + |
| 9 | +前往 GitHub 仓库设置: |
| 10 | + |
| 11 | +1. 点击仓库页面的 **Settings** 标签 |
| 12 | +2. 在左侧菜单中选择 **Actions** → **General** |
| 13 | +3. 在 **Workflow permissions** 部分,选择: |
| 14 | + - ✅ **Read and write permissions** |
| 15 | + - ✅ **Allow GitHub Actions to create and approve pull requests** |
| 16 | + |
| 17 | +### 2. 检查个人 Token 权限(如果使用自定义Token) |
| 18 | + |
| 19 | +如果您使用自定义的 `GITHUB_TOKEN`: |
| 20 | + |
| 21 | +1. 前往 GitHub Settings → Developer settings → Personal access tokens |
| 22 | +2. 确保 Token 具有以下权限: |
| 23 | + - ✅ `repo` (Full control of private repositories) |
| 24 | + - ✅ `write:packages` (Write packages to GitHub Package Registry) |
| 25 | + - ✅ `contents:write` (Contents write permission) |
| 26 | + |
| 27 | +### 3. 验证分支保护规则 |
| 28 | + |
| 29 | +1. 前往 **Settings** → **Branches** |
| 30 | +2. 检查是否有分支保护规则阻止 Actions |
| 31 | +3. 如果有保护规则,确保: |
| 32 | + - ✅ 允许 Actions 推送到保护分支 |
| 33 | + - ✅ 不要求管理员进行审查 |
| 34 | + |
| 35 | +### 4. 手动测试权限 |
| 36 | + |
| 37 | +运行调试工作流来检查权限: |
| 38 | + |
| 39 | +```bash |
| 40 | +# 在 GitHub 仓库页面的 Actions 标签中 |
| 41 | +# 找到 "Debug Permissions" 工作流 |
| 42 | +# 点击 "Run workflow" 手动运行 |
| 43 | +``` |
| 44 | + |
| 45 | +### 5. 组织仓库的额外设置 |
| 46 | + |
| 47 | +如果仓库属于组织: |
| 48 | + |
| 49 | +1. 前往组织的 **Settings** → **Actions** |
| 50 | +2. 确保允许仓库使用 Actions |
| 51 | +3. 检查 **Third-party Actions** 设置 |
| 52 | + |
| 53 | +### 6. 重新创建工作流文件 |
| 54 | + |
| 55 | +如果以上都无效,尝试重新创建工作流: |
| 56 | + |
| 57 | +1. 删除 `.github/workflows/build.yml` |
| 58 | +2. 重新创建文件 |
| 59 | +3. 提交并推送 |
| 60 | + |
| 61 | +### 7. 使用经典 Token |
| 62 | + |
| 63 | +如果问题持续存在,创建经典 Personal Access Token: |
| 64 | + |
| 65 | +1. GitHub Settings → Developer settings → Personal access tokens → Tokens (classic) |
| 66 | +2. 生成新 Token,选择所有 `repo` 权限 |
| 67 | +3. 在仓库 Settings → Secrets 中添加为 `RELEASE_TOKEN` |
| 68 | +4. 修改工作流使用 `RELEASE_TOKEN` 而不是 `GITHUB_TOKEN` |
| 69 | + |
| 70 | +## 常见问题 |
| 71 | + |
| 72 | +### Q: 为什么构建成功但发布失败? |
| 73 | +A: 这通常是权限问题。检查上述权限设置。 |
| 74 | + |
| 75 | +### Q: 可以手动创建 Release 吗? |
| 76 | +A: 是的,您可以: |
| 77 | +1. 手动运行构建工作流 |
| 78 | +2. 下载 Artifacts |
| 79 | +3. 在 GitHub 手动创建 Release 并上传文件 |
| 80 | + |
| 81 | +### Q: 如何调试权限问题? |
| 82 | +A: 运行 "Debug Permissions" 工作流查看详细信息。 |
| 83 | + |
| 84 | +## 联系支持 |
| 85 | + |
| 86 | +如果问题仍然存在,请: |
| 87 | +1. 提供完整的错误日志 |
| 88 | +2. 说明您的仓库设置 |
| 89 | +3. 创建 Issue 寻求帮助 |
0 commit comments