4.4 KiB
4.4 KiB
GitHub Personal Access Token 权限配置指南
问题:refusing to allow a Personal Access Token to create or update workflow
原因
GitHub 要求推送 .github/workflows/ 目录下的文件时,Personal Access Token 必须包含 workflow 权限。
解决方案
方案一:更新 Token 权限(推荐)
步骤 1:创建新的 Personal Access Token
- 访问:https://github.com/settings/tokens
- 点击 Generate new token (classic)
- 填写 Token 名称:
wecom-ai-assistant-full-access - 选择过期时间:根据你的需求(推荐 90 天或 No expiration)
- 选择以下权限:
- ✅ repo(完整仓库访问权限)
- ✅ repo:status
- ✅ repo_deployment
- ✅ public_repo
- ✅ repo:invite
- ✅ security_events
- ✅ workflow(工作流权限)← 必需
- ✅ write:packages(推送 Docker 镜像到 GHCR)
- ✅ read:packages(从 GHCR 拉取镜像)
- ✅ repo(完整仓库访问权限)
- 点击 Generate token
- 立即复制 token(只显示一次)
步骤 2:更新配置文件
编辑 .github-config 文件,更新 token:
GITHUB_TOKEN=你的新token
步骤 3:更新 Git 远程 URL
# 使用新 token 更新远程 URL
git remote set-url origin https://bujie9527:你的新token@github.com/bujie9527/wecom-ai-assistant.git
# 验证
git remote -v
# 重新推送
git push -u origin main
方案二:临时跳过 Workflow 文件(快速解决)
如果暂时不想更新 token,可以先推送其他文件:
步骤 1:移除 workflow 文件从暂存区
# 从暂存区移除 workflow 文件
git reset HEAD .github/workflows/
# 提交其他文件
git commit -m "Initial commit: 企业微信 AI 机器人助理 MVP (without workflows)"
# 推送
git push -u origin main
步骤 2:稍后单独推送 workflow 文件
更新 token 后:
# 添加 workflow 文件
git add .github/workflows/
# 提交
git commit -m "Add GitHub Actions workflows"
# 推送
git push origin main
方案三:使用 GitHub CLI(gh)
如果安装了 GitHub CLI:
# 安装 GitHub CLI(如果还没有)
# 下载:https://cli.github.com/
# 登录(会自动处理权限)
gh auth login
# 推送代码
git push -u origin main
Token 权限说明
必需权限
| 权限 | 说明 | 用途 |
|---|---|---|
repo |
完整仓库访问 | 推送代码、创建分支等 |
workflow |
工作流权限 | 推送 .github/workflows/ 文件 |
write:packages |
写入包 | 推送 Docker 镜像到 GHCR |
read:packages |
读取包 | 从 GHCR 拉取镜像 |
权限范围
- Full control of private repositories:如果你使用私有仓库
- Public repositories only:如果使用公开仓库
验证 Token 权限
推送成功后,检查:
- 仓库文件:https://github.com/bujie9527/wecom-ai-assistant
- Workflow 文件:https://github.com/bujie9527/wecom-ai-assistant/tree/main/.github/workflows
- Actions:https://github.com/bujie9527/wecom-ai-assistant/actions
安全建议
-
Token 安全:
- 不要将 token 提交到 Git
- 定期轮换 token(每 90 天)
- 如果 token 泄露,立即撤销
-
最小权限原则:
- 只授予必要的权限
- 使用 Fine-grained tokens(如果可用)限制仓库范围
-
Token 存储:
- 存储在
.github-config(已添加到.gitignore) - 或使用环境变量
- 或使用 Git Credential Manager
- 存储在
故障排查
问题:仍然提示权限不足
解决方案:
- 确认 token 已更新并包含
workflow权限 - 清除 Git 凭据缓存:
git credential-manager-core erase git credential reject https://github.com - 重新推送
问题:Token 在哪里查看/更新?
答案:
- 查看现有 tokens:https://github.com/settings/tokens
- 创建新 token:https://github.com/settings/tokens/new
问题:如何撤销旧 Token?
答案:
- 访问:https://github.com/settings/tokens
- 找到对应的 token
- 点击 Revoke(撤销)