Git Smart HTTP - аутентификация пользователя для определенных репозиториев

Мне было интересно, как вы проходите аутентификацию между git-репозиториями для smart http.

Например, у меня есть все мои репозитории в /repos/Однако я хотел бы назначить "Джона Доу" только двум из них. Другой я хочу, чтобы "Джейн Доу" доступ; однако я не хочу, чтобы кто-либо из них имел доступ к хранилищам друг друга.

Междупрочим: у меня есть аутентификация пользователя, работающая в общем с http auth, это разделяющая привилегия. для определенных пользователей это то, что я действительно после.

2 ответа

Решение

Я говорил с разработчиком https://github.com/sitaramc/gitolite и он указал мне в направлении:

короче, тебе нужен "мини-гитолит"?

(1) настроить так, как написано в моей справочной странице, но вместо использования
gl-auth-command используйте ваш скрипт

(2) ваш скрипт должен делать / иметь дело со следующим:

 - это должно взять аутентифицированное имя пользователя от $REMOTE_USER
 - он должен посмотреть на PATH_INFO, REQUEST_URI и т. д., чтобы выяснить,
к какому репо он хочет получить доступ и хочет ли он читать или писать
(вы можете увидеть код в simulate_ssh_connection() в моем коде для
тот)
 - затем используйте любую логику, которую вы хотите решить, следует ли вам разрешить или
отклонить запрос

Если вы разрешаете это, вы должны "выполнить" оригинальный git-http-backend.

Используя http в качестве транспорта, вы можете использовать WebDAV. Официальное руководство находится здесь, но в интернете много уроков.

Другие вопросы по тегам