#git #authentication #gitlab #access-token
#git #аутентификация #gitlab #access-token
Вопрос:
Как я могу определить, кто попал в репозиторий GitLab, когда была выполнена фиксация с использованием токена личного доступа? Я заинтересован в аудите коммитов, выполненных в общем репозитории.
При использовании токена для отправки в репозиторий GitLab URL удаленного источника имеет следующую форму:
https://user:token@repo/path
Я заметил, что user
часть не имеет значения; токен принимается независимо.
Я не особенно придирчив к использованию токена личного доступа — какие еще существуют альтернативы для аутентификации пользователей без использования их пароля GitLab?
Мой сценарий включает веб-интерфейс для фиксации в репозитории GitLab; находясь в другой системе, я бы предпочел не требовать, чтобы пользователи доверяли веб-интерфейсу свой пароль GitLab. OAuth кажется излишним для этого, но если это единственный вариант, пусть будет так.
Ответ №1:
Я решил эту проблему, используя GitLab API для проверки имени пользователя.
В этом конкретном случае я настроил веб-интерфейс для получения имени пользователя из токена доступа с помощью GitLab API, а затем использовал его как часть сообщения о фиксации.
Конечный результат:
Код Python:
import gitlab
gl = gitlab.Gitlab('https://host', private_token=token)
gl.auth()
gl.user.attributes.get('username')