2017-02-06 3 views
0

Я также размещаю свой вопрос здесь. Возможно, у кого-то есть прагматичный способ решить эту проблему:Настройка идентификатора пользователя 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, чтобы сделать все это.

ответ

0

Для этого вам нужна поддержка sudo, предлагаемая API gitlab-ce.