Pull to refresh

hGate – web врата в управление репозиториями Mercurial

Reading time3 min
Views4.2K

Краткая версия

Что предлагается: web интерфейс управления репозиториями и пользователями mercurial — hGate.
Кому полезно: тем, кто использует связку Mercurial+HgWebDir и создает репозитории или пользователей чаще, чем раз в пару месяцев.
Где скачать и как установить: bitbucket.org/shedar/hgate
Если Вам интересно, зачем это было делать, подробный перечень возможностей и что будет дальше — продолжаем.

Предыстория

В последнее время Mercurial прочно вошел в ту часть моей жизни, которая связана с программированием. Все рабочие проекты по умолчанию отправляются в систему контроля версий, личные, тестовые и экспериментальные – тоже, если они живут больше нескольких дней или имеют практическую ценность. Для доступа к репозиториям был настроен HgWebDir в связке с nginx.
Всё было бы хорошо, если бы не одно «но» – HgWebDir позволяет просматривать список репозиториев и изменений, но он не предназначен для управления репозиториями и пользователями. Для создания нового репозитория, для настройки прав доступа, создания пользователя или смены пароля приходилось заходить на сервер консолью и выполнять соответствующие действия.

В поисках готового решения

Опыт подсказывал, что если проблема существует не первый день, то кто-то её пытался решать. Впечатление наиболее завершенного из найденных производил скрипт phpHgAdmin. Но радость длилась недолго. Установив его на двух разных серверах, получил одинаковый результат. Основные проблемы:
— Группы и репозиории смешивались в странном порядке;
— Группы не открывались;
— Настройки репозиториев, созданных не им, редактировались с проблемами;
— Решающая проблема – проект не развивается, автор на связь выходит, но не более того.

Свое решение

Прикинув «за» и «против» доработок phpHgAdmin и создания своего решения, было решено создать своё. К счастью, нашлось еще два человека, готовых поучаствовать, которых заинтересовала идея. К несчастью, одного из них почти сразу засосала работа. Огромное спасибо Андрею (gavaec) за то, что взял на себя большую часть работы по проекту.

Технические особенности

Язык: python;
Фреймворк: django;
OS: Linux
Сайт: bitbucket.org/shedar/hgate

Функциональные возможности

— создание репозиториев
— управление пользователями (создание, удаление, смена пароля)
— создание, удаление, изменение групп репозиториев
— редактирование основных параметров файла настроек hgwebdir
— настройка прав доступа репозиториев
— редактирование основных параметров репозиториев
— просмотр прав доступа пользователя — показывает матрицу прав на различные репозитории

Как это выглядит

Главная:


Редактирование настроек репозитория:


Управление пользователями:


Известные недоработки

— Не поддерживается авторизация, ограничение доступа нужно делать средстваним web сервера
— поддерживается редактирование не всех параметров файлов настроек
— коллекции репозиториев должны задаваться через секцию paths, как рекомендуется в руководстве, секция collections на текущий момент не поддерживается.

План развития

Что планируется в ближайшем будущем, помимо причесывания и повышения надежности существующего кода:
— Контроль правильности всех настроек hGate для облегчения установки и поиска проблем
— Более полная поддержка параметров конфига
— Поддержка нескольких профилей. Когда на одном сервере крутится несколько независимых экземпляров mercurial, хочется, чтобы все они управлялись через hGate
— Собственная авторизация
— Полная поддержка групп с высокой вложенностью (вида /home/hg/demo/**)
— Локализация

Если у Вас есть пожелания и предложения – пишите. Для ошибок и проблем открыт багтрекер.
Tags:
Hubs:
+30
Comments5

Articles

Change theme settings