Merge branch 'bc/http-push-auth-netrc-fix'

The netrc support (via the cURL library) for the HTTP transport has
been re-enabled.

* bc/http-push-auth-netrc-fix:
  http: allow using netrc for WebDAV-based HTTP protocol
This commit is contained in:
Junio C Hamano
2025-02-27 15:23:01 -08:00
2 changed files with 11 additions and 2 deletions

3
http.c
View File

@ -598,8 +598,7 @@ static void init_curl_http_auth(CURL *result)
{
if ((!http_auth.username || !*http_auth.username) &&
(!http_auth.credential || !*http_auth.credential)) {
int empty_auth = curl_empty_auth_enabled();
if ((empty_auth != -1 && !always_auth_proactively()) || empty_auth == 1) {
if (!always_auth_proactively() && curl_empty_auth_enabled()) {
curl_easy_setopt(result, CURLOPT_USERPWD, ":");
return;
} else if (!always_auth_proactively()) {

View File

@ -201,4 +201,14 @@ test_expect_failure 'push to password-protected repository (no user in URL)' '
test_cmp expect actual
'
test_expect_success 'push to password-protected repository (netrc)' '
test_commit pw-netrc &&
echo "default login user@host password pass@host" >"$HOME/.netrc" &&
GIT_TRACE=1 GIT_CURL_VERBOSE=1 git push "$HTTPD_URL/auth/dumb/test_repo.git" HEAD &&
git rev-parse --verify HEAD >expect &&
git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/test_repo.git" \
rev-parse --verify HEAD >actual &&
test_cmp expect actual
'
test_done