Redmine + gitlab 連携で躓いた(その2)

2014-10-23(Thu) / Tech

Tags: gitlab, redmine, omniauth, ruby

前回の続き。

  • 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