現時点では一種のハックですが、これを試してみてください。
nginx サイト構成を編集して、次の場所を追加/変更します
location ^~ /api/v3/internal/allowed {
proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://gitlab;}
location / {
auth_basic "Gitlab Restricted Access";
auth_basic_user_file /home/git/gitlab/htpasswd.users;
# serve static files from defined root folder;.
# @gitlab is a named location for the upstream fallback, see below
try_files $uri $uri/index.html $uri.html @gitlab;
}
@gitlab ロケーション ブロックはそのままにしておきます。
秘訣は、/api/v3/internal/allowd に認証をバイパスさせることです。git pull / push を実行するときにログを見ると、許可するかどうかにかかわらず、サーバーに対してリクエストが行われます。また、htpasswd を使用した標準の nginx 構成では、サーバーが必要な認証について認識していないため、その要求はブロックされます。
とにかく、より良い代替手段があるかどうかはわかりませんが(何も見つかりませんでした)、これは私にとってはうまくいくようです。