Плагин для серверов Майнкрафт, который безопасно переносит скрипты Denizen из Git-репозитория на сервер. Он получает выбранную ветку, проверяет файлы .dsc, заменяет рабочую папку скриптов и возвращает предыдущую копию, если Denizen сообщает об ошибке.
Возможности
- Работает с публичными и приватными репозиториями GitHub по HTTPS.
- Позволяет завести несколько профилей с отдельными репозиторием, веткой, исходной и целевой папками. Например,
productionможет обновлять активные скрипты, аstaging— сохранять проверенную тестовую копию без её запуска. - Проверяет
.dscвстроенным парсером установленного Denizen до замены файлов. - Хранит Git-копии в
plugins/Gitizen/repositories, поэтому в активной папкеplugins/Denizen/scriptsнет служебной папки.git. - Показывает состояние локального и удалённого коммита, историю развёртываний, список скриптов и последние коммиты.
- Не допускает одновременное выполнение двух операций для одного профиля и замечает ручные изменения активной папки.
- Поддерживает откат по номеру предыдущего развёртывания или хешу коммита.
Команды
/gitizen sync [profile]— проверить и развернуть ветку профиля./gitizen status [profile]— показать состояние репозитория и развёртывания./gitizen rollback [profile] <номер|hash>— вернуть прежнее развёртывание или указанный коммит./gitizen logs [profile] [count]— показать последние коммиты./gitizen list [profile]— вывести найденные файлы.dsc./gitizen profiles— показать настроенные профили./gitizen setup <profile> <url> [branch]— создать или изменить профиль./gitizen reload— перечитатьconfig.yml.
Если профиль не указан, используется значение default-profile. Число 1 в команде отката означает развёртывание перед текущим.
Права
gitizen.sync— развёртывание скриптов.gitizen.status— просмотр состояния и профилей.gitizen.rollback— откат развёртывания.gitizen.logs— просмотр коммитов.gitizen.list— просмотр списка скриптов.gitizen.admin— настройка профилей, перезагрузка конфига и все остальные права плагина.
Настройка
Основные параметры профиля находятся в plugins/Gitizen/config.yml:
repo-url— адрес Git-репозитория;branch— загружаемая ветка;repository-subdirectory— папка со скриптами внутри репозитория;target-directory— папка назначения относительноplugins/Denizen;reload-denizen— загружать ли скрипты в работающий Denizen после замены;token-env— имя переменной окружения с токеном доступа.
Для активного каталога обычно используют target-directory: "scripts" и reload-denizen: true. При reload-denizen: false файлы копируются и проверяются, но не подключаются к работающему Denizen. Путь назначения не может выйти за пределы plugins/Denizen.
В разделе security можно включить обязательный HTTPS и ограничить разрешённые Git-серверы через allowed-hosts. Параметры require-dsc-files, max-script-size-kb и max-history задают проверку наличия скриптов, предельный размер файла и глубину истории откатов. История хранится в plugins/Gitizen/state.yml.
Требования
Нужны сервер на Paper, Java и установленный Denizen: без Denizen плагин не загружается. Серверу требуется исходящий HTTPS-доступ к GitHub; для закрытого репозитория нужен токен с доступом на чтение содержимого нужного репозитория.
