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 / keys.php (a243c79084edf752cbff0206c60bb45153bddcc2) (1,128B) (mode 100644) [raw]
<?php
$INC = "../inc";
require_once($INC . "/keys.inc.php");

@unlink("keys.sqlite");

$db = sql_open("sqlite:keys.sqlite");
if ($db === FALSE) {
	echo "Cannot create a database (" . sql_error() . ")!";
	exit(1);
}

// state table
$sql = "CREATE TABLE state (var TEXT PRIMARY KEY, value TEXT)";
$res = sql_query($db, $sql);
if ($res === FALSE) {
	echo "Cannot create state table!";
	exit(1);
}

// keys table
$sql = "CREATE TABLE keys (key_id INT PRIMARY KEY, itime INT, uid INT, key TEXT)";
$res = sql_query($db, $sql);
if ($res === FALSE) {
	echo "Cannot create keys table!";
	exit(1);
}

// insert a key
$uid = 1;
$key = "aaa'bbb'ccc";
$key_id = keys_add($db, $uid, $key);
if ($key_id === FALSE) {
	echo "Cannot add key!";
	exit(1);
}

// delete a key
$uid = 1;
$key = "aaa'bbb'ccc";
$r = keys_remove($db, $uid, $key_id);
if ($r === FALSE) {
	echo "Cannot remove key (" . keys_error() . ")!";
	exit(1);
}

// test key file generation
$r = keys_regen($db, "afile.txt");
if ($r === FALSE) {
	echo "Cannot regenerate keys (" . keys_error() . ")!";
	exit(1);
}
@unlink("afile.txt");

sql_close($db);

@unlink("keys.sqlite");

?>
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