@@ -1852,6 +1852,26 @@ test_expect_success 'fetch warns or fails when using username:password' '
test_line_count = 1 warnings
'
+test_expect_success CURL 'fetch warns or fails when using username:password in config' '
+ message="URL '\''https://username:<redacted>@localhost/'\'' uses plaintext credentials" &&
+
+ test_when_finished "rm -rf repo" &&
+ git init repo &&
+ test_commit -C repo A &&
+ git -C repo remote add pwd-url https://username:password@localhost &&
+ test_must_fail git -C repo -c transfer.credentialsInUrl=allow fetch pwd-url 2>err &&
+ ! grep "$message" err &&
+
+ test_must_fail git -C repo -c transfer.credentialsInUrl=warn fetch pwd-url 2>err &&
+ grep "warning: $message" err >warnings &&
+ test_line_count = 3 warnings &&
+
+ git -C repo remote set-url --push pwd-url https://username:password@localhost &&
+ git -C repo remote set-url pwd-url https://localhost &&
+
+ test_must_fail git -C repo -c transfer.credentialsInUrl=warn fetch pwd-url 2>err &&
+ ! grep "fatal: $message" err
+'
test_expect_success 'push warns or fails when using username:password' '
message="URL '\''https://username:<redacted>@localhost/'\'' uses plaintext credentials" &&
@@ -1867,4 +1887,25 @@ test_expect_success 'push warns or fails when using username:password' '
test_line_count = 1 warnings
'
+test_expect_success CURL 'push warns or fails when using username:password in config' '
+ message="URL '\''https://username:<redacted>@localhost/'\'' uses plaintext credentials" &&
+
+ test_when_finished "rm -rf repo" &&
+ git init repo &&
+ test_commit -C repo A &&
+ git -C repo remote add pwd-url https://username:password@localhost &&
+ test_must_fail git -C repo -c transfer.credentialsInUrl=allow push pwd-url HEAD:refs/heads/branch 2>err &&
+ ! grep "$message" err &&
+
+ test_must_fail git -C repo -c transfer.credentialsInUrl=warn push pwd-url HEAD:refs/heads/branch 2>err &&
+ grep "warning: $message" err >warnings &&
+ test_line_count = 2 warnings &&
+
+ git -C repo remote set-url --push pwd-url https://username:password@localhost &&
+ git -C repo remote set-url pwd-url https://localhost &&
+
+ test_must_fail git -C repo -c transfer.credentialsInUrl=warn push pwd-url HEAD:refs/heads/branch 2>err &&
+ ! grep "warning: $message" err
+'
+
test_done
Add tests that were missing from 6dcbdc0d661 (remote: create fetch.credentialsInUrl config, 2022-06-06), we want to test how we handle cases where the config comes from a file, and that we handle "pushURL" correctly. Currently the "pushURL" case isn't handled at all, i.e. URLs aren't warned about in "remote.*pushurl" , only for "remote.*.url". Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- t/t5516-fetch-push.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)