Skip to content

polyerter/release_notes_generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Release Notes Generator

Автоматическая генерация структурированных release notes из истории Git-мержей с интеграцией в Jira.
Поддерживает произвольный префикс задач (например, WEBDEV, AGRO, MOBILE) и корректно обрабатывает ветки с суффиксами (-v2, -review и т.д.).


🚀 Быстрый старт

1. Установка зависимостей

pip install -r requirements.txt

Используется официальная библиотека jira.

2. Настройка Jira API

  1. В Jira: Profile → Security → API tokens → создайте токен.
  2. Создайте файл .env:
JIRA_URL=https://your-domain.atlassian.net
JIRA_API_TOKEN=ваш_токен

3. Подготовка списка мержей

Создайте файл 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 (см. ниже) для автоматического извлечения.

4. Генерация release notes

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.


🧩 Конфигурация через аргументы или .env

Можно задавать параметры:

  • Через 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).

Автоматизируйте подготовку релизов - меньше рутины, больше уверенности!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages