File TODO changed (mode: 100644) (index 544a072..e7857b2) |
22 |
22 |
[ ] |
[ ] |
23 |
23 |
|
|
24 |
24 |
== next release == |
== next release == |
|
25 |
|
[ ] Set fillfactor for table which changes a lot (keys, events, build_jobs etc.) |
|
26 |
|
[ ] Add a test with an empty folder. |
|
27 |
|
[ ] Double message: |
|
28 |
|
Sending (info): you are connecting as user |
|
29 |
|
Sending (info): you are connecting as user |
|
30 |
|
[ ] Add to comparison the push options? |
25 |
31 |
[ ] Add in comparison stuff about AI and an extra license for the operator. |
[ ] Add in comparison stuff about AI and an extra license for the operator. |
26 |
32 |
[ ] Add in comparison where (country) they are hosted. |
[ ] Add in comparison where (country) they are hosted. |
27 |
33 |
[ ] Anybody with a build can dirty pkg_subrepos? It should not happen. |
[ ] Anybody with a build can dirty pkg_subrepos? It should not happen. |
|
78 |
84 |
[ ] |
[ ] |
79 |
85 |
|
|
80 |
86 |
== Next next release == |
== Next next release == |
|
87 |
|
[ ] Pass pkg repo info inside the build process to allow building optimized |
|
88 |
|
packages for some architectures. |
|
89 |
|
[ ] Table apikeys has no index on 'key'. Should it? |
|
90 |
|
[ ] Table commit_label has no index. Should it? |
|
91 |
|
[ ] Make compression level configurable. |
|
92 |
|
[ ] Support other compression algos (broli, xz, zstd). |
|
93 |
|
[ ] https://rocketgit.com/user/catalinux/rocketgit/pkg |
|
94 |
|
Development distributions and latest major version should not be collapsed. |
|
95 |
|
[ ] https://rocketgit.com/user/catalinux/rocketgit/pkg |
|
96 |
|
Fedora 34 comes between 35 and 36 - are not sorted correctly. |
81 |
97 |
[ ] Allow use of 'LATEST' instead of '40' in environment. |
[ ] Allow use of 'LATEST' instead of '40' in environment. |
82 |
98 |
Example: fedora-LATEST-x86_64. What about rawhide? |
Example: fedora-LATEST-x86_64. What about rawhide? |
83 |
99 |
Maybe use 'LATEST_STABLE'? |
Maybe use 'LATEST_STABLE'? |
File inc/struct.inc.php changed (mode: 100644) (index 6d986b0..364f0e0) |
... |
... |
$rg_sql_struct[36]['tables'] = array( |
482 |
482 |
. ", uid INT NOT NULL DEFAULT 0)" |
. ", uid INT NOT NULL DEFAULT 0)" |
483 |
483 |
); |
); |
484 |
484 |
$rg_sql_struct[36]['other'] = array( |
$rg_sql_struct[36]['other'] = array( |
485 |
|
'users drop double unique constriaint' => |
|
|
485 |
|
'users drop double unique constraint' => |
486 |
486 |
"ALTER TABLE users DROP CONSTRAINT users_username_key", |
"ALTER TABLE users DROP CONSTRAINT users_username_key", |
487 |
487 |
'last_cmd' => |
'last_cmd' => |
488 |
488 |
"ALTER TABLE keys ADD last_cmd TEXT NOT NULL DEFAULT ''", |
"ALTER TABLE keys ADD last_cmd TEXT NOT NULL DEFAULT ''", |
|
... |
... |
$rg_sql_struct_parts['payments_history'] = array(); |
787 |
787 |
// Here 0.77 was released |
// Here 0.77 was released |
788 |
788 |
// Here 0.78 was released |
// Here 0.78 was released |
789 |
789 |
// Here 0.79 was released |
// Here 0.79 was released |
|
790 |
|
$rg_sql_struct[51]['tables'] = array(); |
|
791 |
|
$rg_sql_struct[51]['other'] = array( |
|
792 |
|
'collate keys.fingerprint_sha256' => 'ALTER TABLE keys ALTER COLUMN fingerprint_sha256 SET DATA TYPE TEXT COLLATE "C"', |
|
793 |
|
'collate keys.fingerprint_sha256 i' => 'REINDEX INDEX keys_i_fingerprint_sha256', |
|
794 |
|
'collate state.var' => 'ALTER TABLE state ALTER COLUMN var SET DATA TYPE TEXT COLLATE "C"', |
|
795 |
|
'collate state.var i' => 'REINDEX INDEX state_pkey', |
|
796 |
|
'collate sess.sid' => 'ALTER TABLE sess ALTER COLUMN sid SET DATA TYPE TEXT COLLATE "C"', |
|
797 |
|
'collate sess.sid i' => 'REINDEX INDEX sess_pkey', |
|
798 |
|
'collate sess.sid' => 'ALTER TABLE sess ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
799 |
|
'collate forgot_pass.token' => 'ALTER TABLE forgot_pass ALTER COLUMN token SET DATA TYPE TEXT COLLATE "C"', |
|
800 |
|
'collate forgot_pass.token i' => 'REINDEX INDEX forgot_pass_pkey', |
|
801 |
|
'collate tokens.token' => 'ALTER TABLE tokens ALTER COLUMN token SET DATA TYPE TEXT COLLATE "C"', |
|
802 |
|
'collate tokens.token i' => 'REINDEX INDEX tokens_pkey', |
|
803 |
|
'collate merge_requests.namespace' => 'ALTER TABLE merge_requests ALTER COLUMN namespace SET DATA TYPE TEXT COLLATE "C"', |
|
804 |
|
'collate merge_requests.ip' => 'ALTER TABLE merge_requests ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
805 |
|
'collate bugs.ip' => 'ALTER TABLE bugs ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
806 |
|
'collate bug_notes.ip' => 'ALTER TABLE bug_notes ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
807 |
|
'collate rights.ip' => 'ALTER TABLE rights ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
808 |
|
'collate login_tokens.secret' => 'ALTER TABLE login_tokens ALTER COLUMN secret SET DATA TYPE TEXT COLLATE "C"', |
|
809 |
|
'collate login_tokens.ip' => 'ALTER TABLE login_tokens ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
810 |
|
'collate login_tokens_ip.ip' => 'ALTER TABLE login_tokens_ip ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
811 |
|
'collate scratch_codes.sc' => 'ALTER TABLE scratch_codes ALTER COLUMN sc SET DATA TYPE TEXT COLLATE "C"', |
|
812 |
|
'collate webhooks.htype' => 'ALTER TABLE webhooks ALTER COLUMN htype SET DATA TYPE TEXT COLLATE "C"', |
|
813 |
|
'collate webhooks.flags' => 'ALTER TABLE webhooks ALTER COLUMN flags SET DATA TYPE TEXT COLLATE "C"', |
|
814 |
|
'collate webhooks.hsubtype' => 'ALTER TABLE webhooks ALTER COLUMN hsubtype SET DATA TYPE TEXT COLLATE "C"', |
|
815 |
|
'collate apikeys.key' => 'ALTER TABLE apikeys ALTER COLUMN key SET DATA TYPE TEXT COLLATE "C"', |
|
816 |
|
'collate workers.key' => 'ALTER TABLE workers ALTER COLUMN key SET DATA TYPE TEXT COLLATE "C"', |
|
817 |
|
'collate workers.fingerprint_sha256' => 'ALTER TABLE workers ALTER COLUMN fingerprint_sha256 SET DATA TYPE TEXT COLLATE "C"', |
|
818 |
|
'collate workers.fingerprint_sha256 i' => 'REINDEX INDEX workers_i_fingerprint_sha256', |
|
819 |
|
'collate conns.type' => 'ALTER TABLE conns ALTER COLUMN type SET DATA TYPE TEXT COLLATE "C"', |
|
820 |
|
'collate conns.ip' => 'ALTER TABLE conns ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
821 |
|
'collate conns.flags' => 'ALTER TABLE conns ALTER COLUMN ip SET DATA TYPE TEXT COLLATE "C"', |
|
822 |
|
'collate pkg_repos.flags' => 'ALTER TABLE pkg_repos ALTER COLUMN flags SET DATA TYPE TEXT COLLATE "C"', |
|
823 |
|
'collate pkg_repos.rgfs_key' => 'ALTER TABLE pkg_repos ALTER COLUMN rgfs_key SET DATA TYPE TEXT COLLATE "C"', |
|
824 |
|
'collate pkg_maps.flags' => 'ALTER TABLE pkg_maps ALTER COLUMN flags SET DATA TYPE TEXT COLLATE "C"', |
|
825 |
|
'collate payments.id' => 'ALTER TABLE payments ALTER COLUMN id SET DATA TYPE CHAR(16) COLLATE "C"', |
|
826 |
|
'collate payments.id i' => 'REINDEX INDEX payments_pkey', |
|
827 |
|
'collate payments.state' => 'ALTER TABLE payments ALTER COLUMN state SET DATA TYPE TEXT COLLATE "C"', |
|
828 |
|
'collate payments.type' => 'ALTER TABLE payments ALTER COLUMN type SET DATA TYPE TEXT COLLATE "C"', |
|
829 |
|
'collate payments.type_extra' => 'ALTER TABLE payments ALTER COLUMN type_extra SET DATA TYPE TEXT COLLATE "C"', |
|
830 |
|
'collate payments.operator' => 'ALTER TABLE payments ALTER COLUMN operator SET DATA TYPE TEXT COLLATE "C"', |
|
831 |
|
'collate payments.order_id' => 'ALTER TABLE payments ALTER COLUMN order_id SET DATA TYPE TEXT COLLATE "C"', |
|
832 |
|
'collate payments_history.pay_id' => 'ALTER TABLE payments_history ALTER COLUMN pay_id SET DATA TYPE CHAR(16) COLLATE "C"', |
|
833 |
|
'ff keys table' => 'ALTER TABLE keys SET (FILLFACTOR = 95)', |
|
834 |
|
'ff keys index key_id' => 'ALTER INDEX keys_pkey SET (FILLFACTOR = 95)', |
|
835 |
|
'ff keys vacuum' => 'VACUUM FULL keys' |
|
836 |
|
); |
|
837 |
|
|
|
838 |
|
// Here 0.80 was released |
790 |
839 |
|
|
791 |
840 |
// Do not forget to add the new created tables to statistics. |
// Do not forget to add the new created tables to statistics. |
792 |
841 |
// See rg_conns_data etc. |
// See rg_conns_data etc. |
File inc/user/repo-page.php changed (mode: 100644) (index a4d2de8..58742cd) |
... |
... |
if (strcmp($_subop, "history") == 0) { |
362 |
362 |
rg_add_clone_hints($db, $rg, ''); |
rg_add_clone_hints($db, $rg, ''); |
363 |
363 |
|
|
364 |
364 |
$time_limit = max($rg['ri']['itime'], time() - 30 * 24 * 3600); |
$time_limit = max($rg['ri']['itime'], time() - 30 * 24 * 3600); |
365 |
|
$hist = rg_repo_history_load($db, $rg['ri']['repo_id'], 0, 20, $time_limit); |
|
|
365 |
|
$hist = rg_repo_history_load($db, $rg['ri']['repo_id'], |
|
366 |
|
0, 20, $time_limit); |
366 |
367 |
if ($hist === FALSE) |
if ($hist === FALSE) |
367 |
368 |
$_repo_body .= rg_warning("Cannot load history. Try again later."); |
$_repo_body .= rg_warning("Cannot load history. Try again later."); |
368 |
369 |
else |
else |
369 |
370 |
$_repo_body .= rg_template_table("repo/history", $hist, $rg); |
$_repo_body .= rg_template_table("repo/history", $hist, $rg); |
370 |
371 |
|
|
371 |
|
$_repo_body .= rg_repo_show_readme($rg, 'HEAD', '.' /*path*/); |
|
|
372 |
|
$_repo_body .= rg_repo_show_readme($rg, |
|
373 |
|
$rg['ri']['main_branch'], '.' /*path*/); |
372 |
374 |
} else if (strcmp($_subop, "admin") == 0) { |
} else if (strcmp($_subop, "admin") == 0) { |
373 |
375 |
$_repo_body .= rg_repo_admin($db, $rg, $paras); |
$_repo_body .= rg_repo_admin($db, $rg, $paras); |
374 |
376 |
} else if (strcmp($_subop, "source") == 0) { |
} else if (strcmp($_subop, "source") == 0) { |
File inc/util.inc.php changed (mode: 100644) (index 87fcb90..fc48440) |
... |
... |
function rg_serialize($a) |
2833 |
2833 |
} |
} |
2834 |
2834 |
|
|
2835 |
2835 |
/* |
/* |
2836 |
|
* Compress data for web |
|
|
2836 |
|
* Compress data for web (zlib) |
2837 |
2837 |
*/ |
*/ |
2838 |
2838 |
function rg_gzencode($c, &$orig_len, &$comp_len) |
function rg_gzencode($c, &$orig_len, &$comp_len) |
2839 |
2839 |
{ |
{ |
2840 |
2840 |
rg_prof_start('gzencode'); |
rg_prof_start('gzencode'); |
2841 |
2841 |
$orig_len = strlen($c); |
$orig_len = strlen($c); |
2842 |
2842 |
|
|
2843 |
|
$ret = @gzencode($c, 6); |
|
|
2843 |
|
$ret = @gzencode($c, 9); |
2844 |
2844 |
if ($ret === FALSE) |
if ($ret === FALSE) |
2845 |
2845 |
rg_fatal('cannot gzencode'); |
rg_fatal('cannot gzencode'); |
2846 |
2846 |
|
|
|
... |
... |
function rg_save($file, $a) |
2969 |
2969 |
return rg_save_plain($file, rg_serialize($a)); |
return rg_save_plain($file, rg_serialize($a)); |
2970 |
2970 |
} |
} |
2971 |
2971 |
|
|
|
2972 |
|
function rg_is_abuser(string $ua) |
|
2973 |
|
{ |
|
2974 |
|
if (stristr($ua, 'facebookexternalhit/')) return TRUE; |
|
2975 |
|
if (stristr($ua, 'gptbot/')) return TRUE; |
|
2976 |
|
|
|
2977 |
|
return FALSE; |
|
2978 |
|
} |
|
2979 |
|
|
2972 |
2980 |
/* |
/* |
2973 |
2981 |
* Returns TRUE if we detect that the User-Agent seems a bot |
* Returns TRUE if we detect that the User-Agent seems a bot |
2974 |
2982 |
*/ |
*/ |
|
... |
... |
function rg_is_bot($ua) |
3027 |
3035 |
if (strstr($ua, ' Mail.RU_Bot')) return TRUE; |
if (strstr($ua, ' Mail.RU_Bot')) return TRUE; |
3028 |
3036 |
if (strstr($ua, ' MauiBot ')) return TRUE; |
if (strstr($ua, ' MauiBot ')) return TRUE; |
3029 |
3037 |
if (strstr($ua, ' MegaIndex.ru/')) return TRUE; |
if (strstr($ua, ' MegaIndex.ru/')) return TRUE; |
|
3038 |
|
if (strstr($ua, 'meta-externalagent/')) return TRUE; |
3030 |
3039 |
if (strstr($ua, ' MJ12bot')) return TRUE; |
if (strstr($ua, ' MJ12bot')) return TRUE; |
3031 |
3040 |
if (strstr($ua, ' MojeekBot')) return TRUE; |
if (strstr($ua, ' MojeekBot')) return TRUE; |
3032 |
3041 |
if (strstr($ua, 'msnbot-media/')) return TRUE; |
if (strstr($ua, 'msnbot-media/')) return TRUE; |