List of commits:
Subject Hash Author Date (UTC)
Change caps for some error message; no code changes. aab9ce336362beda61a4470cbd63ccc06778eeb1 Catalin(ux) M. BOIE 2017-02-24 21:48:13
Some clients, for exampple JGit sends the request gzipped. Deal with it. Thanks Gabi for the report! ea9023af24a172724ec22313c8c0c15cc88f90df Catalin(ux) M. BOIE 2017-02-24 19:47:29
Switch to quotes to be able to use commas; small corrections ab27969287d666d0fb526f7b24b04f65ab7d54f7 Catalin(ux) M. BOIE 2017-02-14 18:28:13
Added more info to comparison and added baloons (Stig suggestion) 07c13312204980b85229acf7f0ab1e3a66aa6677 Catalin(ux) M. BOIE 2017-02-13 18:31:41
Comparison updated based on Stig's help! Thanks! d45c87235c003153b0579d9d875b62a0f6e0f209 Catalin(ux) M. BOIE 2017-02-13 17:54:00
Corrected a ORDER before WHERE affecting the listing of the users in admin section ee889bb3e9fb175af625cc5dab26c079fe6a6108 Catalin(ux) M. BOIE 2017-01-31 18:08:47
Bump version to v0.65 23209e409cae8a83b33b53b3cb3109a63be7bd8c Catalin(ux) M. BOIE 2017-01-30 18:52:26
Updates SELinux policy file fa9d4acd0c6ee730ee45c3e3ab57b55665e74666 Catalin(ux) M. BOIE 2017-01-30 18:51:52
Added credits for TLS setup about perfect forward secrecy 63ff4cf11961421d6f187d2597354d12eff9a810 Catalin(ux) M. BOIE 2017-01-30 18:51:31
Make more clear the text about Enterprise Edition 20a621f3de637975d93cbb260213c2d833a0acab Catalin(ux) M. BOIE 2017-01-30 18:50:50
TODO updates 29e7ddcea2ed6add27a13dfef09c8660d4b3520e Catalin(ux) M. BOIE 2017-01-30 18:49:28
Use IdentitiesOnly when setup SSH config for RocketGit fbd5d71c0341f9187cfd677d2d620749d09c61d6 Catalin(ux) M. BOIE 2017-01-30 18:49:10
Fixed push by HTTP; fixing some tests af00ea421d6eec2877cab0c37f9c492fff3860ec Catalin(ux) M. BOIE 2017-01-30 18:48:19
If user is suspended or deleted, show an error c308a9b435c9e5baa39ac3529c794df227ab9196 Catalin(ux) M. BOIE 2017-01-06 07:12:32
Allow users to delete their account 2a2338aca850737f16febc056c1d248daf935736 Catalin(ux) M. BOIE 2016-12-30 12:49:48
Improved TLS cyphers list for better security 00f1ad9bffc47d0cd786e6caa6f9777fae27b2ff Catalin(ux) M. BOIE 2016-12-30 12:47:54
Corrected the api key mail 3ac431ae8e880ceebc18507383771b23ce5d9b6a Catalin(ux) M. BOIE 2016-12-08 04:20:30
Big Amazon fixes f185636cf44652a2da9779ab21979807b91cf48f Catalin(ux) M. BOIE 2016-12-07 20:38:54
Typos, some additions for hints, TODO a0b3ff70ddcdfa28770b6467b03332b70cf38067 Catalin(ux) M. BOIE 2016-12-07 20:37:47
events.php missed apikeys include e6370414e0bef923fb5d1f639b8a7738fb8d1641 Catalin(ux) M. BOIE 2016-12-07 20:34:05
Commit aab9ce336362beda61a4470cbd63ccc06778eeb1 - Change caps for some error message; no code changes.
Author: Catalin(ux) M. BOIE
Author date (UTC): 2017-02-24 21:48
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2017-02-24 21:48
Parent(s): ea9023af24a172724ec22313c8c0c15cc88f90df
Signer:
Signing key:
Signing status: N
Tree: 3c2db52d80cb13c409d1317bbe4879e322593bc4
File Lines added Lines deleted
inc/repo.inc.php 16 16
File inc/repo.inc.php changed (mode: 100644) (index 8f66464..d464841)
... ... function rg_repo_fetch_push_helper($db, $host, $ip, $login_ui, $prefix, $user,
2428 2428 $needed_rights = 'P|H'; $needed_rights = 'P|H';
2429 2429 $ret['push'] = 1; $ret['push'] = 1;
2430 2430 } else { } else {
2431 $ret['error'] = 'Unknown command';
2431 $ret['error'] = 'unknown command';
2432 2432 break; break;
2433 2433 } }
2434 2434
2435 2435 // Validity/security checks // Validity/security checks
2436 2436 // Load info about the owner // Load info about the owner
2437 2437 if (rg_user_ok($user) !== TRUE) { if (rg_user_ok($user) !== TRUE) {
2438 $ret['error'] = 'User is invalid (' . rg_user_error() . ')';
2438 $ret['error'] = 'user is invalid (' . rg_user_error() . ')';
2439 2439 break; break;
2440 2440 } }
2441 2441 $ret['owner_ui'] = rg_user_info($db, 0, $user, ''); $ret['owner_ui'] = rg_user_info($db, 0, $user, '');
2442 2442 if ($ret['owner_ui']['ok'] != 1) { if ($ret['owner_ui']['ok'] != 1) {
2443 $ret['error'] = 'Internal problems; try again later, please';
2443 $ret['error'] = 'internal problems; try again later, please';
2444 2444 break; break;
2445 2445 } }
2446 2446 if ($ret['owner_ui']['exists'] != 1) { if ($ret['owner_ui']['exists'] != 1) {
2447 $ret['error'] = 'User does not exists';
2447 $ret['error'] = 'user does not exists';
2448 2448 break; break;
2449 2449 } }
2450 2450
 
