Компания GitHub открыла исходный код одной из своих главных вспомогательных утилит для работы с системой управления конфигурациями Puppet — octocatalog-diff.
Авторы octocatalog-diff описывают его как «инструмент, позволяющий разработчикам быть более эффективными при проверке изменений в манифестах Puppet». Основное предназначение продукта — просмотр изменений в каталогах Puppet для двух разных веток (или версий): стабильной и разрабатываемой. Обычно утилиту запускают разработчики прямо на своих компьютерах или в окружениях, используемых в непрерывной интеграции (CI). Получать каталоги, которые необходимо сравнить, утилита может несколькими способами: компиляцией каталога через командную строку с помощью Puppet-агента на вашей машине (именно так утилита используется в GitHub); по сети из PuppetDB; по сети через API, опрашивая Puppet Master / PuppetServer (поддерживаются версии Puppet 3.x и 4.x); из JSON-файла.
«В GitHub мы управляем тысячами узлов с кодовой базой Puppet, насчитывающей более 500 тысяч строк кода от более 200 авторов. Мы запускаем octocatalog-diff ежедневно тысячи раз, что является частью нашего тестирования в рамках Continuous Integration, а разработчики запускают его на своих рабочих станциях, когда работают с кодом», — говорится в README проекта.
Исходный код octocatalog-diff написан на Ruby и доступен, конечно же, на GitHub под свободной лицензией MIT.