Skip to content

Commit 744fd6a

Browse files
jolheisertechknowlogick
authored andcommitted
Add error for fork already existing (#7185)
1 parent f9ec2f8 commit 744fd6a

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

models/error.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,23 @@ func (err ErrRepoAlreadyExist) Error() string {
674674
return fmt.Sprintf("repository already exists [uname: %s, name: %s]", err.Uname, err.Name)
675675
}
676676

677+
// ErrForkAlreadyExist represents a "ForkAlreadyExist" kind of error.
678+
type ErrForkAlreadyExist struct {
679+
Uname string
680+
RepoName string
681+
ForkName string
682+
}
683+
684+
// IsErrForkAlreadyExist checks if an error is an ErrForkAlreadyExist.
685+
func IsErrForkAlreadyExist(err error) bool {
686+
_, ok := err.(ErrForkAlreadyExist)
687+
return ok
688+
}
689+
690+
func (err ErrForkAlreadyExist) Error() string {
691+
return fmt.Sprintf("repository is already forked by user [uname: %s, repo path: %s, fork path: %s]", err.Uname, err.RepoName, err.ForkName)
692+
}
693+
677694
// ErrRepoRedirectNotExist represents a "RepoRedirectNotExist" kind of error.
678695
type ErrRepoRedirectNotExist struct {
679696
OwnerID int64

models/repo.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2395,9 +2395,10 @@ func ForkRepository(doer, u *User, oldRepo *Repository, name, desc string) (_ *R
23952395
return nil, err
23962396
}
23972397
if forkedRepo != nil {
2398-
return nil, ErrRepoAlreadyExist{
2399-
Uname: u.Name,
2400-
Name: forkedRepo.Name,
2398+
return nil, ErrForkAlreadyExist{
2399+
Uname: u.Name,
2400+
RepoName: oldRepo.FullName(),
2401+
ForkName: forkedRepo.FullName(),
24012402
}
24022403
}
24032404

models/repo_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ func TestForkRepository(t *testing.T) {
131131
fork, err := ForkRepository(user, user, repo, "test", "test")
132132
assert.Nil(t, fork)
133133
assert.Error(t, err)
134-
assert.True(t, IsErrRepoAlreadyExist(err))
134+
assert.True(t, IsErrForkAlreadyExist(err))
135135
}
136136

137137
func TestRepoAPIURL(t *testing.T) {

0 commit comments

Comments
 (0)