... ... function rg_repo_fetch_push_helper($db, $host, $ip, $login_ui, $prefix, $user,
2452 2452
2453 2453 // Loading info about the repository // Loading info about the repository
2454 2454 if (rg_repo_ok($repo) !== TRUE) { if (rg_repo_ok($repo) !== TRUE) {
2455 $ret['error'] = 'Repository is invalid ('
2455 $ret['error'] = 'repository is invalid ('
2456 2456 . rg_repo_error() . ')'; . rg_repo_error() . ')';
2457 2457 break; break;
2458 2458 } }
2459 2459 $ret['ri'] = rg_repo_info($db, 0, $ret['owner_ui']['uid'], $repo); $ret['ri'] = rg_repo_info($db, 0, $ret['owner_ui']['uid'], $repo);
2460 2460 if ($ret['ri']['ok'] != 1) { if ($ret['ri']['ok'] != 1) {
2461 $ret['error'] = 'Internal problems; try again later, please';
2461 $ret['error'] = 'internal problems; try again later, please';
2462 2462 break; break;
2463 2463 } }
2464 2464 if ($ret['ri']['exists'] != 1) { if ($ret['ri']['exists'] != 1) {
2465 $ret['error'] = 'Repository does not exists';
2465 $ret['error'] = 'repository does not exists';
2466 2466 break; break;
2467 2467 } }
2468 2468 if ($ret['ri']['deleted'] == 1) { if ($ret['ri']['deleted'] == 1) {
2469 $ret['error'] = 'Repository has been deleted';
2469 $ret['error'] = 'repository has been deleted';
2470 2470 break; break;
2471 2471 } }
2472 2472
2473 2473 $ls = rg_repo_lock_status($db, $ret['ri']['repo_id']); $ls = rg_repo_lock_status($db, $ret['ri']['repo_id']);
2474 2474 if ($ls['ok'] != 1) { if ($ls['ok'] != 1) {
2475 $ret['error'] = 'Could not get lock status: ' . rg_repo_error();
2475 $ret['error'] = 'could not get lock status: ' . rg_repo_error();
2476 2476 break; break;
2477 2477 } }
2478 2478 if (($ls['status'] == 1) && ($login_ui['uid'] != $ls['uid'])) { if (($ls['status'] == 1) && ($login_ui['uid'] != $ls['uid'])) {
 
... ... function rg_repo_fetch_push_helper($db, $host, $ip, $login_ui, $prefix, $user,
2481 2481 $_user = $_u['username']; $_user = $_u['username'];
2482 2482 else else
2483 2483 $_user = '?'; $_user = '?';
2484 $ret['error'] = 'Repository has been locked user ' . $_user
2485 . ' at ' . gmdate('Y-m-d H:i', $ls['itime']) . ' UTC.'
2486 . ' Reason: ' . $ls['reason'];
2484 $ret['error'] = 'repository has been locked user ' . $_user
2485 . ' at ' . gmdate('Y-m-d H:i', $ls['itime']) . ' UTC;'
2486 . ' reason: ' . $ls['reason'];
2487 2487 break; break;
2488 2488 } }
2489 2489
 
... ... function rg_repo_fetch_push_helper($db, $host, $ip, $login_ui, $prefix, $user,
2507 2507 $r = rg_rights_allow($db, $x); $r = rg_rights_allow($db, $x);
2508 2508 // TODO: what if an error occured? How we signal this?! // TODO: what if an error occured? How we signal this?!
2509 2509 if ($r !== TRUE) { if ($r !== TRUE) {
2510 $ret['error'] = 'You have no rights to access this repo';
2510 $ret['error'] = 'non existing repo or you are not allowed to push';
2511 2511 break; break;
2512 2512 } }
2513 2513
 
... ... function rg_repo_fetch_push_helper($db, $host, $ip, $login_ui, $prefix, $user,
2552 2552 // free space?! // free space?!
2553 2553 // We should mark the repo over limit when we compute // We should mark the repo over limit when we compute
2554 2554 // the disk space - same problem // the disk space - same problem
2555 $ret['error'] = 'Cannot push: user is over limit'
2555 $ret['error'] = 'cannot push: user is over limit'
2556 2556 . ' (' . $ret['owner_ui']['disk_used_mb'] . 'MiB >= ' . ' (' . $ret['owner_ui']['disk_used_mb'] . 'MiB >= '
2557 2557 . $max . 'MiB)'; . $max . 'MiB)';
2558 2558 break; break;
 
... ... function rg_repo_fetch_push_helper($db, $host, $ip, $login_ui, $prefix, $user,
2584 2584 $dst = $repo_path . '/refs/namespaces/' . $namespace . '/refs'; $dst = $repo_path . '/refs/namespaces/' . $namespace . '/refs';
2585 2585 $r = rg_copy_tree($repo_path . '/refs/heads', $dst . '/heads/', 0700); $r = rg_copy_tree($repo_path . '/refs/heads', $dst . '/heads/', 0700);
2586 2586 if ($r !== TRUE) { if ($r !== TRUE) {
2587 $ret['error'] = 'Internal error (cannot copy heads)';
2587 $ret['error'] = 'internal error (cannot copy heads refs)';
2588 2588 break; break;
2589 2589 } }
2590 2590 $r = rg_copy_tree($repo_path . '/refs/tags', $r = rg_copy_tree($repo_path . '/refs/tags',
2591 2591 $dst . '/tags/', 0700); $dst . '/tags/', 0700);
2592 2592 if ($r !== TRUE) { if ($r !== TRUE) {
2593 2593 $ret['error'] = $ret['error'] =
2594 'Internal error (cannot copy tags)';
2594 'internal error (cannot copy tags refs)';
2595 2595 break; break;
2596 2596 } }
2597 2597 } }
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://rocketgit.com/user/catalinux/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/rocketgit

Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main