GitHub Actions: qwen-code-action
Обзор
qwen-code-action — это GitHub Action, который интегрирует Qwen Code в ваш процесс разработки через Qwen Code CLI . Он выступает как в роли автономного агента для критически важных рутинных задач по написанию кода, так и в роли помощника по запросу, которому можно быстро делегировать работу.
Используйте его для ревью pull request в GitHub, сортировки issues, анализа и модификации кода, а также для многого другого, взаимодействуя с Qwen Code в диалоговом режиме (например, @qwencoder fix this issue) прямо в ваших GitHub-репозиториях.
Возможности
- Автоматизация: Запуск workflow на основе событий (например, создание issue) или по расписанию (например, nightly).
- Совместная работа по запросу: Запуск workflow в комментариях к issues и pull request путем упоминания Qwen Code CLI (например,
@qwencoder /review). - Расширяемость с помощью инструментов: Используйте возможности вызова инструментов моделей Qwen Code для взаимодействия с другими CLI, такими как GitHub CLI (
gh). - Настраиваемость: Используйте файл
QWEN.mdв вашем репозитории, чтобы предоставить специфичные для проекта инструкции и контекст для Qwen Code CLI.
Быстрый старт
Начните работу с Qwen Code CLI в вашем репозитории всего за несколько минут:
1. Получите Qwen API key
Получите ваш API key на платформе DashScope (AI-платформа Alibaba Cloud)
2. Добавьте его как GitHub Secret
Сохраните ваш API key как secret с именем QWEN_API_KEY в вашем репозитории:
- Перейдите в Settings > Secrets and variables > Actions вашего репозитория
- Нажмите New repository secret
- Name:
QWEN_API_KEY, Value: ваш API key
3. Обновите ваш .gitignore
Добавьте следующие записи в ваш файл .gitignore:
# qwen-code-cli settings
.qwen/
# GitHub App credentials
gha-creds-*.json4. Выберите workflow
У вас есть два варианта настройки workflow:
Вариант A: Использование команды setup (Рекомендуется)
-
Запустите Qwen Code CLI в вашем терминале:
qwen -
В Qwen Code CLI в вашем терминале введите:
/setup-github
Вариант B: Ручное копирование workflows
- Скопируйте готовые workflows из директории
examples/workflowsв директорию.github/workflowsвашего репозитория. Примечание: также необходимо скопировать workflowqwen-dispatch.yml, который запускает остальные workflows.
5. Попробуйте в действии
Ревью Pull Request:
- Откройте pull request в вашем репозитории и дождитесь автоматического ревью
- Оставьте комментарий
@qwencoder /reviewв существующем pull request, чтобы вручную запустить ревью
Сортировка Issues:
- Создайте issue и дождитесь автоматической сортировки
- Оставьте комментарий
@qwencoder /triageв существующих issues, чтобы вручную запустить сортировку
Общая AI-помощь:
- В любом issue или pull request упомяните
@qwencoderи напишите ваш запрос - Примеры:
@qwencoder explain this code change@qwencoder suggest improvements for this function@qwencoder help me debug this error@qwencoder write unit tests for this component
Workflows
Этот action предоставляет несколько готовых workflows для различных сценариев использования. Каждый workflow предназначен для копирования в директорию .github/workflows вашего репозитория и дальнейшей настройки по мере необходимости.
Qwen Code Dispatch
Этот workflow выступает в роли центрального диспетчера для Qwen Code CLI, направляя запросы в соответствующий workflow на основе события-триггера и команды, указанной в комментарии. Подробное руководство по настройке dispatch workflow см. в документации по Qwen Code Dispatch workflow.
Сортировка Issues
Этот action можно использовать для автоматической сортировки GitHub Issues или по расписанию. Пример работающей настройки сортировки issues см. в workflow для автоматической сортировки issues .
Ревью Pull Request
Этот action можно использовать для автоматического ревью pull request при их открытии. Подробное руководство по настройке системы ревью pull request см. в документации по GitHub PR Review workflow.
Qwen Code CLI Assistant
Этот тип action можно использовать для вызова универсального диалогового AI-ассистента Qwen Code в pull request и issues для выполнения широкого спектра задач. Подробное руководство по настройке универсального Qwen Code CLI workflow см. в документации по Qwen Code Assistant workflow.
Конфигурация
Inputs
-
qwen*api_key: *(Optional)_ API key для Qwen API. -
qwen*cli_version: *(Optional, default:latest)_ Версия устанавливаемого Qwen Code CLI. Может быть “latest”, “preview”, “nightly”, конкретный номер версии, git-ветка, тег или коммит. Дополнительную информацию см. в разделе Qwen Code CLI releases . -
qwen*debug: *(Optional)_ Включить логирование отладки и потоковую передачу вывода. -
qwen*model: *(Optional)_ Модель для использования с Qwen Code. -
prompt: (Optional, default:You are a helpful assistant.) Строка, передаваемая в--promptаргумент Qwen Code CLI. -
settings: (Optional) JSON-строка, записываемая в.qwen/settings.jsonдля настройки проектных параметров CLI. Подробнее см. в документации по файлам настроек . -
use*qwen_code_assist: *(Optional, default:false)_ Использовать ли Code Assist для доступа к моделям Qwen Code вместо стандартного Qwen Code API key. Дополнительную информацию см. в документации Qwen Code CLI . -
use*vertex_ai: *(Optional, default:false)_ Использовать ли Vertex AI для доступа к моделям Qwen Code вместо стандартного Qwen Code API key. Дополнительную информацию см. в документации Qwen Code CLI . -
extensions: (Optional) Список расширений Qwen Code CLI для установки. -
upload*artifacts: *(Optional, default:false)_ Загружать ли артефакты в github action. -
use*pnpm: *(Optional, default:false)_ Использовать ли pnpm вместо npm для установки qwen-code-cli. -
workflow*name: *(Optional, default:${{ github.workflow }})_ Имя GitHub workflow, используется для целей телеметрии.
Outputs
-
summary: Суммаризированный вывод от выполнения Qwen Code CLI. -
error: Вывод ошибок при выполнении Qwen Code CLI, если таковые имеются.
Переменные репозитория
Мы рекомендуем установить следующие значения как переменные репозитория, чтобы их можно было повторно использовать во всех workflows. В качестве альтернативы, вы можете задать их inline как входные параметры action в отдельных workflows или для переопределения значений на уровне репозитория.
| Имя | Описание | Тип | Обязательно | Когда обязательно |
|---|---|---|---|---|
DEBUG | Включает логирование отладки для Qwen Code CLI. | Переменная | Нет | Никогда |
QWEN_CLI_VERSION | Контролирует, какая версия Qwen Code CLI будет установлена. | Переменная | Нет | Фиксация версии CLI |
APP_ID | GitHub App ID для пользовательской аутентификации. | Переменная | Нет | Использование пользовательского GitHub App |
Чтобы добавить переменную репозитория:
- Перейдите в Settings > Secrets and variables > Actions > New variable вашего репозитория.
- Введите имя и значение переменной.
- Сохраните.
Подробнее о переменных репозитория см. в документации GitHub по переменным .
Secrets
Вы можете установить следующие секреты в вашем репозитории:
| Имя | Описание | Обязательно | Когда обязательно |
|---|---|---|---|
QWEN_API_KEY | Ваш Qwen API key из DashScope. | Да | Требуется для всех workflows, вызывающих Qwen. |
APP_PRIVATE_KEY | Приватный ключ для вашего GitHub App (формат PEM). | Нет | Использование пользовательского GitHub App. |
Чтобы добавить secret:
- Перейдите в Settings > Secrets and variables > Actions > New repository secret вашего репозитория.
- Введите имя и значение секрета.
- Сохраните.
Дополнительную информацию см. в официальной документации GitHub по созданию и использованию зашифрованных секретов .
Аутентификация
Этот action требует аутентификации в GitHub API и, опционально, в сервисах Qwen Code.
Аутентификация в GitHub
Вы можете аутентифицироваться в GitHub двумя способами:
- Стандартный
GITHUB_TOKEN: Для более простых сценариев action может использовать стандартныйGITHUB_TOKEN, предоставляемый workflow. - Пользовательский GitHub App (Рекомендуется): Для наиболее безопасной и гибкой аутентификации мы рекомендуем создать пользовательский GitHub App.
Подробные инструкции по настройке аутентификации как для Qwen, так и для GitHub см. в документации по аутентификации.
Расширения
Qwen Code CLI можно расширить дополнительным функционалом с помощью расширений. Эти расширения устанавливаются из исходного кода из их GitHub-репозиториев.
Подробные инструкции по настройке и конфигурации расширений см. в документации по расширениям.
Лучшие практики
Чтобы обеспечить безопасность, надежность и эффективность ваших автоматизированных workflows, мы настоятельно рекомендуем следовать нашим лучшим практикам. Эти рекомендации охватывают ключевые области, такие как безопасность репозитория, конфигурация workflow и мониторинг.
Ключевые рекомендации включают:
- Защита вашего репозитория: Настройка защиты веток и тегов, а также ограничение круга лиц, одобряющих pull request.
- Мониторинг и аудит: Регулярный просмотр логов action и включение OpenTelemetry для более глубокого анализа производительности и поведения.
Подробное руководство по защите вашего репозитория и workflows см. в нашей документации по лучшим практикам.
Кастомизация
Создайте файл QWEN.md в корне вашего репозитория, чтобы предоставить специфичный для проекта контекст и инструкции для Qwen Code CLI. Это полезно для определения соглашений по написанию кода, архитектурных паттернов или других правил, которым модель должна следовать в данном репозитории.
Участие в разработке
Будем рады вашему вкладу! Ознакомьтесь с руководством по участию в разработке Qwen Code CLI, чтобы узнать подробнее о том, как начать.