Вы можете запускать GitHub Copilot CLIGitHub Actions рабочий процесс для автоматизации задач на базе ИИ в рамках процесса CI/CD. Например, вы можете резюмировать недавнюю активность репозиториев, генерировать отчёты или создавать project контент. GitHub Copilot CLI Работает на Actions runner как любой другой CLI-инструмент, так что вы можете установить его во время выполнения задачи и вызвать из этапов рабочего процесса.
Использование Copilot CLI в рабочем процессе Actions
Вы можете определить задание в рабочем GitHub Actions процессе, который: устанавливается Copilot CLI на Runner, аутентифицирует его, запускает в программном режиме и затем обрабатывает результаты. Программный режим предназначен для скриптов и автоматизации и позволяет передавать запрос неинтерактивно.
Рабочие процессы могут следовать следующему шаблону: 1. Триггер: Запускайте рабочий процесс по расписанию, в ответ на события репозитория или вручную. 1. Настройка: Проверьте код, настройте окружение. 1. Установка: Установка GitHub Copilot CLI на бегу. 1. Authenticate: Убедитесь, что у CLI есть необходимые разрешения для access репозитория и внесения изменений. 1. Запуск Copilot CLI: Вызовите Copilot CLI с подсказкой, описывающей задачу, которую хотите автоматизировать.
Пример рабочего процесса
Следующий рабочий процесс генерирует детали изменений, внесённых сегодня в стандартной ветке репозитория, и отображает эти данные в виде сводки для запуска рабочего процесса.
name: Daily summary
on:
workflow_dispatch:
# Run this workflow daily at 5:30pm UTC
schedule:
- cron: '30 17 * * *'
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
name: Daily summary
on:
workflow_dispatch:
# Run this workflow daily at 5:30pm UTC
schedule:
- cron: '30 17 * * *'
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
Следующие разделы объясняют каждую часть этого рабочего процесса.
Триггер
В этом примере рабочий процесс работает по ежедневному графику и также может запускаться вручную.
Триггер позволяет запускать рабочий процесс вручную со вкладки «Действия» вашего репозитория, что GitHubполезно при тестировании workflow_dispatch изменений в подсказке или конфигурации рабочего процесса.
Триггер запускает рабочий процесс автоматически в заданное время с использованием синтаксиса schedule Cron.
on:
# Allows manual triggering of this workflow
workflow_dispatch:
# Run this workflow daily at 11:55pm UTC
schedule:
- cron: '55 23 * * *'
on:
# Allows manual triggering of this workflow
workflow_dispatch:
# Run this workflow daily at 11:55pm UTC
schedule:
- cron: '55 23 * * *'
Setup
Настройте задание, чтобы Copilot CLI иметь доступ к своему репозиторию и запускайте на Actions runner. Это позволяет Copilot CLI анализировать контекст репозитория при формировании ежедневного сводки.
Блок определяет область действия, permissions предоставленную встроенному GITHUB_TOKEN. Поскольку этот рабочий процесс читает данные репозитория и печатает сводку в журналы, требуется contents: read.
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
Install
Установите Copilot CLI на Runner, чтобы ваш рабочий процесс мог вызвать его как команду. Вы можете установить GitHub Copilot CLI любой поддерживаемый способ установки. Полный список вариантов установки смотрите в разделе AUTOTITLE.
В этом примере рабочий процесс устанавливается GitHub Copilot CLI глобально с помощью npm.
- name: Set up Node.js environment uses: actions/setup-node@v4 - name: Install Copilot CLI run: npm install -g @github/copilot
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
Authenticate
Чтобы запускать Copilot CLI Actions runner, необходимо аутентифицировать GitHub пользовательский аккаунт с действующей Copilot лицензией.
**Шаг 1: Создайте personal access token (PAT) с разрешением «Copilot Requests»:**
-
Перейдите в свои личные настройки для создания fine-grained personal access token: github.com/settings/personal-access-tokens/new.
-
Создайте новый PAT с разрешением «Copilot Requests».
-
Скопируйте значение токена.
**Шаг 2: Храните PAT в секрете репозитория действий:** -
В вашем репозитории перейдите в раздел Настройки > Секреты и переменные > Действия и нажмите Новый секрет репозитория.
-
Дайте секрету имя, которое вы будете использовать в рабочем процессе. В этом примере мы используем
PERSONAL_ACCESS_TOKENназвание секрета. -
Вставьте значение токена в поле «Секрет» и нажмите « Добавить секрет».
Рабочий процесс устанавливает специальную переменную среды с значением секрета репозитория.
Copilot CLI поддерживает несколько специальных переменных среды для аутентификации. В этом примере рабочий процесс использует COPILOT_GITHUB_TOKEN, который специфичен и Copilot CLI позволяет устанавливать другие права доступа для Copilot , чем в других местах с встроенной GITHUB_TOKEN переменной среды.
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
Выполнить Copilot CLI
Используйте copilot -p PROMPT [OPTIONS] программный запуск CLI и выход из системы после завершения команды.
CLI печатает свой ответ на стандартный вывод, который записывается в журнал для запуска рабочего процесса Actions. Однако, чтобы облегчить доступ к деталям изменений, этот пример добавляет эту информацию в сводку для запуска рабочего процесса.
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
В этом примере после запроса CLI используются несколько вариантов:
-
`--allow-tool='shell(git:*)'` позволяет Copilot запускать команды Git для анализа истории репозитория. Это необходимо для получения краткого обзора последних изменений. -
`--allow-tool='write'` Copilot позволяет записывать сгенерированное резюме в файл на Runner. -
`--no-ask-user` предотвращает запрос CLI на ввод пользователя, что важно при работе в автоматизированном рабочем процессе, где нет пользователя, отвечающего на запросы дополнительных данных.
Дальнейшие действия
После того как вы убедитесь, что рабочий процесс генерирует сводку изменений, вы можете адаптировать тот же паттерн для других задач автоматизации. Начните с того, что измените заданный запрос на copilot -p PROMPT, затем решите, что вы хотите to do с результатом. Вы могли бы сделать, например, следующее:
- Создайте pull request для обновления файла журнала изменений в репозитории с изменениями за день.
- Отправьте сводку по электронной почте сопровождающим репозиторий.
Дополнительные материалы
-
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) -
[AUTOTITLE](/actions) -
[AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)