mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	Make mirror feature more configurable (#16957)
Rename`[repository]` `DISABLE_MIRRORS` to `[mirror]` `DISABLE_NEW_PULL` and add `ENABLED` and `DISABLE_NEW_PUSH` with the below meanings: - `ENABLED`: **true**: Enables the mirror functionality. Set to **false** to disable all mirrors. - `DISABLE_NEW_PULL`: **false**: Disable the creation of **new** mirrors. Pre-existing mirrors remain valid. - `DISABLE_NEW_PUSH`: **false**: Disable the creation of **new** push mirrors. Pre-existing mirrors remain valid. Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
		@@ -22,6 +22,10 @@ var mirrorQueue = sync.NewUniqueQueue(setting.Repository.MirrorQueueLength)
 | 
			
		||||
 | 
			
		||||
// Update checks and updates mirror repositories.
 | 
			
		||||
func Update(ctx context.Context) error {
 | 
			
		||||
	if !setting.Mirror.Enabled {
 | 
			
		||||
		log.Warn("Mirror feature disabled, but cron job enabled: skip update")
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
	log.Trace("Doing: Update")
 | 
			
		||||
 | 
			
		||||
	handler := func(idx int, bean interface{}) error {
 | 
			
		||||
@@ -89,15 +93,24 @@ func syncMirrors(ctx context.Context) {
 | 
			
		||||
 | 
			
		||||
// InitSyncMirrors initializes a go routine to sync the mirrors
 | 
			
		||||
func InitSyncMirrors() {
 | 
			
		||||
	if !setting.Mirror.Enabled {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	go graceful.GetManager().RunWithShutdownContext(syncMirrors)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// StartToMirror adds repoID to mirror queue
 | 
			
		||||
func StartToMirror(repoID int64) {
 | 
			
		||||
	if !setting.Mirror.Enabled {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	go mirrorQueue.Add(fmt.Sprintf("pull %d", repoID))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AddPushMirrorToQueue adds the push mirror to the queue
 | 
			
		||||
func AddPushMirrorToQueue(mirrorID int64) {
 | 
			
		||||
	if !setting.Mirror.Enabled {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	go mirrorQueue.Add(fmt.Sprintf("push %d", mirrorID))
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user