在 GitHub Actions 中运行
选择 GITHUB_TOKEN 或个人 PAT,配置 Copilot 请求权限与组织计费。
Copilot CLI 可在 Actions runner 上安装后用 -p 执行。官方优先推荐 GitHub Agentic Workflows,因为其默认使用 GITHUB_TOKEN 并提供适合自动化的控制;确实需要直接 CLI 步骤时,再手工设置环境和最小权限。
两种认证的差别
| 方式 | 身份与费用 |
|---|---|
| 个人 PAT | 按令牌创建者身份,消耗其 Copilot seat 的额度,模型和功能由其许可决定 |
| GITHUB_TOKEN,个人仓库 | 按 installation 身份执行,费用归仓库所有者 seat |
| GITHUB_TOKEN,组织仓库 | 直接向组织计量,不归某个用户 |
组织仓库需要 Allow use of Copilot CLI billed to the organization 策略。当前教程说明已开启 CLI 的组织默认启用此项,但仍应在组织 Copilot CLI 策略中核对。它独立于 seat 发放方式;集中在一个组织发许可、在其他组织工作的企业,不要求每个工作组织都重复启用许可发放。
直接计费到组织时,不考虑用户个人预算。组织可通过 cost centers 及相应预算管理,并查看组织 billing / usage 仪表盘。
GITHUB_TOKEN 示例
以下使用官方的只读提交摘要模式,runner 需满足 npm 安装的 Node.js 22+ 前提,并使用支持原生令牌认证的近期 CLI:
name: Copilot CLI example
on: [push]
permissions:
contents: read
copilot-requests: write
jobs:
copilot:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 2
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run Copilot
run: copilot -p "Use git show HEAD to summarize the changes in this commit" -s --allow-tool='shell(git show:*)'
env:
GITHUB_TOKEN: ${{ github.token }}fetch-depth: 2 获取当前提交及父提交,供 git show 计算变更。copilot-requests: write 是模型请求所必需的权限,不由 contents: read 代替。无需额外保存 PAT secret。
非交互运行不能展示批准对话,未预先允许的动作会拒绝。示例只允许 git show,而非全部 Shell 命令。
PAT 替代方式
组织未开启该策略,或需要明确计入个人 seat 时,可建立个人账号拥有的 fine-grained PAT,授予 Account 下的 Copilot Requests。把它保存为 Actions secret,然后传给 COPILOT_GITHUB_TOKEN。
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}这不是 Actions 自动生成的 GITHUB_TOKEN。若同时设置多个令牌变量,还要注意 CLI 的优先级,见认证。
工作流结果与触发范围
可用 workflow_dispatch 人工触发,验证输出后再增加 schedule 或仓库事件。需要报告时可以让 CLI 写文件,再附到 $GITHUB_STEP_SUMMARY;这与直接把所有工具输出当作报告不同。
直接运行 CLI 能访问 runner 的工作流环境。官方特别提醒 fork PR 触发和提示注入风险,任务应限制工具、权限和可用凭据范围,不要为了非交互方便直接授予全部权限。