Как получить пользовательские атрибуты пользователей GitLab с помощью API
Попытка показать настраиваемые атрибуты (в основном поле местоположения) для некоторых общедоступных пользователей GitLab. но это не работает
Я использую библиотеку python gitlab для получения списка. и я могу распечатать имена пользователей, идентификаторы и URL. Теперь я хочу получить доступ к настраиваемым атрибутам, таким как местоположение, но у меня это не работает! Я пытаюсь сделать следующее из браузера, что он не работает (пример: username = gitlab)
https://gitlab.com/api/v4/users?username=gitlab&private_token=mytoken
# this brings the users list
import gitlab
gl = gitlab.Gitlab('http://gitlab.com', private_token='mytoken')
users = gl.users.list()
for u in users:
print (u.name)
print (u.id)
print (u.web_url)
2 ответа
Обратите внимание на этот отрывок из официальной документации API:
Каждый вызов API для настраиваемых атрибутов должен быть аутентифицирован как администратор. Настраиваемые атрибуты в настоящее время доступны для пользователей, групп и проектов, которые в этой документации будут именоваться "ресурсами".
Похоже, что учетная запись, которую вы используете для аутентификации, должна иметь права администратора для запрашиваемого экземпляра GitLab. Проверьте, верно ли это для вашей конкретной учетной записи, а также для вашего экземпляра GitLab.
Вы можете найти документацию по API python-gitlab для настраиваемых атрибутов пользователя в разделе настраиваемых атрибутов. Также существует официальная документация API для этой функции.
В вашем примере действительный вызов будет выглядеть так:
import gitlab
gl = gitlab.Gitlab('http://gitlab.com', private_token='mytoken')
users = gl.users.list()
for user in users:
attrs = user.customattributes.get('location')