git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2] t5551: mark half-auth no-op fetch test as v0-only

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Apr 6, 2019, 11:31 UTC
Message-ID
<20190406113113.GA219876@google.com>
In-Reply-To
<20190322190139.151189-1-jonathantanmy@google.com>
Hi,
Jonathan Tan wrote:
Show 13 quoted lines
> When using protocol v0, upload-pack over HTTP permits a "half-auth"
> configuration in which, at the web server layer, the info/refs path is
> not protected by authentication but the git-upload-pack path is, so that
> a user can perform fetches that do not download any objects without
> authentication, but still needs authentication to download objects.
>
> But protocol v2 does not support this, because both ref and pack are
> obtained from the git-upload-pack path.
>
> Mark the test verifying this behavior as protocol v0-only, with a
> description of what needs to be done to make v2 support this.
>
> Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Thanks for the analysis.  Makes sense.
Show 19 quoted lines
> --- a/t/t5551-http-fetch-smart.sh
> +++ b/t/t5551-http-fetch-smart.sh
> @@ -164,7 +164,17 @@ test_expect_success 'clone from auth-only-for-objects repository' '
>  
>  test_expect_success 'no-op half-auth fetch does not require a password' '
>  	set_askpass wrong &&
> -	git --git-dir=half-auth fetch &&
> +
> +	# NEEDSWORK: When using HTTP(S), protocol v0 supports a "half-auth"
> +	# configuration with authentication required only when downloading
> +	# objects and not refs, by having the HTTP server only require
> +	# authentication for the "git-upload-pack" path and not "info/refs".
> +	# This is not possible with protocol v2, since both objects and refs
> +	# are obtained from the "git-upload-pack" path. A solution to this is
> +	# to teach the server and client to be able to inline ls-refs requests
> +	# as an Extra Parameter (see pack-protocol.txt), so that "info/refs"
> +	# can serve refs, just like it does in protocol v0.
> +	GIT_TEST_PROTOCOL_VERSION=0 git --git-dir=half-auth fetch &&
>  	expect_askpass none

I suspect it's fine if protocol v2 never supports this. Can we change the NEEDSWORK comment to say that the protocol v2 spec should document the lack of support for half-auth?

With or without such a change,
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Thanks.
Previous: Jeff KingNext: Jonathan Tan
Message 11 of 12 in “t5551: delete auth-for-pack-but-not-refs test”
  1. t5551: delete auth-for-pack-but-not-refs testJonathan Tan, Mar 21, 2019
  2. Jeff KingMar 21, 2019
  3. Jeff KingMar 21, 2019
  4. Jonathan TanMar 21, 2019
  5. Jeff KingMar 21, 2019
  6. Jonathan TanMar 21, 2019
  7. Junio C HamanoMar 22, 2019
  8. Jonathan TanMar 22, 2019
  9. t5551: mark half-auth no-op fetch test as v0-onlyJonathan Tan, Mar 22, 2019
  10. Jeff KingMar 23, 2019
  11. Jonathan NiederApr 6, 2019
  12. Jonathan TanApr 8, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.