<?php
// Some helper functions dealing with users/repos/bugs/etc.
/*
* Creating a user
*/
$_user_id = 1;
$_testns = 'main';
function rg_test_create_user($db, &$rg_ui)
{
global $_testns;
global $_user_id;
if (!is_array($rg_ui))
$rg_ui = array();
$username = $_testns . '-user-' . $_user_id . '<xss>';
$new = array();
$new['uid'] = 0;
$new['organization'] = 0;
$new['username'] = $username;
$new['realname'] = 'realname-' . $_user_id . '<xss>';
$new['email'] = 'email-' . $_user_id . '@embedromix.ro';
$new['is_admin'] = 0;
$new['rights'] = '';
$new['session_time'] = 3600;
$new['confirm_token'] = '';
$new['confirmed'] = 0;
$new['plan_id'] = 0;
$new['pass'] = 'pass-' . $_user_id;
$new['pass2'] = 'pass-' . $_user_id;
$_user_id++;
// Delete old user
$sql = 'DELETE FROM users WHERE username = \'' . $new['username'] . '\'';
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
rg_log("Cannot delete old user: " . rg_sql_error());
exit(1);
}
rg_sql_free_result($res);
rg_cache_unset('username_to_uid::' . $username);
$rg_ui = array_merge($new, $rg_ui);
$r = rg_user_edit($db, $rg_ui);
if ($r === FALSE) {
rg_log("Cannot create user (" . rg_user_error() . ")!");
exit(1);
}
$rg_ui['uid'] = $r;
// delete associated bugs
$sql = "SELECT * FROM repos WHERE uid = " . $rg_ui['uid'];
$res = rg_sql_query($db, $sql);
while (($row = rg_sql_fetch_array($res))) {
$_t = array('bug_labels', 'bug_notes', 'bug_search', 'bugs',
'merge_requests', 'watch_bug', 'watch_repo');
foreach ($_t as $_table) {
$sql = "DELETE FROM $_table WHERE repo_id = " . $row['repo_id'];
$res2 = rg_sql_query($db, $sql);
rg_sql_free_result($res2);
}
$sql = "DELETE FROM rights WHERE type = 'repo' AND obj_id = " . $row['repo_id'];
$res2 = rg_sql_query($db, $sql);
rg_sql_free_result($res2);
}
rg_sql_free_result($res);
// delete associated repos
$sql = "DELETE FROM repos WHERE uid = " . $rg_ui['uid'];
$res = rg_sql_query($db, $sql);
rg_sql_free_result($res);
// Delete associated keys
$sql = "DELETE FROM keys WHERE uid = " . $rg_ui['uid'];
$res = rg_sql_query($db, $sql);
rg_sql_free_result($res);
// delete given rights
$sql = "DELETE FROM rights WHERE uid = " . $rg_ui['uid'];
$res = rg_sql_query($db, $sql);
rg_sql_free_result($res);
return TRUE;
}
/*
* Creating a repo helper
* You can enforce a repo-id by setting extra['repo_id'].
*/
$_repo_id = 1;
function rg_test_create_repo($db, $rg_ui, &$extra)
{
global $_testns;
global $_repo_id;
if (!is_array($extra))
$extra = array();
$repo_id = isset($extra['repo_id']) ? $extra['repo_id'] : 0;
rg_log("Creating a repo");
$new = array();
$new['master'] = 0;
$new['name'] = $_testns . '-repo-' . $_repo_id . '<xss>';
$new['max_commit_size'] = 0;
$new['description'] = 'desc line1\ndesc line2' . '<xss>';
$new['git_dir_done'] = 0;
$new['public'] = 1;
$new['license'] = 'GPL <xss>';
$_repo_id++;
rg_log("Deleting repo " . $repo_id);
$sql = 'DELETE FROM repos WHERE repo_id = ' . $repo_id
. ' OR name = \'' . $new['name'] . '\'';
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
rg_log("Cannot delete old repo: " . rg_sql_error());
exit(1);
}
rg_sql_free_result($res);
$extra = array_merge($new, $extra);
$extra['repo_id'] = 0;
$r = rg_repo_edit($db, $rg_ui, $extra);
if ($r === FALSE) {
rg_log("Cannot insert a repo (" . rg_repo_error() . ")!");
exit(1);
}
if ($repo_id > 0) {
$sql = "UPDATE repos SET repo_id = $repo_id"
. " WHERE repo_id = " . $extra['repo_id'];
$res = rg_sql_query($db, $sql);
rg_sql_free_result($res);
$new['repo_id'] = $repo_id;
rg_cache_unset('repo_by_name::' . $rg_ui['uid']);
}
return TRUE;
}
?>
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master