mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-06 23:26:39 +00:00
online::clone::credentials support default credentials
This commit is contained in:
parent
f96e7e6c94
commit
adcdeb36b0
@ -226,9 +226,28 @@ void test_online_clone__cred_callback_failure_return_code_is_tunnelled(void)
|
|||||||
cl_git_fail_with(git_clone(&g_repo, remote_url, "./foo", &g_options), -1);
|
cl_git_fail_with(git_clone(&g_repo, remote_url, "./foo", &g_options), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cred_default(
|
||||||
|
git_cred **cred,
|
||||||
|
const char *url,
|
||||||
|
const char *user_from_url,
|
||||||
|
unsigned int allowed_types,
|
||||||
|
void *payload)
|
||||||
|
{
|
||||||
|
GIT_UNUSED(url);
|
||||||
|
GIT_UNUSED(user_from_url);
|
||||||
|
GIT_UNUSED(payload);
|
||||||
|
|
||||||
|
if (!(allowed_types & GIT_CREDTYPE_DEFAULT))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return git_cred_default_new(cred);
|
||||||
|
}
|
||||||
|
|
||||||
void test_online_clone__credentials(void)
|
void test_online_clone__credentials(void)
|
||||||
{
|
{
|
||||||
/* Remote URL environment variable must be set. User and password are optional. */
|
/* Remote URL environment variable must be set.
|
||||||
|
* User and password are optional.
|
||||||
|
*/
|
||||||
const char *remote_url = cl_getenv("GITTEST_REMOTE_URL");
|
const char *remote_url = cl_getenv("GITTEST_REMOTE_URL");
|
||||||
git_cred_userpass_payload user_pass = {
|
git_cred_userpass_payload user_pass = {
|
||||||
cl_getenv("GITTEST_REMOTE_USER"),
|
cl_getenv("GITTEST_REMOTE_USER"),
|
||||||
@ -237,8 +256,12 @@ void test_online_clone__credentials(void)
|
|||||||
|
|
||||||
if (!remote_url) return;
|
if (!remote_url) return;
|
||||||
|
|
||||||
g_options.remote_callbacks.credentials = git_cred_userpass;
|
if (cl_getenv("GITTEST_REMOTE_DEFAULT")) {
|
||||||
g_options.remote_callbacks.payload = &user_pass;
|
g_options.remote_callbacks.credentials = cred_default;
|
||||||
|
} else {
|
||||||
|
g_options.remote_callbacks.credentials = git_cred_userpass;
|
||||||
|
g_options.remote_callbacks.payload = &user_pass;
|
||||||
|
}
|
||||||
|
|
||||||
cl_git_pass(git_clone(&g_repo, remote_url, "./foo", &g_options));
|
cl_git_pass(git_clone(&g_repo, remote_url, "./foo", &g_options));
|
||||||
git_repository_free(g_repo); g_repo = NULL;
|
git_repository_free(g_repo); g_repo = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user