Вы можете запустить GitHub Copilot CLI в рабочем процессе GitHub Actions, чтобы автоматизировать задачи на базе ИИ в рамках вашего процесса CI/CD. Например, вы можете резюмировать недавнюю активность репозиториев, генерировать отчёты или создавать project контент. GitHub Copilot CLI работает на Actions runner как любой другой инструмент CLI, так что вы можете установить его во время выполнения задачи и вызвать из этапов рабочего процесса.
Использование Второй пилот CLI в рабочем процессе Actions
Вы можете определить задание в рабочем процессе GitHub Actions, который: устанавливает Второй пилот CLI на Runner, аутентифицирует его, запускает в программном режиме и затем обрабатывает результаты. Программный режим предназначен для скриптов и автоматизации и позволяет передавать запрос неинтерактивно.
Рабочие процессы могут следовать следующему шаблону: 1. Триггер: Запускайте рабочий процесс по расписанию, в ответ на события репозитория или вручную. 1. Настройка: Проверьте код, настройте окружение. 1. Установка: Установить GitHub Copilot CLI на Runner. 1. Authenticate: Убедитесь, что у CLI есть необходимые разрешения для access репозитория и внесения изменений. 1. Запустите Второй пилот CLI: Вызовите Второй пилот 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"
Следующие разделы объясняют каждую часть этого рабочего процесса.
Триггер
В этом примере рабочий процесс работает по ежедневному графику и также может запускаться вручную.
Триггер workflow_dispatch позволяет запускать рабочий процесс вручную со вкладки «Действия » вашего репозитория на GitHub, что полезно при тестировании изменений в вашем запросе или конфигурации рабочего процесса.
Триггер запускает рабочий процесс автоматически в заданное время с использованием синтаксиса 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
Настройте задание так, чтобы Второй пилот CLI мог получить доступ к вашему репозиторию и запускаться на Actions runner. Это позволяет Второй пилот 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
Установите Второй пилот 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
Чтобы позволить Второй пилот 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название секрета. -
Вставьте значение токена в поле «Секрет» и нажмите « Добавить секрет».
Рабочий процесс устанавливает специальную переменную среды с значением секрета репозитория. Второй пилот CLI поддерживает несколько специальных переменных среды для аутентификации. В этом примере рабочий процесс использует COPILOT_GITHUB_TOKEN, который специфичен для Второй пилот 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 }}
Run Второй пилот 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 записывать сгенерированное резюме в файл на раннере. -
`--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)