<?php
$gitlab_source = [
'url' => 'https://gitlab.example.com/api/v4',
'token' => 'abc'
];
$gitlab_target = [
'url' => 'https://newgitlab.example.net/api/v4',
'token' => 'cde'
];
$expire = $time + 3;
$status = 200;
$pid = pcntl_fork();
if ($pid == -1) {
} else if ($pid) {
$url = $gitlab_source['url'] . '/users';
echo 'Migrating users from ' . $url . PHP_EOL;
'Content-Type: text/json',
'Private-Token: ' . $gitlab_source['token']
]);
if(!$data) {
return false;
}
foreach ($source_users as $source_user) {
$url = $gitlab_target['url'] . '/users?username=' . $source_user->username;
echo 'Check existance of ' . $source_user->name . ' using URL: ' . $url . "\t\t\t";
'Content-Type: text/json',
'Private-Token: ' . $gitlab_target['token']
]);
if ( count($exists) > 0 ) {
echo '[SKIPPED]' . PHP_EOL;
} else {
if (strpos($source_user->email, 'netzbewegung') !== false) {
echo '[IGNORED]' . PHP_EOL;
} else {
// Create the user
echo '[CREATING]' . ' ';
curl_setopt($ch, CURLOPT_URL
, $gitlab_target['url'] . '/users');
'Private-Token: ' . $gitlab_target['token']
]);
'name' => $gitlab_source->name,
'reset_password' => true,
'username' => $gitlab_source->username,
'email' => $gitlab_source->email,
'can_create_group' => false
])
);
echo '[DONE]'. PHP_EOL;
}
}
}
$url = $gitlab_source['url'] . '/projects';
echo 'Migrating projects from ' . $url . PHP_EOL;
'Content-Type: text/json',
'Private-Token: ' . $gitlab_source['token']
]);
if(!$data) {
return false;
}
foreach ($source_projects as $source_project) {
$url = $gitlab_target['url'] . '/projects?search=' . $source_project->path;
echo 'Check existance of ' . $source_project->name . ' using URL: ' . $url . "\t\t\t";
'Content-Type: text/json',
'Private-Token: ' . $gitlab_target['token']
]);
if ( count($exists) > 0 ) {
echo '[SKIPPED]' . PHP_EOL;
} else {
// TODO
echo '[CREATE] ' . PHP_EOL;
}
}
pcntl_wait($status);
} else {
}
return false;
}