diff --git a/models/error.go b/models/error.go
index 459954545..33815cdc9 100644
--- a/models/error.go
+++ b/models/error.go
@@ -8,10 +8,12 @@ import (
 	"fmt"
 )
 
+// ErrNameReserved represents a "reserved name" error.
 type ErrNameReserved struct {
 	Name string
 }
 
+// IsErrNameReserved checks if an error is a ErrNameReserved.
 func IsErrNameReserved(err error) bool {
 	_, ok := err.(ErrNameReserved)
 	return ok
@@ -21,10 +23,13 @@ func (err ErrNameReserved) Error() string {
 	return fmt.Sprintf("name is reserved [name: %s]", err.Name)
 }
 
+// ErrNamePatternNotAllowed represents a "pattern not allowed" error.
 type ErrNamePatternNotAllowed struct {
 	Pattern string
 }
 
+// IsErrNamePatternNotAllowed checks if an error is an
+// ErrNamePatternNotAllowed.
 func IsErrNamePatternNotAllowed(err error) bool {
 	_, ok := err.(ErrNamePatternNotAllowed)
 	return ok
@@ -41,10 +46,12 @@ func (err ErrNamePatternNotAllowed) Error() string {
 // |______//____  >\___  >__|
 //              \/     \/
 
+// ErrUserAlreadyExist represents a "user already exists" error.
 type ErrUserAlreadyExist struct {
 	Name string
 }
 
+// IsErrUserAlreadyExist checks if an error is a ErrUserAlreadyExists.
 func IsErrUserAlreadyExist(err error) bool {
 	_, ok := err.(ErrUserAlreadyExist)
 	return ok
@@ -54,12 +61,14 @@ func (err ErrUserAlreadyExist) Error() string {
 	return fmt.Sprintf("user already exists [name: %s]", err.Name)
 }
 
+// ErrUserNotExist represents a "UserNotExist" kind of error.
 type ErrUserNotExist struct {
 	UID   int64
 	Name  string
 	KeyID int64
 }
 
+// IsErrUserNotExist checks if an error is a ErrUserNotExist.
 func IsErrUserNotExist(err error) bool {
 	_, ok := err.(ErrUserNotExist)
 	return ok
@@ -69,10 +78,12 @@ func (err ErrUserNotExist) Error() string {
 	return fmt.Sprintf("user does not exist [uid: %d, name: %s, keyid: %d]", err.UID, err.Name, err.KeyID)
 }
 
+// ErrEmailAlreadyUsed represents a "EmailAlreadyUsed" kind of error.
 type ErrEmailAlreadyUsed struct {
 	Email string
 }
 
+// IsErrEmailAlreadyUsed checks if an error is a ErrEmailAlreadyUsed.
 func IsErrEmailAlreadyUsed(err error) bool {
 	_, ok := err.(ErrEmailAlreadyUsed)
 	return ok
@@ -82,10 +93,12 @@ func (err ErrEmailAlreadyUsed) Error() string {
 	return fmt.Sprintf("e-mail has been used [email: %s]", err.Email)
 }
 
+// ErrUserOwnRepos represents a "UserOwnRepos" kind of error.
 type ErrUserOwnRepos struct {
 	UID int64
 }
 
+// IsErrUserOwnRepos checks if an error is a ErrUserOwnRepos.
 func IsErrUserOwnRepos(err error) bool {
 	_, ok := err.(ErrUserOwnRepos)
 	return ok
@@ -95,10 +108,12 @@ func (err ErrUserOwnRepos) Error() string {
 	return fmt.Sprintf("user still has ownership of repositories [uid: %d]", err.UID)
 }
 
+// ErrUserHasOrgs represents a "UserHasOrgs" kind of error.
 type ErrUserHasOrgs struct {
 	UID int64
 }
 
+// IsErrUserHasOrgs checks if an error is a ErrUserHasOrgs.
 func IsErrUserHasOrgs(err error) bool {
 	_, ok := err.(ErrUserHasOrgs)
 	return ok
@@ -108,10 +123,12 @@ func (err ErrUserHasOrgs) Error() string {
 	return fmt.Sprintf("user still has membership of organizations [uid: %d]", err.UID)
 }
 
+// ErrReachLimitOfRepo represents a "ReachLimitOfRepo" kind of error.
 type ErrReachLimitOfRepo struct {
 	Limit int
 }
 
+// IsErrReachLimitOfRepo checks if an error is a ErrReachLimitOfRepo.
 func IsErrReachLimitOfRepo(err error) bool {
 	_, ok := err.(ErrReachLimitOfRepo)
 	return ok
@@ -128,10 +145,12 @@ func (err ErrReachLimitOfRepo) Error() string {
 //   \__/\  / |__|__|_ \__|
 //        \/          \/
 
+// ErrWikiAlreadyExist represents a "WikiAlreadyExist" kind of error.
 type ErrWikiAlreadyExist struct {
 	Title string
 }
 
+// IsErrWikiAlreadyExist checks if an error is a ErrWikiAlreadyExist.
 func IsErrWikiAlreadyExist(err error) bool {
 	_, ok := err.(ErrWikiAlreadyExist)
 	return ok
@@ -148,10 +167,12 @@ func (err ErrWikiAlreadyExist) Error() string {
 //  |____|   |____/|___  /____/__|\___  > |____|__ \___  > ____|
 //                     \/             \/          \/   \/\/
 
+// ErrKeyUnableVerify represents a "KeyUnableVerify" kind of error.
 type ErrKeyUnableVerify struct {
 	Result string
 }
 
+// IsErrKeyUnableVerify checks if an error is a ErrKeyUnableVerify.
 func IsErrKeyUnableVerify(err error) bool {
 	_, ok := err.(ErrKeyUnableVerify)
 	return ok
@@ -161,10 +182,12 @@ func (err ErrKeyUnableVerify) Error() string {
 	return fmt.Sprintf("Unable to verify key content [result: %s]", err.Result)
 }
 
+// ErrKeyNotExist represents a "KeyNotExist" kind of error.
 type ErrKeyNotExist struct {
 	ID int64
 }
 
+// IsErrKeyNotExist checks if an error is a ErrKeyNotExist.
 func IsErrKeyNotExist(err error) bool {
 	_, ok := err.(ErrKeyNotExist)
 	return ok
@@ -174,11 +197,13 @@ func (err ErrKeyNotExist) Error() string {
 	return fmt.Sprintf("public key does not exist [id: %d]", err.ID)
 }
 
+// ErrKeyAlreadyExist represents a "KeyAlreadyExist" kind of error.
 type ErrKeyAlreadyExist struct {
 	OwnerID int64
 	Content string
 }
 
+// IsErrKeyAlreadyExist checks if an error is a ErrKeyAlreadyExist.
 func IsErrKeyAlreadyExist(err error) bool {
 	_, ok := err.(ErrKeyAlreadyExist)
 	return ok
@@ -188,11 +213,13 @@ func (err ErrKeyAlreadyExist) Error() string {
 	return fmt.Sprintf("public key already exists [owner_id: %d, content: %s]", err.OwnerID, err.Content)
 }
 
+// ErrKeyNameAlreadyUsed represents a "KeyNameAlreadyUsed" kind of error.
 type ErrKeyNameAlreadyUsed struct {
 	OwnerID int64
 	Name    string
 }
 
+// IsErrKeyNameAlreadyUsed checks if an error is a ErrKeyNameAlreadyUsed.
 func IsErrKeyNameAlreadyUsed(err error) bool {
 	_, ok := err.(ErrKeyNameAlreadyUsed)
 	return ok
@@ -202,12 +229,14 @@ func (err ErrKeyNameAlreadyUsed) Error() string {
 	return fmt.Sprintf("public key already exists [owner_id: %d, name: %s]", err.OwnerID, err.Name)
 }
 
+// ErrKeyAccessDenied represents a "KeyAccessDenied" kind of error.
 type ErrKeyAccessDenied struct {
 	UserID int64
 	KeyID  int64
 	Note   string
 }
 
+// IsErrKeyAccessDenied checks if an error is a ErrKeyAccessDenied.
 func IsErrKeyAccessDenied(err error) bool {
 	_, ok := err.(ErrKeyAccessDenied)
 	return ok
@@ -218,12 +247,14 @@ func (err ErrKeyAccessDenied) Error() string {
 		err.UserID, err.KeyID, err.Note)
 }
 
+// ErrDeployKeyNotExist represents a "DeployKeyNotExist" kind of error.
 type ErrDeployKeyNotExist struct {
 	ID     int64
 	KeyID  int64
 	RepoID int64
 }
 
+// IsErrDeployKeyNotExist checks if an error is a ErrDeployKeyNotExist.
 func IsErrDeployKeyNotExist(err error) bool {
 	_, ok := err.(ErrDeployKeyNotExist)
 	return ok
@@ -233,11 +264,13 @@ func (err ErrDeployKeyNotExist) Error() string {
 	return fmt.Sprintf("Deploy key does not exist [id: %d, key_id: %d, repo_id: %d]", err.ID, err.KeyID, err.RepoID)
 }
 
+// ErrDeployKeyAlreadyExist represents a "DeployKeyAlreadyExist" kind of error.
 type ErrDeployKeyAlreadyExist struct {
 	KeyID  int64
 	RepoID int64
 }
 
+// IsErrDeployKeyAlreadyExist checks if an error is a ErrDeployKeyAlreadyExist.
 func IsErrDeployKeyAlreadyExist(err error) bool {
 	_, ok := err.(ErrDeployKeyAlreadyExist)
 	return ok
@@ -247,11 +280,13 @@ func (err ErrDeployKeyAlreadyExist) Error() string {
 	return fmt.Sprintf("public key already exists [key_id: %d, repo_id: %d]", err.KeyID, err.RepoID)
 }
 
+// ErrDeployKeyNameAlreadyUsed represents a "DeployKeyNameAlreadyUsed" kind of error.
 type ErrDeployKeyNameAlreadyUsed struct {
 	RepoID int64
 	Name   string
 }
 
+// IsErrDeployKeyNameAlreadyUsed checks if an error is a ErrDeployKeyNameAlreadyUsed.
 func IsErrDeployKeyNameAlreadyUsed(err error) bool {
 	_, ok := err.(ErrDeployKeyNameAlreadyUsed)
 	return ok
@@ -268,10 +303,12 @@ func (err ErrDeployKeyNameAlreadyUsed) Error() string {
 // \____|__  /\___  >___  >___  >____  >____  > |____| \____/|__|_ \\___  >___|  /
 //         \/     \/    \/    \/     \/     \/                    \/    \/     \/
 
+// ErrAccessTokenNotExist represents a "AccessTokenNotExist" kind of error.
 type ErrAccessTokenNotExist struct {
 	SHA string
 }
 
+// IsErrAccessTokenNotExist checks if an error is a ErrAccessTokenNotExist.
 func IsErrAccessTokenNotExist(err error) bool {
 	_, ok := err.(ErrAccessTokenNotExist)
 	return ok
@@ -281,9 +318,11 @@ func (err ErrAccessTokenNotExist) Error() string {
 	return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA)
 }
 
+// ErrAccessTokenEmpty represents a "AccessTokenEmpty" kind of error.
 type ErrAccessTokenEmpty struct {
 }
 
+// IsErrAccessTokenEmpty checks if an error is a ErrAccessTokenEmpty.
 func IsErrAccessTokenEmpty(err error) bool {
 	_, ok := err.(ErrAccessTokenEmpty)
 	return ok
@@ -300,10 +339,12 @@ func (err ErrAccessTokenEmpty) Error() string {
 // \_______  /__|  \___  (____  /___|  /__/_____ \(____  /__| |__|\____/|___|  /
 //         \/     /_____/     \/     \/         \/     \/                    \/
 
+// ErrLastOrgOwner represents a "LastOrgOwner" kind of error.
 type ErrLastOrgOwner struct {
 	UID int64
 }
 
+// IsErrLastOrgOwner checks if an error is a ErrLastOrgOwner.
 func IsErrLastOrgOwner(err error) bool {
 	_, ok := err.(ErrLastOrgOwner)
 	return ok
@@ -320,12 +361,14 @@ func (err ErrLastOrgOwner) Error() string {
 //  |____|_  /\___  >   __/ \____/____  >__||__|  \____/|__|   / ____|
 //         \/     \/|__|              \/                       \/
 
+// ErrRepoNotExist represents a "RepoNotExist" kind of error.
 type ErrRepoNotExist struct {
 	ID   int64
 	UID  int64
 	Name string
 }
 
+// IsErrRepoNotExist checks if an error is a ErrRepoNotExist.
 func IsErrRepoNotExist(err error) bool {
 	_, ok := err.(ErrRepoNotExist)
 	return ok
@@ -335,11 +378,13 @@ func (err ErrRepoNotExist) Error() string {
 	return fmt.Sprintf("repository does not exist [id: %d, uid: %d, name: %s]", err.ID, err.UID, err.Name)
 }
 
+// ErrRepoAlreadyExist represents a "RepoAlreadyExist" kind of error.
 type ErrRepoAlreadyExist struct {
 	Uname string
 	Name  string
 }
 
+// IsErrRepoAlreadyExist checks if an error is a ErrRepoAlreadyExist.
 func IsErrRepoAlreadyExist(err error) bool {
 	_, ok := err.(ErrRepoAlreadyExist)
 	return ok
@@ -349,12 +394,14 @@ func (err ErrRepoAlreadyExist) Error() string {
 	return fmt.Sprintf("repository already exists [uname: %s, name: %s]", err.Uname, err.Name)
 }
 
+// ErrInvalidCloneAddr represents a "InvalidCloneAddr" kind of error.
 type ErrInvalidCloneAddr struct {
 	IsURLError         bool
 	IsInvalidPath      bool
 	IsPermissionDenied bool
 }
 
+// IsErrInvalidCloneAddr checks if an error is a ErrInvalidCloneAddr.
 func IsErrInvalidCloneAddr(err error) bool {
 	_, ok := err.(ErrInvalidCloneAddr)
 	return ok
@@ -365,10 +412,12 @@ func (err ErrInvalidCloneAddr) Error() string {
 		err.IsURLError, err.IsInvalidPath, err.IsPermissionDenied)
 }
 
+// ErrUpdateTaskNotExist represents a "UpdateTaskNotExist" kind of error.
 type ErrUpdateTaskNotExist struct {
 	UUID string
 }
 
+// IsErrUpdateTaskNotExist checks if an error is a ErrUpdateTaskNotExist.
 func IsErrUpdateTaskNotExist(err error) bool {
 	_, ok := err.(ErrUpdateTaskNotExist)
 	return ok
@@ -378,10 +427,12 @@ func (err ErrUpdateTaskNotExist) Error() string {
 	return fmt.Sprintf("update task does not exist [uuid: %s]", err.UUID)
 }
 
+// ErrReleaseAlreadyExist represents a "ReleaseAlreadyExist" kind of error.
 type ErrReleaseAlreadyExist struct {
 	TagName string
 }
 
+// IsErrReleaseAlreadyExist checks if an error is a ErrReleaseAlreadyExist.
 func IsErrReleaseAlreadyExist(err error) bool {
 	_, ok := err.(ErrReleaseAlreadyExist)
 	return ok
@@ -391,11 +442,13 @@ func (err ErrReleaseAlreadyExist) Error() string {
 	return fmt.Sprintf("release tag already exist [tag_name: %s]", err.TagName)
 }
 
+// ErrReleaseNotExist represents a "ReleaseNotExist" kind of error.
 type ErrReleaseNotExist struct {
 	ID      int64
 	TagName string
 }
 
+// IsErrReleaseNotExist checks if an error is a ErrReleaseNotExist.
 func IsErrReleaseNotExist(err error) bool {
 	_, ok := err.(ErrReleaseNotExist)
 	return ok
@@ -405,10 +458,12 @@ func (err ErrReleaseNotExist) Error() string {
 	return fmt.Sprintf("release tag does not exist [id: %d, tag_name: %s]", err.ID, err.TagName)
 }
 
+// ErrInvalidTagName represents a "InvalidTagName" kind of error.
 type ErrInvalidTagName struct {
 	TagName string
 }
 
+// IsErrInvalidTagName checks if an error is a ErrInvalidTagName.
 func IsErrInvalidTagName(err error) bool {
 	_, ok := err.(ErrInvalidTagName)
 	return ok
@@ -418,10 +473,12 @@ func (err ErrInvalidTagName) Error() string {
 	return fmt.Sprintf("release tag name is not valid [tag_name: %s]", err.TagName)
 }
 
+// ErrRepoFileAlreadyExist represents a "RepoFileAlreadyExist" kind of error.
 type ErrRepoFileAlreadyExist struct {
 	FileName string
 }
 
+// IsErrRepoFileAlreadyExist checks if an error is a ErrRepoFileAlreadyExist.
 func IsErrRepoFileAlreadyExist(err error) bool {
 	_, ok := err.(ErrRepoFileAlreadyExist)
 	return ok
@@ -438,10 +495,12 @@ func (err ErrRepoFileAlreadyExist) Error() string {
 //  |______  / |__|  (____  /___|  /\___  >___|  /
 //         \/             \/     \/     \/     \/
 
+// ErrBranchNotExist represents a "BranchNotExist" kind of error.
 type ErrBranchNotExist struct {
 	Name string
 }
 
+// IsErrBranchNotExist checks if an error is a ErrBranchNotExist.
 func IsErrBranchNotExist(err error) bool {
 	_, ok := err.(ErrBranchNotExist)
 	return ok
@@ -458,10 +517,12 @@ func (err ErrBranchNotExist) Error() string {
 //   \__/\  /  \___  >___  /___|  /\____/ \____/|__|_ \
 //        \/       \/    \/     \/                   \/
 
+// ErrWebhookNotExist represents a "WebhookNotExist" kind of error.
 type ErrWebhookNotExist struct {
 	ID int64
 }
 
+// IsErrWebhookNotExist checks if an error is a ErrWebhookNotExist.
 func IsErrWebhookNotExist(err error) bool {
 	_, ok := err.(ErrWebhookNotExist)
 	return ok
@@ -478,12 +539,14 @@ func (err ErrWebhookNotExist) Error() string {
 // |___/____  >____  >____/  \___  >
 //          \/     \/            \/
 
+// ErrIssueNotExist represents a "IssueNotExist" kind of error.
 type ErrIssueNotExist struct {
 	ID     int64
 	RepoID int64
 	Index  int64
 }
 
+// IsErrIssueNotExist checks if an error is a ErrIssueNotExist.
 func IsErrIssueNotExist(err error) bool {
 	_, ok := err.(ErrIssueNotExist)
 	return ok
@@ -500,6 +563,7 @@ func (err ErrIssueNotExist) Error() string {
 //  |____|   |____/|____/____/____|_  /\___  >__   |____/  \___  >____  > |__|
 //                                  \/     \/   |__|           \/     \/
 
+// ErrPullRequestNotExist represents a "PullRequestNotExist" kind of error.
 type ErrPullRequestNotExist struct {
 	ID         int64
 	IssueID    int64
@@ -509,6 +573,7 @@ type ErrPullRequestNotExist struct {
 	BaseBranch string
 }
 
+// IsErrPullRequestNotExist checks if an error is a ErrPullRequestNotExist.
 func IsErrPullRequestNotExist(err error) bool {
 	_, ok := err.(ErrPullRequestNotExist)
 	return ok
@@ -526,11 +591,13 @@ func (err ErrPullRequestNotExist) Error() string {
 //  \______  /\____/|__|_|  /__|_|  /\___  >___|  /__|
 //         \/             \/      \/     \/     \/
 
+// ErrCommentNotExist represents a "CommentNotExist" kind of error.
 type ErrCommentNotExist struct {
 	ID      int64
 	IssueID int64
 }
 
+// IsErrCommentNotExist checks if an error is a ErrCommentNotExist.
 func IsErrCommentNotExist(err error) bool {
 	_, ok := err.(ErrCommentNotExist)
 	return ok
@@ -547,11 +614,13 @@ func (err ErrCommentNotExist) Error() string {
 // |_______ (____  /___  /\___  >____/
 //         \/    \/    \/     \/
 
+// ErrLabelNotExist represents a "LabelNotExist" kind of error.
 type ErrLabelNotExist struct {
 	LabelID int64
 	RepoID  int64
 }
 
+// IsErrLabelNotExist checks if an error is a ErrLabelNotExist.
 func IsErrLabelNotExist(err error) bool {
 	_, ok := err.(ErrLabelNotExist)
 	return ok
@@ -568,11 +637,13 @@ func (err ErrLabelNotExist) Error() string {
 // \____|__  /__|____/\___  >____  > |__|  \____/|___|  /\___  >
 //         \/             \/     \/                   \/     \/
 
+// ErrMilestoneNotExist represents a "MilestoneNotExist" kind of error.
 type ErrMilestoneNotExist struct {
 	ID     int64
 	RepoID int64
 }
 
+// IsErrMilestoneNotExist checks if an error is a ErrMilestoneNotExist.
 func IsErrMilestoneNotExist(err error) bool {
 	_, ok := err.(ErrMilestoneNotExist)
 	return ok
@@ -589,11 +660,13 @@ func (err ErrMilestoneNotExist) Error() string {
 // \____|__  /__|  |__| (____  /\___  >___|  /__|_|  /\___  >___|  /__|
 //         \/                \/     \/     \/      \/     \/     \/
 
+// ErrAttachmentNotExist represents a "AttachmentNotExist" kind of error.
 type ErrAttachmentNotExist struct {
 	ID   int64
 	UUID string
 }
 
+// IsErrAttachmentNotExist checks if an error is a ErrAttachmentNotExist.
 func IsErrAttachmentNotExist(err error) bool {
 	_, ok := err.(ErrAttachmentNotExist)
 	return ok
@@ -610,10 +683,12 @@ func (err ErrAttachmentNotExist) Error() string {
 // |_______ \____/\___  /|__|___|  / /_______  /\____/|____/ |__|    \___  >___  >
 //         \/    /_____/         \/          \/                          \/    \/
 
+// ErrLoginSourceNotExist represents a "LoginSourceNotExist" kind of error.
 type ErrLoginSourceNotExist struct {
 	ID int64
 }
 
+// IsErrLoginSourceNotExist checks if an error is a ErrLoginSourceNotExist.
 func IsErrLoginSourceNotExist(err error) bool {
 	_, ok := err.(ErrLoginSourceNotExist)
 	return ok
@@ -623,10 +698,12 @@ func (err ErrLoginSourceNotExist) Error() string {
 	return fmt.Sprintf("login source does not exist [id: %d]", err.ID)
 }
 
+// ErrLoginSourceAlreadyExist represents a "LoginSourceAlreadyExist" kind of error.
 type ErrLoginSourceAlreadyExist struct {
 	Name string
 }
 
+// IsErrLoginSourceAlreadyExist checks if an error is a ErrLoginSourceAlreadyExist.
 func IsErrLoginSourceAlreadyExist(err error) bool {
 	_, ok := err.(ErrLoginSourceAlreadyExist)
 	return ok
@@ -636,10 +713,12 @@ func (err ErrLoginSourceAlreadyExist) Error() string {
 	return fmt.Sprintf("login source already exists [name: %s]", err.Name)
 }
 
+// ErrLoginSourceInUse represents a "LoginSourceInUse" kind of error.
 type ErrLoginSourceInUse struct {
 	ID int64
 }
 
+// IsErrLoginSourceInUse checks if an error is a ErrLoginSourceInUse.
 func IsErrLoginSourceInUse(err error) bool {
 	_, ok := err.(ErrLoginSourceInUse)
 	return ok
@@ -656,11 +735,13 @@ func (err ErrLoginSourceInUse) Error() string {
 //   |____| \___  >____  /__|_|  /
 //              \/     \/      \/
 
+// ErrTeamAlreadyExist represents a "TeamAlreadyExist" kind of error.
 type ErrTeamAlreadyExist struct {
 	OrgID int64
 	Name  string
 }
 
+// IsErrTeamAlreadyExist checks if an error is a ErrTeamAlreadyExist.
 func IsErrTeamAlreadyExist(err error) bool {
 	_, ok := err.(ErrTeamAlreadyExist)
 	return ok
@@ -678,11 +759,13 @@ func (err ErrTeamAlreadyExist) Error() string {
 //           |__|                   \/      \/
 //
 
+// ErrUploadNotExist represents a "UploadNotExist" kind of error.
 type ErrUploadNotExist struct {
 	ID   int64
 	UUID string
 }
 
+// IsErrUploadNotExist checks if an error is a ErrUploadNotExist.
 func IsErrUploadNotExist(err error) bool {
 	_, ok := err.(ErrAttachmentNotExist)
 	return ok