xaizek / rocketgit (License: AGPLv3+) (since 2018-12-09)
Light and fast Git hosting solution suitable to serve both as a hub or as a personal code storage with its tickets, pull requests, API and much more.
<root> / tests / export.php (a480d288f3d1b46ee65485cc27e33f7152d341fd) (1,277B) (mode 100644) [raw]
<?php
error_reporting(E_ALL | E_STRICT);
ini_set("track_errors", "On");

$test_normal = TRUE;

$INC = dirname(__FILE__) . "/../inc";
require_once(dirname(__FILE__) . "/config.php");
require_once($INC . "/init.inc.php");
require_once($INC . "/export.inc.php");
require_once("helpers.inc.php");

rg_log_set_file("export.log");

require_once("common.php");

$_testns = 'export';


$rg_scripts = "../";
$rg_theme = "default";

// This will trigger an e-mail
rg_test_create_user($db, $rg_ui);
rg_test_create_repo($db, $rg_ui, $repo);
rg_test_create_rights($db, $rg_ui, $repo, $right_extra);
rg_test_create_bug($db, $rg_ui, $repo, $bug_extra);
$key_id = rg_test_create_key($db, $rg_ui);

rg_log('');
rg_log('Exporting user info...');
$r = rg_export_user($db, $rg_ui['uid'],
	RG_EXPORT_REPOS | RG_EXPORT_BUGS | RG_EXPORT_KEYS
	| RG_EXPORT_RIGHTS | RG_EXPORT_PULLS,
	JSON_PRETTY_PRINT);
if ($r === FALSE) {
	rg_log('Cannot export user info: ' . rg_export_error() . '!');
	exit(1);
}
$r = file_put_contents('export.json', $r);
if ($r === FALSE) {
	rg_log('Cannot save json!');
	exit(1);
}

$a = rg_exec('cat export.json | json_verify', '', FALSE, FALSE, FALSE);
if ($a['ok'] !== 1) {
	rg_log_ml(print_r($a, TRUE));
	rg_log('Seems the JSON is not valid!');
	exit(1);
}

rg_log('OK');
?>
Hints

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