From ebe9d545ad3ba2db1a6a19076e3f66c453f84449 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Sat, 18 May 2024 00:07:41 +0800 Subject: [PATCH 1/3] Simplify mirror repository API logic (#30963) Fix #30921 --- modules/structs/repo.go | 2 +- routers/api/v1/repo/repo.go | 12 +++--------- templates/swagger/v1_json.tmpl | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/modules/structs/repo.go b/modules/structs/repo.go index bc8eb0b756973..1fe826cf894b9 100644 --- a/modules/structs/repo.go +++ b/modules/structs/repo.go @@ -217,7 +217,7 @@ type EditRepoOption struct { Archived *bool `json:"archived,omitempty"` // set to a string like `8h30m0s` to set the mirror interval time MirrorInterval *string `json:"mirror_interval,omitempty"` - // enable prune - remove obsolete remote-tracking references + // enable prune - remove obsolete remote-tracking references when mirroring EnablePrune *bool `json:"enable_prune,omitempty"` } diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 7f35a7fe4176b..e759142938168 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -1062,16 +1062,10 @@ func updateRepoArchivedState(ctx *context.APIContext, opts api.EditRepoOption) e func updateMirror(ctx *context.APIContext, opts api.EditRepoOption) error { repo := ctx.Repo.Repository - // only update mirror if interval or enable prune are provided - if opts.MirrorInterval == nil && opts.EnablePrune == nil { - return nil - } - - // these values only make sense if the repo is a mirror + // Skip this update if the repo is not a mirror, do not return error. + // Because reporting errors only makes the logic more complex&fragile, it doesn't really help end users. if !repo.IsMirror { - err := fmt.Errorf("repo is not a mirror, can not change mirror interval") - ctx.Error(http.StatusUnprocessableEntity, err.Error(), err) - return err + return nil } // get the mirror from the repo diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 1c23c72ac23c6..764a13063d54e 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -20610,7 +20610,7 @@ "x-go-name": "Description" }, "enable_prune": { - "description": "enable prune - remove obsolete remote-tracking references", + "description": "enable prune - remove obsolete remote-tracking references when mirroring", "type": "boolean", "x-go-name": "EnablePrune" }, From f1605ac1de33e71a521aeef8256e327b326b8b16 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Sat, 18 May 2024 15:59:23 +0800 Subject: [PATCH 2/3] Update repo.go --- routers/api/v1/repo/repo.go | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index e759142938168..708e6a77c606a 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -2,6 +2,7 @@ // Copyright 2018 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT + package repo import ( From c9687700478f27932ada81bb4bd59c420152ddfb Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Sat, 18 May 2024 15:59:41 +0800 Subject: [PATCH 3/3] Update repo.go --- routers/api/v1/repo/repo.go | 1 - 1 file changed, 1 deletion(-) diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 708e6a77c606a..e759142938168 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -2,7 +2,6 @@ // Copyright 2018 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT - package repo import (