-
Release v1.11.1
Stablereleased this
2026-07-17 18:39:53 +07:00 | 0 commits to main since this releaseИсправления
- Исправлена регрессия от #62:
verify_ssl: true(значение по умолчанию) снова проверяет TLS по системному хранилищу сертификатов ОС — теперь черезtruststore, на любой платформе. Корпоративные CA, установленные в ОС, работают без дополнительной настройки (после 1.11.0 проверка шла по бандлу certifi и падала сCERTIFICATE_VERIFY_FAILED). - Поведение
verify_ssl: falseи пути к собственному CA-bundle не изменилось.
Прочее
- Новая runtime-зависимость:
truststore>=0.10(устанавливается автоматически при обновлении пакета). - Тесты изолированы от глобальной подмены
ssl(autouse-фикстура).
Документация
docs/CONFIG.mdи README: семантикаverify_ssl: trueописана как проверка по системному хранилищу CA.
Downloads
- Исправлена регрессия от #62:
-
Release v1.11.0
Stablereleased this
2026-07-17 17:57:31 +07:00 | 1 commits to main since this releaseНовое
- Перевод статусов задач переопределяется через YAML-конфиг (
report.status_translation) — больше не нужно править код под свой воркфлоу Redmine (#65). - CI на Gitea Actions: тесты и линтеры на Python 3.10–3.13 при каждом push и PR (#53).
Исправления
- Безопасность:
REDMINE_URLобязан использовать HTTPS (#54); API-ключ маскируется в текстах ошибок (#55); предупреждение при отключённой проверке TLS (#57); единая семантикаverify_sslво всех источниках конфигурации (#62). --user-login— точное совпадение логина вместо первого найденного по подстроке (#60).--dateпринимает диапазоны с точностью до секунды (YYYY-MM-DDTHH:MM:SS--...) (#59).- Период по умолчанию — текущий месяц (с 1-го числа по сегодня), устаревший хардкод убран (#56).
- Дедупликация time entries: даты нормализуются к aware UTC (#58).
- Предупреждение при потере данных в отчёте (обрезанные активности) (#61).
- Восстановлено чтение
.envпри--init-config(#64). - Убраны побочные эффекты при импорте пакета (#64), удалён мёртвый код (#63).
- Требуется Python >= 3.10 (#51); объявлены прямые зависимости
requestsиurllib3(#66); тестовая инфраструктура приведена в порядок (#67); конфигурация black/isort (#52).
Документация
- README переписан: краткий обзор, быстрый старт, без воды.
- Новое руководство пользователя
docs/USER_GUIDE.md: сценарии, справочник флагов, устранение неполадок. docs/CONFIG.mdсинхронизирован с кодом: исправлены неточности (dedup-логика,--init-config,--config-path, TLS), добавлено оглавление.
Downloads
- Перевод статусов задач переопределяется через YAML-конфиг (
-
Release v1.10.1 Stable
released this
2026-07-10 16:54:29 +07:00 | 26 commits to main since this releaseИсправления
- Если
period.default_toв YAML-конфиге илиDEFAULT_TO_DATEв env не заданы, конец периода по умолчанию теперь сегодняшняя дата, а не устаревшее фиксированное значение или конец месяца (#50). - Используется единый вызов
date.today()для консистентности начала и конца fallback-периода.
Документация
docs/CONFIG.md: описано, чтоdefault_toнеобязательно и по умолчанию — сегодня.README.md: обновлены примеры YAML,.envи таблица переменных окружения.
Внутреннее
- Патч-версия поднята до 1.10.1.
Downloads
- Если
-
Release v1.10.0 Stable
released this
2026-07-10 15:30:28 +07:00 | 31 commits to main since this releaseНовое
- Автоотправка отчётов по электронной почте через SMTP с помощью флага
--send. - HTML-тело письма при автоматической отправке по почте (#48).
- Параметр
report.no_timeв YAML-конфиге для отключения временного блока в автоматических режимах (#49).
Исправления
- Обработка ошибок при сохранении периода в конфиг; удалён дублирующий
_MockIssue.
Документация
- Обновлены
README.md,docs/CONFIG.mdиpyproject.tomlдля функции--send.
Внутреннее
- Применено форматирование ruff ко всем исходным файлам.
Downloads
- Автоотправка отчётов по электронной почте через SMTP с помощью флага
-
Release v1.9.0 Stable
released this
2026-07-07 11:12:45 +07:00 | 37 commits to main since this releaseredmine-reporter v1.9.0
Дата: 07.07.2026
Новое
-
YAML-конфиг — полная настройка через
~/.config/redmine-reporter/config.yml. Секции:redmine(url, api_key, author, verify_ssl),period(precision, default_from/to, dynamic, last_used),output(dir, шаблон имени, default_format),email(настройки SMTP). Подстановка${VAR}для секретов.--init-configгенерирует файл из.env. Автозагрузка при каждом запуске. Права:0600на файл,0700на директорию. -
Умное разрешение
--output(#43) — путь к файлу формируется с учётом YAML-конфига:--output xlsx(только формат) → путь по шаблону:output.dir+output.filename--output /путь/report(без расширения) → дописываетсяoutput.default_format--output /путь/report.csv(с расширением) → как есть- Шаблон поддерживает
{author},{from},{to},{date}(DD_MM_YYYY),{ext}
-
Точность периода до секунды (#47) —
period.precision: datetime. При наличииlast_usedв конфиге повторный запуск отсекает time entries, у которых оба поляcreated_onиupdated_onраньше cutoff (AND-логика). Исключает дублирование при нескольких запусках в течение дня. -
--commit(#44) — автосохранение отчёта в файл и фиксация периода вperiod.last_used.from/toYAML-конфига:- С
--output→ по явному пути - Без
--output→ по шаблону из конфига period.dynamic: true→ следующий запуск сам вычисляет новый период: полный месяц → следующий месяц, произвольный диапазон → та же длина со сдвигомperiod.dynamic: false→ перезаписываетdefault_from/default_toзакоммиченными значениями- При
period.precision: datetime→ сохраняет время с точностью до секунды
- С
-
Плейсхолдер
{date}— в шаблоне имени файла раскрывается вDD_MM_YYYYот конечной даты
Изменения
verify_ssl: trueв YAML теперь даёт путь к CA-бандлу (/etc/ssl/certs/ca-certificates.crt), а не Python-буль- YAML-конфиг подгружается автоматически при каждом запуске CLI
--outputбез расширения больше не ошибка — дописываетсяdefault_formatfetch_issues_with_spent_time()пропускает задачи без часов после дедупликации_resolve_str()вAppConfigподдерживает вложенные ключи YAML (до 3 уровней)- В mypy добавлены в игнор:
yaml,requests,urllib3.*
Внутреннее
- +56 тестов (всего 218). Новые классы:
TestResolveOutputPath,TestSavePeriodToConfig,TestCommitFlag,TestComputeNextPeriod,TestDefaultDateRangeWithLastUsed,TestConfigPeriodPrecision - Новые функции:
resolve_output_path(),save_period_to_config(),compute_next_period(),_parse_datetime(),_compute_dedup_cutoff() - Новый датакласс:
PeriodLastUsed - Новые поля
AppConfig:period_last_used_from/to,output_dir/filename/default_format - Новые методы
Config:get_period_precision(),get_last_used_from/to(),get_output_dir/filename/default_format()
Обновление с v1.8.1
# Сгенерировать YAML-конфиг из .env redmine-reporter --init-config # Настроить точность и автосдвиг периода vim ~/.config/redmine-reporter/config.yml # period.precision: datetime # period.dynamic: true # Ежедневный/ежемесячный рабочий процесс: redmine-reporter --commit # сгенерировать + сохранить + запомнить период redmine-reporter --commit --output odt # выбрать формат redmine-reporter # просто в консольDownloads
-
-
Release v1.8.0 Stable
released this
2026-06-29 16:44:57 +07:00 | 48 commits to main since this releaseГруппировка по типу активити по ключу
by-activityDownloads
-
Release v1.7.0 Stable
released this
2026-06-29 15:15:30 +07:00 | 49 commits to main since this releaseredmine-reporter 1.7.0
Новое
- Отчёты по другим пользователям. Добавлены флаги:
--user-id 42— по числовому ID Redmine;--user-login ivanov— по логину;--user-name "Иванов И.И."— по полному имени.
По умолчанию, как раньше, используется текущий пользователь.
- Разрешение имени/логина в ID происходит автоматически. Если найдено несколько пользователей с одинаковым именем — CLI сообщает об ошибке и просит использовать
--user-id.
Исправления
- Обработка
ResourceNotFoundErrorдобавлена в механизм читаемых сообщений об ошибках.
Документация
- README дополнен примерами использования
--user-id,--user-login,--user-name.
Задачи
Downloads
- Отчёты по другим пользователям. Добавлены флаги:
-
Release v1.6.1 Stable
released this
2026-06-29 14:41:43 +07:00 | 52 commits to main since this releaseredmine-reporter 1.6.1
Новое
- Excel-отчёт (.xlsx) стал полноценным:
- объединение ячеек по проекту и версии;
- числовая колонка
Hoursдля суммирования; - человекочитаемая колонка
Spent Time; - итоги по версиям, проектам и общий итог;
- автоширина колонок, закреплённая шапка, автофильтр, границы и заливка.
- Флаг
--no-timeтеперь корректно работает для всех файловых форматов: колонки времени остаются пустыми, итоговые строки не добавляются.
Исправления
ODTFormatterи другие файловые форматтеры больше не падают при передаче--no-time..gitignoreдополнен масками для локальных отчётов (report.*,rep.*,*.html).
Задачи
Downloads
- Excel-отчёт (.xlsx) стал полноценным:
-
Release v1.6.0 Stable
released this
2026-06-29 12:38:54 +07:00 | 53 commits to main since this releaseПримечания к релизу redmine-reporter v1.6.0
Общее
Релиз с улучшениями CLI, новыми форматами экспорта, надёжностью клиента
Redmine и исправлениями багов в форматтерах.Новые возможности
- Улучшения CLI:
- Динамический период отчёта по умолчанию: текущий месяц, если даты не заданы в
.env(#17) - Новые форматы экспорта:
Улучшения
- Клиент Redmine:
- Конфигурация:
Исправления багов
- Форматтеры:
- CSV экспортирует полные project/version в каждой строке и содержит UTF-8 BOM для Excel (#26, #31)
- HTML-экспорт содержит
<meta charset="utf-8">(#27) - ODT: при пустом авторе заголовок не содержит мусорных символов (#30)
- ODT: корректно используются covered-cell при объединении ячеек (#13)
- Markdown и HTML корректно экранируют спецсимволы
- CLI:
- Перевод статусов:
- «Wait Release» теперь корректно отображается как «Закрыто» (#29)
Внутренние доработки
- Общая логика группировки по проекту/версии вынесена в
report_builder(#19) - Добавлен
__init__.pyвredmine_reporter/formatters/, пакет стал обычным (#16) - Исправлен недетерминированный порядок задач внутри одной группы (#33)
- Убрана избыточная двойная сортировка и мёртвый код (#32, #34, #37)
- Ленивый импорт ODT больше не ломается при отсутствии
odfpy(#25)
Закрытые задачи
#37, #36, #35, #34, #33, #32, #31, #30, #29, #28, #27, #26, #25, #24, #23,
#22, #21, #20, #19, #18, #17, #16, #15Downloads
-
Release v1.5.0 Stable
released this
2026-05-22 17:49:29 +07:00 | 64 commits to main since this release- Поддержка API-KEY
Downloads