Международная, в основном русскоговорящая, команда разработчиков свободного программного обеспечения. Основное направление деятельности ALT Linux Team — проект Sisyphus.
Герой релиза — zoryn gitery manage: полноэкранный TUI для просмотра и администрирования ваших репозиториев на gitery, не выходя из терминала. Под капотом у него — целое семейство скриптуемых команд zoryn gitery, а ещё в этом релизе devenv научился включать фичи на лету, и task получил пачку исправлений.
zoryn gitery manage
Запустили — и весь ваш namespace на gitery как на ладони: список репозиториев с квотой, размером и датой последнего коммита, мгновенный поиск и сортировка. Каждый репозиторий раскрывается прямо здесь: ветки, теги и refs, журнал коммитов, просмотр коммита с диффами, дерево файлов — всё с клавиатуры, всё без клонирования.
Но главное — управление. Для каждого репозитория доступны: смена кодировки, ветка по умолчанию, repack, переименование, копирование clone URL и удаление. А для генеральной уборки — отметка репозиториев и массовое удаление одним махом. Деструктивные действия спрашивают подтверждение.
Можно заглянуть и в чужой namespace: Tab или p, вводите логин — и смотрите чужие репозитории в режиме read-only. Удобно перед мерджем или копированием.
Команды zoryn gitery
Под TUI лежит семейство команд для скриптов. Чтение — через HTTP API gitoskop: ls, find-package, log, commit, diff, show, refs, branches, tags, tree, cat — везде есть --json. Изменения — через SSH-команды сервера: quota, clone, charset, default-branch, init-db, repack, mv-db, rm-db, каждая спросит подтверждение, если не дать -y. log, diff --patch и show красятся и листаются, как настоящий git log в терминале (честно учитывается NO_COLOR). find-package добирает все совпадения постранично, а не только первые 50. Дополнение по TAB знает имена репозиториев, веток, тегов и неймспейсов. Настройка: [gitery] login и [gitoskop] url в ~/.zoryn.
Ещё в этом релизе
zoryn devenv --feature ID (он же -F, можно несколько раз) — разовое включение фичи devenv на один запуск, поверх конфига, без правки файлов. А zoryn devenv feature add ID... внедряет фичи прямо в работающий podman-контейнер, не пересоздавая его, — как devenv install для пакетов. Фичи с монтированиями вежливо отсылаются к -F.
submit --with по TAB подсказывает последний запомненный номер таски (#121).
Исправления
task rebuild --parallel: сборщики с одинаковой архитектурой дедуплицируются — по одному на архитектуру (#124).
task batch: подпакет, уже добавленный в таску, больше не считается ошибкой; существующая таска находится, даже если Name: в спеке отличается от имени конфига (например, php → php8.2).
up и spec add changelog: HTML-сущности в заголовках CVE из Mozilla-адвайзори декодируются — Copy & Paste больше не попадает в changelog спека. Спасибо Аджрату Махмутову (rauty@) за MR #125!
Спасибо всем, кто заводит ошибки и фичреквесты. Продолжайте
Gitoskop — лёгкий HTTP-сервис на Rust, отдающий содержимое десятков тысяч bare-репозиториев через простой JSON API. Современная замена gitweb: прямое чтение объектов с диска через gitoxide, без CGI и форков. Уже в проде на git.altlinux.org.
Скорость
~1 мс (p50) на горячих эндпоинтах, сотни запросов в секунду на одной машине.
Двухуровневый кэш в памяти: поиск и листинг мгновенны, свежие пуши видны сразу (инвалидация по mtime).
Read-only по построению — сервис не может изменить репозитории. Stateless, минимальная поверхность атаки.
Изоляция путей: канонизация и confinement каждого пути; симлинки за пределы корня отклоняются — включая objects/info/alternates и pack-файлы.
Строгая валидация revspec: блокируются :/text, @{...}, ~N — никаких неограниченных обходов истории.
Защита от DoS: лимиты на блобы (50 МиБ), деревья/диффы (50 000 записей), конкурентность и таймауты; размер объекта проверяется до распаковки — декомпрессионные бомбы не пройдут.
Безопасный /raw: всегда nosniff + Content-Disposition: attachment — недоверенные байты не выполнятся в браузере.
Спасибо всем участникам сообщества за новости!
Заходите в наш чат: https://t.me/ThisWeekInALT, присылайте новости в @ThisWeekInALT_bot и не забывайте ознакомиться с инструкцией по отправке новостей на странице О Нас.