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.