有关身份验证选项的背景信息,以及在 Copilot CLI 中运行 GitHub Actions 时计费如何运作,请参阅 关于在 GitHub Actions 中使用 Copilot CLI。
启用策略
要使组织中的工作流使用Copilot CLI和GITHUB_TOKEN,必须启用该策略。 默认情况下,对于已启用 Copilot CLI 的组织,此策略处于启用状态;但你可以在组织的策略设置中确认或更改此设置。
- 转到您组织的策略设置。 请参阅“管理组织中GitHub Copilot的策略和功能”。
- 在“Copilot CLI”下,确认已选中“允许使用由组织付费的 Copilot CLI”****。
建议的方法:GitHub 智能体工作流
对于大多数自动化用例,我们建议使用 GitHub Agentic 工作流 ,而不是直接在工作流步骤中调用 copilot 。 代理工作流默认使用 GITHUB_TOKEN 身份验证,并包括适用于自动化环境的其他防护措施。
有关设置说明,请参阅 Agentic 工作流文档中的GitHub。 工作流还必须授予 copilot-requests: write 权限。 请参阅 Agentic 工作流文档中的权限GitHub。
在工作流中直接使用 Copilot CLI
如果需要直接在工作流步骤中调用 Copilot CLI ,请使用 npm 安装 CLI。
警告
直接在工作流步骤中调用 Copilot 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 HEAD能够计算当前提交引入的更改。 - 此选项
--allow-tool='shell(git show:*)'允许 Copilot CLI 在不请求批准的情况下运行git show命令。 非交互式(-p)运行无法显示交互式批准提示,因此任何未经预先批准的操作都会被自动拒绝。 - 工作流需要
copilot-requests: write权限才能发出 Copilot 请求。 - 由 GitHub Actions 提供的
GITHUB_TOKEN会自动处理身份验证。 不需要其他机密。
注意
您必须使用较新版本的 Copilot CLI,才能使用 GITHUB_TOKEN 身份验证。 使用 copilot update 更新,或使用 npm install -g @github/copilot 重新安装最新版本。