Идентификация пользователя по его фиксации с использованием токена личного доступа в GitLab

#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')