From bbc3145f3e8567d1b7ef389268aebc873e9abab6 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 21 Jun 2025 12:58:10 -0700 Subject: [PATCH 1/3] Fix a bug when setting repository private --- routers/web/repo/setting/setting.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/repo/setting/setting.go b/routers/web/repo/setting/setting.go index 6602685e94888..f50f3c7b48e39 100644 --- a/routers/web/repo/setting/setting.go +++ b/routers/web/repo/setting/setting.go @@ -209,7 +209,7 @@ func handleSettingsPostUpdate(ctx *context.Context) { // Visibility of forked repository is forced sync with base repository. if repo.IsFork { - form.Private = repo.BaseRepo.IsPrivate || repo.BaseRepo.Owner.Visibility == structs.VisibleTypePrivate + repo.IsPrivate = repo.BaseRepo.IsPrivate || repo.BaseRepo.Owner.Visibility == structs.VisibleTypePrivate } if err := repo_service.UpdateRepository(ctx, repo, false); err != nil { From 78932e59a2b84663fe3a2b97568717c60bac18cc Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 21 Jun 2025 13:05:32 -0700 Subject: [PATCH 2/3] Remove unnecessary code --- routers/web/repo/setting/setting.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/routers/web/repo/setting/setting.go b/routers/web/repo/setting/setting.go index f50f3c7b48e39..4e09649ce3dc7 100644 --- a/routers/web/repo/setting/setting.go +++ b/routers/web/repo/setting/setting.go @@ -207,11 +207,6 @@ func handleSettingsPostUpdate(ctx *context.Context) { repo.Website = form.Website repo.IsTemplate = form.Template - // Visibility of forked repository is forced sync with base repository. - if repo.IsFork { - repo.IsPrivate = repo.BaseRepo.IsPrivate || repo.BaseRepo.Owner.Visibility == structs.VisibleTypePrivate - } - if err := repo_service.UpdateRepository(ctx, repo, false); err != nil { ctx.ServerError("UpdateRepository", err) return From 296f31fc9dd834e02764c29003361f0a6c8fafba Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 1 Aug 2025 11:44:03 -0700 Subject: [PATCH 3/3] fix --- routers/web/repo/setting/setting.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/routers/web/repo/setting/setting.go b/routers/web/repo/setting/setting.go index 4e09649ce3dc7..698ab0e84ac2b 100644 --- a/routers/web/repo/setting/setting.go +++ b/routers/web/repo/setting/setting.go @@ -207,7 +207,15 @@ func handleSettingsPostUpdate(ctx *context.Context) { repo.Website = form.Website repo.IsTemplate = form.Template - if err := repo_service.UpdateRepository(ctx, repo, false); err != nil { + // Visibility of forked repository is forced sync with base repository. + visibilityChanged := false + if repo.IsFork { + preVisibility := repo.IsPrivate + repo.IsPrivate = repo.BaseRepo.IsPrivate || repo.BaseRepo.Owner.Visibility == structs.VisibleTypePrivate + visibilityChanged = preVisibility != repo.IsPrivate + } + + if err := repo_service.UpdateRepository(ctx, repo, visibilityChanged); err != nil { ctx.ServerError("UpdateRepository", err) return }