diff --git a/routers/web/repo/setting/setting.go b/routers/web/repo/setting/setting.go index 0865d9d7c0f59..4400c2b1b4b29 100644 --- a/routers/web/repo/setting/setting.go +++ b/routers/web/repo/setting/setting.go @@ -208,11 +208,14 @@ func handleSettingsPostUpdate(ctx *context.Context) { repo.IsTemplate = form.Template // Visibility of forked repository is forced sync with base repository. + visibilityChanged := false if repo.IsFork { - form.Private = repo.BaseRepo.IsPrivate || repo.BaseRepo.Owner.Visibility == structs.VisibleTypePrivate + 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, false); err != nil { + if err := repo_service.UpdateRepository(ctx, repo, visibilityChanged); err != nil { ctx.ServerError("UpdateRepository", err) return }