Автоматическая генерация структурированных release notes из истории Git-мержей с интеграцией в Jira.
Поддерживает произвольный префикс задач (например, WEBDEV, AGRO, MOBILE) и корректно обрабатывает ветки с
суффиксами (-v2, -review и т.д.).
pip install -r requirements.txtИспользуется официальная библиотека
jira.
- В Jira: Profile → Security → API tokens → создайте токен.
- Создайте файл
.env:
JIRA_URL=https://your-domain.atlassian.net
JIRA_API_TOKEN=ваш_токенСоздайте файл merges.txt с merge-коммитами, например:
Merge branch 'feature/WEBDEV-25' into 'develop'
Merge branch 'bugfix/WEBDEV-63-v2' into 'develop'
Merge branch 'mod/WEBDEV-65-review' into 'develop'
💡 Совет: используйте вспомогательный скрипт extract_webdev_merges.py (см. ниже) для автоматического извлечения.
python release_notes.py \
--release-version "Q3.3" \
--develop-version "1.3.0" \
--prefix "WEBDEV"--release-date- опционален (по умолчанию текущая дата).- Результат сохраняется в
release_notes.mdи выводится в терминал.
Скрипт автоматически группирует задачи по префиксу ветки:
| Ветка | Группа в release notes |
|---|---|
feature/... |
Функциональность (feature) |
mod/, refactor/ |
Доработки / Модификации (mod, ...) |
bugfix/, fix/, hotfix/, bug/ |
Багфиксы (bugfix, fix, ...) |
Задачи вида WEBDEV-123-v2, WEBDEV-123-review → считаются дублями и сводятся к WEBDEV-123.
Можно задавать параметры:
- Через CLI:
--release-version,--develop-version,--prefix - Через переменные окружения:
RELEASE_VERSION,DEVELOP_VERSION,PREFIX - Интерактивно - если ни один способ не использован
Пример .env с дополнительными настройками:
JIRA_URL=https://company.atlassian.net
JIRA_API_TOKEN=abc123...
RELEASE_VERSION=Q3.3
DEVELOP_VERSION=1.3.0
PREFIX=WEBDEVГенерируется файл release_notes.md вида:
### Release Notes
Release Version: Q3.3
Develop Version: 1.3.0
Дата релиза: 10.11.2025
### Основные изменения:
- **Функциональность (`feature`):**
+ Реализовать экспорт отчётов (задача WEBDEV-25)[Done]
+ Добавить фильтр по дате (задача WEBDEV-23)[In Review]
- **Багфиксы (`bugfix`, `fix`, `hotfix`, `bug`):**
+ Исправить при загрузке (задача WEBDEV-63)[Done]
#release #backend #patchВ скобках после задачи отображается статус из Jira (например,
Done,In Progress).
- Python 3.7+
- Доступ к Jira Cloud (или Server с включённым Basic Auth + API token)
- Git-репозиторий с merge-коммитами вида
Merge branch 'тип/ПРЕФИКС-123'
.
├── release_notes.py # основной скрипт
├── extract_webdev_merges.py # (опционально) утилита для парсинга git log
├── merges.txt # входной файл с merge-коммитами
├── release_notes.md # результат
├── .env # секреты и настройки
└── .gitignore
- Используйте
extract_webdev_merges.py, чтобы не копировать мержи вручную. - Для CI/CD: задавайте все параметры через переменные окружения.
- Префикс задач (
--prefix) позволяет использовать скрипт в разных проектах (не толькоWEBDEV).
✨ Автоматизируйте подготовку релизов - меньше рутины, больше уверенности!