Я также размещаю свой вопрос здесь. Возможно, у кого-то есть прагматичный способ решить эту проблему:Настройка идентификатора пользователя gitlab с отдыхом api
В настоящее время я возился с автоматическим созданием пользователей в gitlab-ce, добавляя к ним существующие ssh-ключи, а затем меняя свою личность на другого провайдера, в моем дело толпа. Я попытался установить его при выполнении почтового запроса при создании пользователя, добавив в мой запрос { 'identities': [ { 'provider': 'crowd', 'external_uid': 'foobar' } ] }
, но при правильном создании пользователя параметр идентификации игнорируется. Запрос на самом деле выглядит следующим образом и направляется против http://localhost/api/v3/users
{
"email": "[email protected]",
"password": "aol123aol123",
"username": "foo.bar",
"name": "Foo Bar",
"identities": [
{
"provider": "crowd",
"extern_uid": "fbar"
}
]
}
Как я уже говорил, пользователь будет создан, но не личность. Непосредственная установка идентификатора через API, то есть установка определенного удостоверения личности вместе с идентификатором во внешней системе, похоже, не реализована. Вот почему я подал вопрос на gitlab.com (https://gitlab.com/gitlab-org/gitlab-ce/issues/27693).
Я ищу альтернативу, чтобы исправить это. Я работаю над переходом от разных технологий, и я хочу сначала автоматизировать процесс управления. Поскольку их несколько, это невозможно выполнить вручную.
На самом деле, можно установить личность пользователя в admin ui. Осматривая его через браузер при нажатии на кнопку создания показал, что запрос POST против
http://localhost/admin/users/foo.bar/identities
содержание является URL-закодированы:
utf8:✓
authenticity_token:47yRB038sLQQ7bBP4vYGdVcQzg/8js09h5mUkz5vNYSALAjRqIpAFjYube8VxUlEKChNcrjNmx7s0RW8tDWFqC==
identity[provider]:crowd
identity[extern_uid]:fbar
Как вы можете видеть, это не URL-адрес API, но ui. То, что мне неизвестно, это аутентичность. Это не частный токен доступа администратора. Это токен сеанса?
Из точки технологии я использую python w/requests, чтобы сделать все это.