@@ -35,6 +35,10 @@ export interface GitProxyConfig {
3535 * List of repositories that are authorised to be pushed to through the proxy.
3636 */
3737 authorisedList ?: AuthorisedRepo [ ] ;
38+ /**
39+ * Configuration for bare repository cache (hybrid cache system)
40+ */
41+ cache ?: Cache ;
3842 /**
3943 * Enforce rules and patterns on commits including e-mail and message
4044 */
@@ -264,6 +268,24 @@ export interface AuthorisedRepo {
264268 [ property : string ] : any ;
265269}
266270
271+ /**
272+ * Configuration for bare repository cache (hybrid cache system)
273+ */
274+ export interface Cache {
275+ /**
276+ * Directory path for bare repository cache (default ./.remote/cache)
277+ */
278+ cacheDir : string ;
279+ /**
280+ * Maximum number of repositories in cache (default 50)
281+ */
282+ maxRepositories : number ;
283+ /**
284+ * Maximum cache size in gigabytes (default 2GB)
285+ */
286+ maxSizeGB : number ;
287+ }
288+
267289/**
268290 * API Rate limiting configuration.
269291 */
@@ -530,6 +552,7 @@ const typeMap: any = {
530552 typ : u ( undefined , a ( r ( 'AuthenticationElement' ) ) ) ,
531553 } ,
532554 { json : 'authorisedList' , js : 'authorisedList' , typ : u ( undefined , a ( r ( 'AuthorisedRepo' ) ) ) } ,
555+ { json : 'cache' , js : 'cache' , typ : u ( undefined , r ( 'Cache' ) ) } ,
533556 { json : 'commitConfig' , js : 'commitConfig' , typ : u ( undefined , m ( 'any' ) ) } ,
534557 { json : 'configurationSources' , js : 'configurationSources' , typ : u ( undefined , 'any' ) } ,
535558 { json : 'contactEmail' , js : 'contactEmail' , typ : u ( undefined , '' ) } ,
@@ -617,6 +640,14 @@ const typeMap: any = {
617640 ] ,
618641 'any' ,
619642 ) ,
643+ Cache : o (
644+ [
645+ { json : 'cacheDir' , js : 'cacheDir' , typ : '' } ,
646+ { json : 'maxRepositories' , js : 'maxRepositories' , typ : 3.14 } ,
647+ { json : 'maxSizeGB' , js : 'maxSizeGB' , typ : 3.14 } ,
648+ ] ,
649+ false ,
650+ ) ,
620651 RateLimit : o (
621652 [
622653 { json : 'limit' , js : 'limit' , typ : 3.14 } ,
0 commit comments