@@ -21,17 +21,15 @@ func GetRepositoriesByForkID(ctx context.Context, forkID int64) ([]*Repository,
2121}
2222
2323// GetForkedRepo checks if given user has already forked a repository with given ID.
24- func GetForkedRepo (ctx context.Context , ownerID , repoID int64 ) ( * Repository , error ) {
24+ func GetForkedRepo (ctx context.Context , ownerID , repoID int64 ) * Repository {
2525 repo := new (Repository )
26- has , err := db .GetEngine (ctx ).
26+ has , _ := db .GetEngine (ctx ).
2727 Where ("owner_id=? AND fork_id=?" , ownerID , repoID ).
2828 Get (repo )
29- if err != nil {
30- return nil , err
31- } else if ! has {
32- return nil , ErrRepoNotExist {ID : repoID }
29+ if has {
30+ return repo
3331 }
34- return repo , nil
32+ return nil
3533}
3634
3735// HasForkedRepo checks if given user has already forked a repository with given ID.
@@ -43,6 +41,19 @@ func HasForkedRepo(ctx context.Context, ownerID, repoID int64) bool {
4341 return has
4442}
4543
44+ // GetUserFork return user forked repository from this repository, if not forked return nil
45+ func GetUserFork (ctx context.Context , repoID , userID int64 ) (* Repository , error ) {
46+ var forkedRepo Repository
47+ has , err := db .GetEngine (ctx ).Where ("fork_id = ?" , repoID ).And ("owner_id = ?" , userID ).Get (& forkedRepo )
48+ if err != nil {
49+ return nil , err
50+ }
51+ if ! has {
52+ return nil , nil
53+ }
54+ return & forkedRepo , nil
55+ }
56+
4657// IncrementRepoForkNum increment repository fork number
4758func IncrementRepoForkNum (ctx context.Context , repoID int64 ) error {
4859 _ , err := db .GetEngine (ctx ).Exec ("UPDATE `repository` SET num_forks=num_forks+1 WHERE id=?" , repoID )
@@ -76,8 +87,8 @@ func GetForksByUserAndOrgs(ctx context.Context, user *user_model.User, repo *Rep
7687 if user == nil {
7788 return repoList , nil
7889 }
79- forkedRepo , err := GetForkedRepo (ctx , repo .ID , user .ID )
80- if err != nil && ! IsErrRepoNotExist ( err ) {
90+ forkedRepo , err := GetUserFork (ctx , repo .ID , user .ID )
91+ if err != nil {
8192 return repoList , err
8293 }
8394 if forkedRepo != nil {
0 commit comments