]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t5601-clone.sh
transfer doc: move fetch.credentialsInUrl to "transfer" config namespace
[thirdparty/git.git] / t / t5601-clone.sh
index 4a61f2c901ea3da6a37d04caca1f799ad9135783..e6a248bbdccd5025838a0fd3122d0590ed4ad3d7 100755 (executable)
@@ -71,6 +71,29 @@ test_expect_success 'clone respects GIT_WORK_TREE' '
 
 '
 
+test_expect_success 'clone warns or fails when using username:password' '
+       message="URL '\''https://username:<redacted>@localhost/'\'' uses plaintext credentials" &&
+       test_must_fail git -c transfer.credentialsInUrl=allow clone https://username:password@localhost attempt1 2>err &&
+       ! grep "$message" err &&
+
+       test_must_fail git -c transfer.credentialsInUrl=warn clone https://username:password@localhost attempt2 2>err &&
+       grep "warning: $message" err >warnings &&
+       test_line_count = 2 warnings &&
+
+       test_must_fail git -c transfer.credentialsInUrl=die clone https://username:password@localhost attempt3 2>err &&
+       grep "fatal: $message" err >warnings &&
+       test_line_count = 1 warnings &&
+
+       test_must_fail git -c transfer.credentialsInUrl=die clone https://username:@localhost attempt3 2>err &&
+       grep "fatal: $message" err >warnings &&
+       test_line_count = 1 warnings
+'
+
+test_expect_success 'clone does not detect username:password when it is https://username@domain:port/' '
+       test_must_fail git -c transfer.credentialsInUrl=warn clone https://username@localhost:8080 attempt3 2>err &&
+       ! grep "uses plaintext credentials" err
+'
+
 test_expect_success 'clone from hooks' '
 
        test_create_repo r0 &&