SSLを介してmercurialサーバーをセットアップしました。Apache 構成ファイルで、mysql データベースを使用して認証を設定しました。
誰でも資格情報なしでリポジトリからプルできるようにしたいのですが、プッシュ権は認証されたユーザーに制限してください。現在の方法では、プルとプッシュの両方で全員が認証されるか、誰も認証されません。
私のApache構成はこれです:
<Location /hg/repo>
AuthType Basic
AuthName "Repository Access"
AuthBasicAuthoritative Off
AuthUserFile /dev/null
AuthMySQL On
AuthMySQL_Authoritative On
AuthMySQL_Host localhost
AuthMySQL_DB repo
AuthMySQL_User repo
AuthMySQL_Password_Table users_auth_external
AuthMySQL_Group_Table users_auth_external
AuthMySQL_Username_Field username
AuthMySQL_Password_Field passwd
AuthMySQL_Group_Field groups
AuthMySQL_Encryption_Types SHA1Sum
Require group pink-image
<LimitExcept GET>
Require valid-user
</LimitExcept>
</Location>
hg は、LimitExcept スイッチに関係なく、ssl プルの認証も必要とします。
認証をリポジトリへのプッシュのみに制限する方法はありますか?
誰かが開発者である場合、https を介してコードをチェックアウトするため、単純な http アクセスでは不十分です。
一部の開発者は ssh ポートをファイアウォールで禁止しているため、SSH アクセスはできません。
解決策の 1 つは、hg が https 資格情報を記憶している場合です。
質問を読んでいただきありがとうございます。