From 52f46919dc8f4e67a6e24869841634a28b3426aa Mon Sep 17 00:00:00 2001
From: yp05327 <576951401@qq.com>
Date: Fri, 14 Jul 2023 16:56:20 +0900
Subject: [PATCH] Add error info if no user can fork the repo (#25820)

Before: (Owner list is empty)

![image](https://github.com/go-gitea/gitea/assets/18380374/dbe87bfe-14ed-4997-8cb2-5c1308232a70)

After: (Disable the button and show the error info)

![image](https://github.com/go-gitea/gitea/assets/18380374/a7e4c315-67ab-408b-88f2-c554076ce87a)
---
 options/locale/locale_en-US.ini | 1 +
 routers/web/repo/pull.go        | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index c4c9d32e1d..8c7990e0d4 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -935,6 +935,7 @@ fork_from = Fork From
 already_forked = You've already forked %s
 fork_to_different_account = Fork to a different account
 fork_visibility_helper = The visibility of a forked repository cannot be changed.
+fork_no_valid_owners = This repository can not be forked because there are no valid owners.
 use_template = Use this template
 clone_in_vsc = Clone in VS Code
 download_zip = Download ZIP
diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go
index 1b68ef352a..505e1424cd 100644
--- a/routers/web/repo/pull.go
+++ b/routers/web/repo/pull.go
@@ -174,6 +174,12 @@ func getForkRepository(ctx *context.Context) *repo_model.Repository {
 		ctx.Data["ContextUser"] = ctx.Doer
 	} else if len(orgs) > 0 {
 		ctx.Data["ContextUser"] = orgs[0]
+	} else {
+		msg := ctx.Tr("repo.fork_no_valid_owners")
+		ctx.Data["Flash"] = ctx.Flash
+		ctx.Flash.Error(msg)
+		ctx.Data["CanForkRepo"] = false
+		return nil
 	}
 
 	return forkRepo