나는 또한 여기에 내 질문을 게시하고 있습니다. 어쩌면 누구든지이 문제를 해결할 실용적인 방법을 가지고있을 것입니다 :나머지 api를 사용하여 gitlab 사용자의 신원 설정
현재 gitlab-ce에서 사용자를 자동으로 생성하고 기존 ssh 키를 추가 한 다음 다른 제공자로 ID를 변경하면 케이스 atlassian 군중. 내 요청에 { 'identities': [ { 'provider': 'crowd', 'external_uid': 'foobar' } ] }
을 추가하여 사용자 생성에 대한 게시물 요청을 할 때 설정하려고했지만 사용자가 올바르게 생성되는 동안 ID 설정이 무시됩니다. 요청은 실제로 사용자가 ID를 생성 것이 아니라, 다음과 같은 내가 말했듯이 http://localhost/api/v3/users
{
"email": "[email protected]",
"password": "aol123aol123",
"username": "foo.bar",
"name": "Foo Bar",
"identities": [
{
"provider": "crowd",
"extern_uid": "fbar"
}
]
}
에 전송됩니다. API를 통해 ID를 직접 설정하는 것, 즉 외부 시스템의 ID와 함께 제공되는 특정 ID를 설정하는 것은 구현되지 않은 것으로 보입니다. 이것이 내가 gitlab.com (https://gitlab.com/gitlab-org/gitlab-ce/issues/27693)에서 문제를 제기 한 이유입니다.
이 문제를 해결하기위한 대안을 찾고 있습니다. 다른 기술로 마이그레이션을 진행하고 있으며 먼저 사용자 관리를 자동화하고 싶습니다. 몇 가지가 있으므로 수동으로이 작업을 수행하는 것은 불가능합니다.
실제로 admin ui에서 사용자의 신원을 설정할 수 있습니다.
당신이 볼 수 있듯이utf8:✓
authenticity_token:47yRB038sLQQ7bBP4vYGdVcQzg/8js09h5mUkz5vNYSALAjRqIpAFjYube8VxUlEKChNcrjNmx7s0RW8tDWFqC==
identity[provider]:crowd
identity[extern_uid]:fbar
, 그렇지 않은 : 그것은
http://localhost/admin/users/foo.bar/identities
내용에 대한 POST 요청이 있음을 보여 주었다 만들기 버튼을 클릭하면 브라우저를 통해 검사하는 URL 인코딩입니다 API URL은 있지만 Ui. 나에게 알려지지 않은 것은 authenticity_token이다. 관리자의 개인 액세스 토큰이 아닙니다. 세션 토큰입니까?
기술 포인트에서 나는이 모든 것을하기 위해 파이썬 승/요청을 사용하고 있습니다.