Repository navigation
Home
Роман Зопиров edited this page Oct 29, 2026
·
3 revisions
OctoPublisher (octopublish) — универсальный высокопроизводительный движок автоматизации публикации приложений в магазины Google Play Store и Microsoft Store с встроенной поддержкой парадигмы Store as Code.
Движок разработан на платформе .NET 10 с учётом строгих требований к надежности пайплайнов непрерывной интеграции (CI/CD), нулевых внешних нативных зависимостей и удобного русскоязычного интерфейса в стандарте Microsoft Fluent 2.
-
Парадигма Store as Code:
- Полное версионирование текстовых метаданных, иконок, баннеров и скриншотов в репозитории Git (
packaging/). - Быстрая инициализация структуры (
octopublish init) со встроенной генерацией растровых PNG без сторонних библиотек. - Обратный импорт (
octopublish pull) — выгрузка реальных названий, описаний, иконок и скриншотов напрямую из опубликованных приложений магазинов. - Автоматическое добавление новых локалей (
octopublish add) с распознаванием коротких кодов (ru,en,fr,de,es,zhи др.). - Синхронизация описаний и графики со сторами напрямую (
octopublish sync) без пересборки бинарных файлов.
- Полное версионирование текстовых метаданных, иконок, баннеров и скриншотов в репозитории Git (
-
5-уровневый предполётный линтер (
octopublish test):- Проверка на незаполненные заглушки шаблонов (
[ШАБЛОН],example.com). - Проверка наличия и непустоты обязательных файлов (
title.txt,full_description.txt,icon.png). - Контроль жестких лимитов длины символов (Google Play
$\le 30$ знаков для названия, Microsoft Store$\le 256$ знаков). - Валидация точной геометрии изображений по заголовкам PNG/JPEG.
- Проверка валидности URL политики конфиденциальности.
- Проверка на незаполненные заглушки шаблонов (
-
Модуль Microsoft Store (
mstore):- Прямая интеграция с Partner Center Dev Center Ingestion REST API v1.0 и Display Catalog API.
- Автоматическая блочная загрузка пакетов MSIX в Azure Blob с вычислением SAS токенов.
- Автоматическая упаковка
.msixв контейнеры.zip, требуемые Partner Center. - Механизм Safe Skip при обнаружении активной сертификации (защита от ошибки HTTP 409 Conflict).
- Очистка зависших черновиков (
delete-draft).
-
Модуль Google Play Store (
playstore):- Публикация AAB бандлов и APK через Google Play Developer API v3.
- Назначение релизов по трекам:
internal,alpha,beta,production. - Защита Safe-Merge: предотвращает случайное стирание названий приложений при обновлении листингов.
-
Инженерная эстетика Fluent 2:
- Информативные ANSI-теги (
[ИНФО],[УСПЕХ],[ВНИМАНИЕ],[ОШИБКА],[ШАГ]) без эмодзи. - Отображение интерактивных прогресс-баров и расчет скорости загрузки.
- 114 автоматизированных модульных тестов с 100% прохождением.
- Информативные ANSI-теги (
# Установка как глобальный инструмент .NET CLI
dotnet tool install -g OctoPublisher
# Проверка версии
octopublish --version# Создание структуры каталогов packaging/ (русский язык по умолчанию)
octopublish init all --dir packaging
# Проверка статуса готовности файлов и графики
octopublish list --dir packaging
# Предполётная проверка линтером
octopublish test --dir packaging- Быстрый старт и установка — способы установки, автономные бинарники и настройка окружения.
-
Справочник команд CLI — подробное описание всех параметров и флагов
octopublish. - Руководство Store as Code — спецификация структуры каталогов, лимиты символов, требования к графике и линтер.
- Модуль Google Play Store — авторизация через сервисный аккаунт, треки релизов и параметры AAB.
- Модуль Microsoft Store — регистрация приложения в Azure AD, права Partner Center и публикация MSIX.
- Интеграция с GitHub Actions — готовые production-шаблоны пайплайнов CI/CD.
-
Конфигурация и профили — иерархия настроек,
.octopublish.jsonи защищенное хранилище~/.octo/mstore.json. - Архитектура движка — внутреннее устройство модулей, генератор PNG без зависимостей и Safe-Merge.
- Устранение неполадок и FAQ — диагностика распространенных ошибок и коды возврата.
-
Начало работы
-
Store as Code
-
Модули магазинов
-
CI/CD и конфигурация
-
Внутреннее устройство