前回の続き。
- redmine,gitlabを相乗りさせて、nginxをフロントに置く
- redmine-oauth-providerでredmineユーザで認証を出来る仕組みを準備
- gitlab側はomniauth-redmineをインストールして、認証先にredmineを増やす
ここまで進めると、gitlabのログイン画面にredmine認証ボタンが出るようになり、 redmineでの利用許可後はgitlabに戻ってログインとユーザ作成が行われる……はずだった。

さて、ユーザ作成が行われない。
いろいろ調べた結果、影響元がだいたいこの辺にあった
- gitlabはユーザ作成後、gitリポジトリ作成などにはusernameを用いる
- username のフォーマットが「半角英数, '-', '_', '.'」で最後が.gitでないこと [gitlabソース1] [gitlabソース2]
- OmniAuth経由でユーザを作成する場合、oauthで取得したnicknameかメールアドレスのユーザ名が用いられる [gitlabソース3] [gitlabソース4]
- omniauth-redmineはnicknameにredmineユーザのメールアドレスを使う [omniauth-redmineソース]
プラグインを修正して対応。
https://github.com/attakei/omniauth-redmine ( 差分 )
多分プラグイン側に若干の柔軟性をもたせる形で修正すれば、やっていけるはず。 ただし、READMEの修正をまだしていないのでプルリクエストを出していない。 ※というか、出すのにビビって躊躇しているだけ
Comments