09

Redmine + Git 認証連携 設定後の落とし穴

最近プロジェクトではRedmineとGitを使用している。ウチの情報セキュリティポリシーの関係で他のプロジェクトの情報は基本見てはいけない事になっているため、リポジトリもプロジェクト毎の権限を割り振りたい。なので当然、Redmine上の所属プロジェクトに応じてGitのリポジトリも見える・見えないを制御したい。一応この設定はできるようになっていて、Httpの特定のパスのハンドラとしてGitのHttp backendを登録しておいて、このGitのHttp backend がRedmineのデータベースを直接覗いてアクセスを遮断したり許可したりするような作りになっているようだ。どうやってプロジェクトを判断するのか疑問に思っていたのだが、RedmineのプロジェクトIDとGitのレポジトリ名が同じかどうかで判断するようだ。これは設定ガイドにはちゃんと書かれているのだが、先日久しぶりにレポジトリを追加しようとした際に全く失念してしまっていて、3時間ほど無駄にした。

そして今日、hoge プロジェクトに対して既に存在していた hoge.git リポジトリとは別なソースツリーを作りたかったので hoge-sub.git というリポジトリを作ってみた(Redmineには一つのプロジェクトに対して複数のリポジトリを登録できる)のだが、やっぱりアクセスできなくて「じゃあGit使うと複数リポジトリ持てないの?」と思っていろいろやってみたけど結局ダメでRedmine側でサブプロジェクトを切ってそのプロジェクトIDをhoge-sub にした。分かってたけど一発で通った。これで2時間無駄にした。

hogeに対してhoge.gitはいいのにhobe-sub.gitはダメ。hoge.sub.gitならOKなのかな。と考えたがもうめんどくさいので試さない。