summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorJohn Olheiser <42128690+jolheiser@users.noreply.github.com>2019-06-12 15:20:43 -0500
committertechknowlogick <hello@techknowlogick.com>2019-06-12 16:20:43 -0400
commit744fd6a1c87f2ad39dbe282133fae1190df6e538 (patch)
tree3838fb17bab5a39c82df33a8a5435701dd79add1 /models
parentf9ec2f89f2265bc1371a6c62359de9816534fa6b (diff)
downloadgitea-744fd6a1c87f2ad39dbe282133fae1190df6e538.tar.gz
gitea-744fd6a1c87f2ad39dbe282133fae1190df6e538.zip
Add error for fork already existing (#7185)
Diffstat (limited to 'models')
-rw-r--r--models/error.go17
-rw-r--r--models/repo.go7
-rw-r--r--models/repo_test.go2
3 files changed, 22 insertions, 4 deletions
diff --git a/models/error.go b/models/error.go
index fe0f05d36b..11ca6e6863 100644
--- a/models/error.go
+++ b/models/error.go
@@ -674,6 +674,23 @@ func (err ErrRepoAlreadyExist) Error() string {
return fmt.Sprintf("repository already exists [uname: %s, name: %s]", err.Uname, err.Name)
}
+// ErrForkAlreadyExist represents a "ForkAlreadyExist" kind of error.
+type ErrForkAlreadyExist struct {
+ Uname string
+ RepoName string
+ ForkName string
+}
+
+// IsErrForkAlreadyExist checks if an error is an ErrForkAlreadyExist.
+func IsErrForkAlreadyExist(err error) bool {
+ _, ok := err.(ErrForkAlreadyExist)
+ return ok
+}
+
+func (err ErrForkAlreadyExist) Error() string {
+ return fmt.Sprintf("repository is already forked by user [uname: %s, repo path: %s, fork path: %s]", err.Uname, err.RepoName, err.ForkName)
+}
+
// ErrRepoRedirectNotExist represents a "RepoRedirectNotExist" kind of error.
type ErrRepoRedirectNotExist struct {
OwnerID int64
diff --git a/models/repo.go b/models/repo.go
index a4a7521aa4..8819debd4b 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -2395,9 +2395,10 @@ func ForkRepository(doer, u *User, oldRepo *Repository, name, desc string) (_ *R
return nil, err
}
if forkedRepo != nil {
- return nil, ErrRepoAlreadyExist{
- Uname: u.Name,
- Name: forkedRepo.Name,
+ return nil, ErrForkAlreadyExist{
+ Uname: u.Name,
+ RepoName: oldRepo.FullName(),
+ ForkName: forkedRepo.FullName(),
}
}
diff --git a/models/repo_test.go b/models/repo_test.go
index 8411536d70..02cb5ab993 100644
--- a/models/repo_test.go
+++ b/models/repo_test.go
@@ -131,7 +131,7 @@ func TestForkRepository(t *testing.T) {
fork, err := ForkRepository(user, user, repo, "test", "test")
assert.Nil(t, fork)
assert.Error(t, err)
- assert.True(t, IsErrRepoAlreadyExist(err))
+ assert.True(t, IsErrForkAlreadyExist(err))
}
func TestRepoAPIURL(t *testing.T) {