configatron とか rails とか
むむ。中身を精査しはじめておるのですが、例えば app/models/repository.rb から見てみたり。例えば以下な記述があります。
after_create :save_config, :add_to_git#, :initialize_repository after_update :update_config, :add_to_git after_destroy :remove_from_config, :remove_from_git
それぞれ、private なメソドとして定義されております。
save_config メソドが以下な定義。
def save_config logger.info("Adding new repository #{self.name} to config") config = GitosisConfig.new config.lock do config.parse config.add_section(self.name) config.add_param_to_section(self.name, 'writable', self.name) config.save end end
GitosisConfig の抽象化具合が素晴しい。gitosis.conf の初期状態が以下なカンジ。
[gitosis] [group gitosis-admin] writable = gitosis-admin members = hoge@fuga
ええと、GitosisConfig#parse で既存のナニを読み込むのか。ただ、上記実装だと members なナニが追加されんがのう、と思っていたらそのあたりは
has_many :public_keys, :through => :permissions has_many :permissions, :dependent => :destroy
な permissions で云々してるのか。でもこのあたりの処理って controller に記述が無いなぁ。上記の記述によれば Permission なレコードは自動生成なのかな。昔購入した参考書に has_many :through についての解説があるけど 1.x の頃のアレだからなぁ。
とりあえず M-x find-grep してみた限りでは追加とか削除な記述は無いので、とは言え member に追加、とかどこかで明示的にヤッてるはずなんだけどどこだろ。
動作確認してみた
結果として直前エントリな不具合が出たのですが初期状態に戻してリトライしてみます。ちなみに post-update に実行権限が云々という情報があったのですが、
lrwxrwxrwx 1 gitosis gitosis 61 2011-10-26 08:55 post-update -> /usr/share/pyshared/gitosis/templates/admin/hooks/post-update
とのことで実体は以下な形でした。
-rwxr-xr-x 1 root root 69 2010-06-09 02:20 post-update
直前エントリで書いたのですが、ssh 経由したリポジトリへのアクセスが read access denied な状態なのですが何が悪いのか分からん。
Ubuntu には gitolite なパケジもあるのでこっち使おうかな。
結局
Gitolite-Manager というソレを発見しましたので、こちらにスイッチな方向です。疲労困憊。これから別件で API な資料とにらめっこ予定らしいorz
Rails いろいろ弄れると思ったんですが駄目ですか。
今日は
色々な意味で不毛な一日だったのでこれから何点かメシのおかずの作り置きを製造するます。