From: Junio C Hamano <gitster@pobox.com>
To: Ashlesh Gawande <git@ashlesh.me>
Cc: git@vger.kernel.org, sandals@crustytoothpaste.net
Subject: Re: [PATCH v3] t5550: add netrc tests for http 401/403
Date: Thu, 05 Feb 2026 21:05:51 -0800 [thread overview]
Message-ID: <xmqqms1mihqo.fsf@gitster.g> (raw)
In-Reply-To: <20260107074724.13165-1-git@ashlesh.me> (Ashlesh Gawande's message of "Wed, 7 Jan 2026 13:17:24 +0530")
Ashlesh Gawande <git@ashlesh.me> writes:
> git allows using .netrc file to supply credentials for HTTP auth.
> Three test cases are added in this patch to provide missing coverage
> when cloning over HTTP using .netrc file:
>
> - First test case checks that the git clone is successful when credentials
> are provided via .netrc file
> - Second test case checks that the git clone fails when the .netrc file
> provides invalid credentials. The HTTP server is expected to return
> 401 Unauthorized in such a case. The test checks that the user is
> provided with a prompt for username/password on 401 to provide
> the valid ones.
> - Third test case checks that the git clone fails when the .netrc file
> provides credentials that are valid but do not have permission for
> this user. For example one may have multiple tokens in GitHub
> and uses the one which was not authorized for cloning this repo.
> In such a case the HTTP server returns 403 Forbidden.
> For this test, the apache.conf is modified to return a 403
> on finding a forbidden-user. No prompt for username/password is
> expected after the 403 (unlike 401). This is because prompting may wipe
> out existing credentials or conflict with custom credential helpers.
Nicely summarised. So we say 401 when we do not know you, while we
say 403 when we know you and do not want you to be accessing the
resource. We test for both.
Just out of curiosity, do we test for these codes with other
credential helpers or is this only relevant for .netrc users?
> +test_expect_success 'using credentials from netrc to clone successfully' '
> + test_when_finished clear_netrc &&
> + set_askpass wrong &&
> + set_netrc 127.0.0.1 user@host pass@host &&
> + git clone "$HTTPD_URL/auth/dumb/repo.git" clone-auth-netrc &&
> + expect_askpass none
> +'
> +
> +test_expect_success 'netrc unauthorized credentials (prompt after 401)' '
> + test_when_finished clear_netrc &&
> + set_askpass wrong &&
> + set_netrc 127.0.0.1 user@host pass@wrong &&
> + test_must_fail git clone "$HTTPD_URL/auth/dumb/repo.git" clone-auth-netrc-401 &&
> + expect_askpass both wrong
> +'
> +
> +test_expect_success 'netrc authorized but forbidden credentials (fail on 403)' '
> + test_when_finished clear_netrc &&
> + set_askpass wrong &&
> + set_netrc 127.0.0.1 forbidden-user@host pass@host &&
> + test_must_fail git clone "$HTTPD_URL/auth/dumb/repo.git" clone-auth-netrc-403 2>err &&
> + expect_askpass none &&
> + grep "The requested URL returned error: 403" err
> +'
> +
> test_expect_success 'http auth can use user/pass in URL' '
> set_askpass wrong &&
> git clone "$HTTPD_URL_USER_PASS/auth/dumb/repo.git" clone-auth-none &&
next prev parent reply other threads:[~2026-02-06 5:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-06 9:34 [PATCH] t5550: add netrc tests for http 401/403 Ashlesh Gawande
2026-01-06 10:20 ` Junio C Hamano
2026-01-06 11:47 ` Ashlesh Gawande
2026-01-06 11:40 ` [PATCH v2] " Ashlesh Gawande
2026-01-07 0:32 ` Junio C Hamano
2026-01-07 7:47 ` [PATCH v3] " Ashlesh Gawande
2026-01-31 12:33 ` Ashlesh Gawande
2026-02-06 5:05 ` Junio C Hamano [this message]
2026-02-06 9:38 ` Jeff King
2026-02-06 15:25 ` Ashlesh Gawande
2026-02-06 15:53 ` Ashlesh Gawande
2026-02-06 20:44 ` Jeff King
2026-02-06 17:39 ` Junio C Hamano
2026-02-06 20:53 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqms1mihqo.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@ashlesh.me \
--cc=git@vger.kernel.org \
--cc=sandals@crustytoothpaste.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox