Subject: Re: Credential helpers are no longer invoked in case of having sub-folder parts in a repository URL. Since 2.26.1 version

From: "brian m. carlson" <[email-masked]>
Date: Wed, 22 Apr 2020 01:09:43 +0000

On 2020-04-21 at 22:58:37, Jeff King wrote:
> On Wed, Apr 22, 2020 at 01:31:46AM +0300, Ilya Tretyakov wrote:
> 
> > Credential helpers are no longer invoked in case of having sub-folder
> > parts in a repository URL.
> > 
> > For example, if we have a "/my-proj/" part in the repository URL.
> > The following configuration doesn't invoke a credential helper script
> > in 2.26.1 version of Git but invokes in 2.24.1.2.
> > 
> > [credential "https://git.exaple.com/my-proj/my-repo.git"]
> >     helper = !'/c/some-path/bash-git-credential-helper/git-cred.sh'
> > provide  repo_b
> 
> This is unrelated to the recent helper fixes in v2.26.x. Here's a simple
> reproduction:
> 
>   url=https://git.example.com/my-proj/my-repo.git
>   echo url=$url |
>   GIT_TERMINAL_PROMPT=0 \
>   ./git \
>     -c credential.helper= \
>     -c credential.$url.helper='!echo username=foo; echo password=bar;:' \
>     credential fill
> 
> which should print a filled credential (with "foo/bar"), but will fail
> with recent versions. It bisects to brian's 46fd7b3900 (credential:
> allow wildcard patterns when matching config, 2020-02-20).

Yeah, I can reproduce this.  It looks like what's happening is that
we're percent-encoding the slash in the paths as %2f, which of course
isn't going to match in the urlmatch code.  We probably need to tell the
percent encoding function not to encode slashes in this case.

I'm testing a patch now and hope to have it on the list a little later
this evening.  Thanks for reporting and bisecting, and sorry for the
breakage.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204