@ -4,9 +4,11 @@
package private
package private
import (
import (
"errors"
"net/http"
"net/http"
repo_model "code.gitea.io/gitea/models/repo"
issues_model "code.gitea.io/gitea/models/issues"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/private"
"code.gitea.io/gitea/modules/private"
@ -25,10 +27,16 @@ func HookProcReceive(ctx *gitea_context.PrivateContext) {
results , err := agit . ProcReceive ( ctx , ctx . Repo . Repository , ctx . Repo . GitRepo , opts )
results , err := agit . ProcReceive ( ctx , ctx . Repo . Repository , ctx . Repo . GitRepo , opts )
if err != nil {
if err != nil {
if repo_model . IsErrUserDoesNotHaveAccessToRepo ( err ) {
if errors . Is ( err , issues_model . ErrMustCollaborator ) {
ctx . Error ( http . StatusBadRequest , "UserDoesNotHaveAccessToRepo" , err . Error ( ) )
ctx . JSON ( http . StatusUnauthorized , private . Response {
Err : err . Error ( ) , UserMsg : "You must be a collaborator to create pull request." ,
} )
} else if errors . Is ( err , user_model . ErrBlockedUser ) {
ctx . JSON ( http . StatusUnauthorized , private . Response {
Err : err . Error ( ) , UserMsg : "Cannot create pull request because you are blocked by the repository owner." ,
} )
} else {
} else {
log . Error ( err . Error ( ) )
log . Error ( "agit.ProcReceive failed: %v" , err )
ctx . JSON ( http . StatusInternalServerError , private . Response {
ctx . JSON ( http . StatusInternalServerError , private . Response {
Err : err . Error ( ) ,
Err : err . Error ( ) ,
} )
} )