5.4.1 Использование российских ИИ:
Если коммиты, задачи, обсуждения ведутся преимущественно на русском языке, использование API YandexGPT/GigaChat для автогенерации changelog или черновиков release notes может дать более качественные и стилистически корректные результаты.
– Пример промпта для YandexGPT/GigaChat: «Проанализируй заголовки коммитов [список]. Сформируй краткий список изменений для CHANGELOG.md на русском, сгруппируй по „Новые возможности“ и „Исправления“.»
5.4.2 Использование глобальных ИИ:
Для задач, менее зависимых от языка (анализ структуры кода, следование сложным форматам), глобальные модели могут быть предпочтительнее.
5.4.3 Возможные шаги с использованием ИИ в CI/CD:
– Автогенерация Changelog: Скрипт в CI получает коммиты, отправляет заголовки в API ИИ, форматирует ответ, добавляет в CHANGELOG.md.
– Генерация черновика Release Notes: Аналогично, но с промптом для пользовательского описания изменений.
– Обновление документации: Автогенерация docstrings или обновление разделов справки на основе новых функций.
– Предварительный анализ кода: Использование ИИ-инструментов для выявления потенциальных проблем до ревью человеком.
– Комментирование Pull Request’ов: Автокомментарии с описанием изменений или результатами анализа.
5.4.4 Пример концептуального шага в GitHub Actions:
Цель: Показать идею вызова внешнего скрипта для генерации заметок к релизу.
YAML
#.github/workflows/generate_release_notes. yml
name: Generate Release Notes Draft
on:
release:
types: [published]
jobs:
generate:
runs-on: ubuntu-latest
steps:
– uses: actions/checkout@v4
with: {fetch-depth: 0}
# … шаги установки зависимостей…
– name: Get Commit Info (Conceptual)
id: commits
run: echo "::set-output name=messages::$ (git log …)» # Получаем коммиты
– name: Generate Notes via Script
env:
AI_API_KEY: $ {{secrets. YOUR_AI_API_KEY}}
COMMIT_MESSAGES: $ {{steps.commits.outputs.messages}}
# Главное – вызов вашего скрипта:
run: python ./scripts/generate_release_notes.py> draft.md
# … (опционально) шаг обновления релиза на GitHub…
Описание: Этот YAML показывает основную идею: шаги для получения кода (checkout), установки зависимостей, сбора коммитов и вызов вашего Python-скрипта (generate_release_notes.py), который и будет обращаться к API ИИ. Детали команд и дополнительных шагов (например, обновление релиза) опущены для максимальной краткости.