aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--models/repo.go4
-rw-r--r--routes/repo/pull.go2
2 files changed, 6 insertions, 0 deletions
diff --git a/models/repo.go b/models/repo.go
index c39d715f..c9c1964a 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -2348,6 +2348,10 @@ func HasForkedRepo(ownerID, repoID int64) (*Repository, bool, error) {
// ForkRepository creates a fork of target repository under another user domain.
func ForkRepository(doer, owner *User, baseRepo *Repository, name, desc string) (_ *Repository, err error) {
+ if !owner.CanCreateRepo() {
+ return nil, errors.ReachLimitOfRepo{owner.RepoCreationNum()}
+ }
+
repo := &Repository{
OwnerID: owner.ID,
Owner: owner,
diff --git a/routes/repo/pull.go b/routes/repo/pull.go
index 58f0a49a..80ca9387 100644
--- a/routes/repo/pull.go
+++ b/routes/repo/pull.go
@@ -126,6 +126,8 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
if err != nil {
c.Data["Err_RepoName"] = true
switch {
+ case errors.IsReachLimitOfRepo(err):
+ c.RenderWithErr(c.Tr("repo.form.reach_limit_of_creation", c.User.RepoCreationNum()), FORK, &f)
case models.IsErrRepoAlreadyExist(err):
c.RenderWithErr(c.Tr("repo.settings.new_owner_has_same_repo"), FORK, &f)
case models.IsErrNameReserved(err):