2021-09-07 18:49:36 +03:00
// Copyright 2021 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2021-09-07 18:49:36 +03:00
package setting
import (
"time"
"code.gitea.io/gitea/modules/log"
)
2022-01-20 20:46:10 +03:00
// Mirror settings
var Mirror = struct {
Enabled bool
DisableNewPull bool
DisableNewPush bool
DefaultInterval time . Duration
MinInterval time . Duration
} {
Enabled : true ,
DisableNewPull : false ,
DisableNewPush : false ,
MinInterval : 10 * time . Minute ,
DefaultInterval : 8 * time . Hour ,
}
2021-09-07 18:49:36 +03:00
2023-02-19 19:12:01 +03:00
func loadMirrorFrom ( rootCfg ConfigProvider ) {
2021-09-07 18:49:36 +03:00
// Handle old configuration through `[repository]` `DISABLE_MIRRORS`
// - please note this was badly named and only disabled the creation of new pull mirrors
2023-02-21 01:18:26 +03:00
// DEPRECATED should not be removed because users maybe upgrade from lower version to the latest version
// if these are removed, the warning will not be shown
deprecatedSetting ( rootCfg , "repository" , "DISABLE_MIRRORS" , "mirror" , "ENABLED" , "v1.19.0" )
2023-06-18 19:10:44 +03:00
if ConfigSectionKeyBool ( rootCfg . Section ( "repository" ) , "DISABLE_MIRRORS" ) {
2021-09-07 18:49:36 +03:00
Mirror . DisableNewPull = true
}
2022-01-20 20:00:38 +03:00
2023-02-19 19:12:01 +03:00
if err := rootCfg . Section ( "mirror" ) . MapTo ( & Mirror ) ; err != nil {
2021-09-07 18:49:36 +03:00
log . Fatal ( "Failed to map Mirror settings: %v" , err )
}
if ! Mirror . Enabled {
Mirror . DisableNewPull = true
Mirror . DisableNewPush = true
}
if Mirror . MinInterval . Minutes ( ) < 1 {
log . Warn ( "Mirror.MinInterval is too low, set to 1 minute" )
Mirror . MinInterval = 1 * time . Minute
}
if Mirror . DefaultInterval < Mirror . MinInterval {
if time . Hour * 8 < Mirror . MinInterval {
Mirror . DefaultInterval = Mirror . MinInterval
} else {
Mirror . DefaultInterval = time . Hour * 8
}
log . Warn ( "Mirror.DefaultInterval is less than Mirror.MinInterval, set to %s" , Mirror . DefaultInterval . String ( ) )
}
}