diff --git a/.golangci.yml b/.golangci.yml
index 4ad9c9d4cb2d..11c58454a007 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -19,6 +19,11 @@ linters:
     - revive
     - gofumpt
     - depguard
+    - nakedret
+    - unconvert
+    - wastedassign
+    - nolintlint
+    - stylecheck
   enable-all: false
   disable-all: true
   fast: false
@@ -32,6 +37,10 @@ run:
     - web_src
 
 linters-settings:
+  stylecheck:
+    checks: ["all", "-ST1005", "-ST1003"]
+  nakedret:
+    max-func-lines: 0 
   gocritic:
     disabled-checks:
       - ifElseChain
diff --git a/cmd/hook.go b/cmd/hook.go
index 73386038b375..ab6d48b5458f 100644
--- a/cmd/hook.go
+++ b/cmd/hook.go
@@ -792,7 +792,7 @@ func writeDataPktLine(out io.Writer, data []byte) error {
 	if err != nil {
 		return fail("Internal Server Error", "Pkt-Line response failed: %v", err)
 	}
-	if 4 != lr {
+	if lr != 4 {
 		return fail("Internal Server Error", "Pkt-Line response failed: %v", err)
 	}
 
diff --git a/integrations/api_issue_stopwatch_test.go b/integrations/api_issue_stopwatch_test.go
index 0d0644718106..b4e5f90543a3 100644
--- a/integrations/api_issue_stopwatch_test.go
+++ b/integrations/api_issue_stopwatch_test.go
@@ -38,7 +38,7 @@ func TestAPIListStopWatches(t *testing.T) {
 		assert.EqualValues(t, issue.Title, apiWatches[0].IssueTitle)
 		assert.EqualValues(t, repo.Name, apiWatches[0].RepoName)
 		assert.EqualValues(t, repo.OwnerName, apiWatches[0].RepoOwnerName)
-		assert.Greater(t, int64(apiWatches[0].Seconds), int64(0))
+		assert.Greater(t, apiWatches[0].Seconds, int64(0))
 	}
 }
 
diff --git a/integrations/api_packages_container_test.go b/integrations/api_packages_container_test.go
index 2b5be9dd4c47..1ed80dfd0227 100644
--- a/integrations/api_packages_container_test.go
+++ b/integrations/api_packages_container_test.go
@@ -88,7 +88,7 @@ func TestPackageContainer(t *testing.T) {
 
 			req = NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL))
 			addTokenAuthHeader(req, anonymousToken)
-			resp = MakeRequest(t, req, http.StatusOK)
+			MakeRequest(t, req, http.StatusOK)
 		})
 
 		t.Run("User", func(t *testing.T) {
@@ -112,7 +112,7 @@ func TestPackageContainer(t *testing.T) {
 
 			req = NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL))
 			addTokenAuthHeader(req, userToken)
-			resp = MakeRequest(t, req, http.StatusOK)
+			MakeRequest(t, req, http.StatusOK)
 		})
 	})
 
diff --git a/integrations/editor_test.go b/integrations/editor_test.go
index 3ed0e510c4af..c6c5ab2f6185 100644
--- a/integrations/editor_test.go
+++ b/integrations/editor_test.go
@@ -82,7 +82,7 @@ func TestCreateFileOnProtectedBranch(t *testing.T) {
 			"_csrf":     csrf,
 			"protected": "off",
 		})
-		resp = session.MakeRequest(t, req, http.StatusSeeOther)
+		session.MakeRequest(t, req, http.StatusSeeOther)
 		// Check if master branch has been locked successfully
 		flashCookie = session.GetCookie("macaron_flash")
 		assert.NotNil(t, flashCookie)
@@ -109,7 +109,7 @@ func testEditFile(t *testing.T, session *TestSession, user, repo, branch, filePa
 			"commit_choice": "direct",
 		},
 	)
-	resp = session.MakeRequest(t, req, http.StatusSeeOther)
+	session.MakeRequest(t, req, http.StatusSeeOther)
 
 	// Verify the change
 	req = NewRequest(t, "GET", path.Join(user, repo, "raw/branch", branch, filePath))
@@ -139,7 +139,7 @@ func testEditFileToNewBranch(t *testing.T, session *TestSession, user, repo, bra
 			"new_branch_name": targetBranch,
 		},
 	)
-	resp = session.MakeRequest(t, req, http.StatusSeeOther)
+	session.MakeRequest(t, req, http.StatusSeeOther)
 
 	// Verify the change
 	req = NewRequest(t, "GET", path.Join(user, repo, "raw/branch", targetBranch, filePath))
diff --git a/integrations/git_test.go b/integrations/git_test.go
index a3ba7b7aa924..d6bd673822ba 100644
--- a/integrations/git_test.go
+++ b/integrations/git_test.go
@@ -150,7 +150,7 @@ func standardCommitAndPushTest(t *testing.T, dstPath string) (little, big string
 		defer PrintCurrentTest(t)()
 		little, big = commitAndPushTest(t, dstPath, "data-file-")
 	})
-	return
+	return little, big
 }
 
 func lfsCommitAndPushTest(t *testing.T, dstPath string) (littleLFS, bigLFS string) {
@@ -191,7 +191,7 @@ func lfsCommitAndPushTest(t *testing.T, dstPath string) (littleLFS, bigLFS strin
 			lockTest(t, dstPath)
 		})
 	})
-	return
+	return littleLFS, bigLFS
 }
 
 func commitAndPushTest(t *testing.T, dstPath, prefix string) (little, big string) {
@@ -210,7 +210,7 @@ func commitAndPushTest(t *testing.T, dstPath, prefix string) (little, big string
 			big = doCommitAndPush(t, bigSize, dstPath, prefix)
 		})
 	})
-	return
+	return little, big
 }
 
 func rawTest(t *testing.T, ctx *APITestContext, little, big, littleLFS, bigLFS string) {
diff --git a/integrations/integration_test.go b/integrations/integration_test.go
index b0004927f7b5..8a43de7c45fa 100644
--- a/integrations/integration_test.go
+++ b/integrations/integration_test.go
@@ -438,7 +438,7 @@ func getTokenForLoggedInUser(t testing.TB, session *TestSession) string {
 		"_csrf": doc.GetCSRF(),
 		"name":  fmt.Sprintf("api-testing-token-%d", tokenCounter),
 	})
-	resp = session.MakeRequest(t, req, http.StatusSeeOther)
+	session.MakeRequest(t, req, http.StatusSeeOther)
 	req = NewRequest(t, "GET", "/user/settings/applications")
 	resp = session.MakeRequest(t, req, http.StatusOK)
 	htmlDoc := NewHTMLParser(t, resp.Body)
diff --git a/integrations/nonascii_branches_test.go b/integrations/nonascii_branches_test.go
index 5ab7b8526a98..038ada8ca2de 100644
--- a/integrations/nonascii_branches_test.go
+++ b/integrations/nonascii_branches_test.go
@@ -26,7 +26,7 @@ func testSrcRouteRedirect(t *testing.T, session *TestSession, user, repo, route,
 
 	// Perform redirect
 	req = NewRequest(t, "GET", location)
-	resp = session.MakeRequest(t, req, expectedStatus)
+	session.MakeRequest(t, req, expectedStatus)
 }
 
 func setDefaultBranch(t *testing.T, session *TestSession, user, repo, branch string) {
diff --git a/integrations/oauth_test.go b/integrations/oauth_test.go
index 678dfbae2d48..c16bb4e24cda 100644
--- a/integrations/oauth_test.go
+++ b/integrations/oauth_test.go
@@ -197,7 +197,7 @@ func TestAccessTokenExchangeWithBasicAuth(t *testing.T) {
 		"code_verifier": "N1Zo9-8Rfwhkt68r1r29ty8YwIraXR8eh_1Qwxg7yQXsonBt", // test PKCE additionally
 	})
 	req.Header.Add("Authorization", "Basic ZGE3ZGEzYmEtOWExMy00MTY3LTg1NmYtMzg5OWRlMGIwMTM4OmJsYWJsYQ==")
-	resp = MakeRequest(t, req, http.StatusBadRequest)
+	MakeRequest(t, req, http.StatusBadRequest)
 
 	// missing header
 	req = NewRequestWithValues(t, "POST", "/login/oauth/access_token", map[string]string{
@@ -206,7 +206,7 @@ func TestAccessTokenExchangeWithBasicAuth(t *testing.T) {
 		"code":          "authcode",
 		"code_verifier": "N1Zo9-8Rfwhkt68r1r29ty8YwIraXR8eh_1Qwxg7yQXsonBt", // test PKCE additionally
 	})
-	resp = MakeRequest(t, req, http.StatusBadRequest)
+	MakeRequest(t, req, http.StatusBadRequest)
 }
 
 func TestRefreshTokenInvalidation(t *testing.T) {
diff --git a/integrations/repo_fork_test.go b/integrations/repo_fork_test.go
index d701850f140e..5f28e66ac8ba 100644
--- a/integrations/repo_fork_test.go
+++ b/integrations/repo_fork_test.go
@@ -45,7 +45,7 @@ func testRepoFork(t *testing.T, session *TestSession, ownerName, repoName, forkO
 		"uid":       fmt.Sprintf("%d", forkOwner.ID),
 		"repo_name": forkRepoName,
 	})
-	resp = session.MakeRequest(t, req, http.StatusSeeOther)
+	session.MakeRequest(t, req, http.StatusSeeOther)
 
 	// Step4: check the existence of the forked repo
 	req = NewRequestf(t, "GET", "/%s/%s", forkOwnerName, forkRepoName)
diff --git a/integrations/repo_generate_test.go b/integrations/repo_generate_test.go
index 4fbbb56c50d9..0123932a749b 100644
--- a/integrations/repo_generate_test.go
+++ b/integrations/repo_generate_test.go
@@ -46,7 +46,7 @@ func testRepoGenerate(t *testing.T, session *TestSession, templateOwnerName, tem
 		"repo_name":   generateRepoName,
 		"git_content": "true",
 	})
-	resp = session.MakeRequest(t, req, http.StatusSeeOther)
+	session.MakeRequest(t, req, http.StatusSeeOther)
 
 	// Step4: check the existence of the generated repo
 	req = NewRequestf(t, "GET", "/%s/%s", generateOwnerName, generateRepoName)
diff --git a/integrations/user_test.go b/integrations/user_test.go
index 6a3d30472dca..41127a4e4094 100644
--- a/integrations/user_test.go
+++ b/integrations/user_test.go
@@ -245,6 +245,6 @@ func TestListStopWatches(t *testing.T) {
 		assert.EqualValues(t, issue.Title, apiWatches[0].IssueTitle)
 		assert.EqualValues(t, repo.Name, apiWatches[0].RepoName)
 		assert.EqualValues(t, repo.OwnerName, apiWatches[0].RepoOwnerName)
-		assert.Greater(t, int64(apiWatches[0].Seconds), int64(0))
+		assert.Greater(t, apiWatches[0].Seconds, int64(0))
 	}
 }
diff --git a/models/action.go b/models/action.go
index 78cc93e1a214..791759f7e821 100644
--- a/models/action.go
+++ b/models/action.go
@@ -459,7 +459,7 @@ func DeleteOldActions(olderThan time.Duration) (err error) {
 	}
 
 	_, err = db.GetEngine(db.DefaultContext).Where("created_unix < ?", time.Now().Add(-olderThan).Unix()).Delete(&Action{})
-	return
+	return err
 }
 
 func notifyWatchers(ctx context.Context, actions ...*Action) error {
diff --git a/models/admin/notice.go b/models/admin/notice.go
index 77277e4b2d87..4d385cf951fc 100644
--- a/models/admin/notice.go
+++ b/models/admin/notice.go
@@ -142,5 +142,5 @@ func DeleteOldSystemNotices(olderThan time.Duration) (err error) {
 	}
 
 	_, err = db.GetEngine(db.DefaultContext).Where("created_unix < ?", time.Now().Add(-olderThan).Unix()).Delete(&Notice{})
-	return
+	return err
 }
diff --git a/models/asymkey/gpg_key_commit_verification.go b/models/asymkey/gpg_key_commit_verification.go
index 2f66863091ae..d5b06f83fd97 100644
--- a/models/asymkey/gpg_key_commit_verification.go
+++ b/models/asymkey/gpg_key_commit_verification.go
@@ -520,5 +520,5 @@ func CalculateTrustStatus(verification *CommitVerification, repoTrustModel repo_
 		}
 	}
 
-	return
+	return err
 }
diff --git a/models/asymkey/ssh_key_test.go b/models/asymkey/ssh_key_test.go
index 71c8860f1cae..adffedd0b6ea 100644
--- a/models/asymkey/ssh_key_test.go
+++ b/models/asymkey/ssh_key_test.go
@@ -317,7 +317,7 @@ func TestFromOpenSSH(t *testing.T) {
 			td := t.TempDir()
 
 			data := []byte("hello, ssh world")
-			dataPath := write(t, []byte(data), td, "data")
+			dataPath := write(t, data, td, "data")
 
 			privPath := write(t, []byte(tt.priv), td, "id")
 			write(t, []byte(tt.pub), td, "id.pub")
@@ -372,14 +372,14 @@ func TestToOpenSSH(t *testing.T) {
 			td := t.TempDir()
 
 			data := []byte("hello, ssh world")
-			write(t, []byte(data), td, "data")
+			write(t, data, td, "data")
 
 			armored, err := sshsig.Sign([]byte(tt.priv), bytes.NewReader(data), "file")
 			if err != nil {
 				t.Fatal(err)
 			}
 
-			sigPath := write(t, []byte(armored), td, "oursig")
+			sigPath := write(t, armored, td, "oursig")
 
 			// Create an allowed_signers file with two keys to check against.
 			allowedSigner := "test@rekor.dev " + tt.pub + "\n"
diff --git a/models/auth/oauth2.go b/models/auth/oauth2.go
index c5c6e91120f8..5a58ec62b7d1 100644
--- a/models/auth/oauth2.go
+++ b/models/auth/oauth2.go
@@ -123,7 +123,7 @@ func GetOAuth2ApplicationByClientID(ctx context.Context, clientID string) (app *
 	if !has {
 		return nil, ErrOAuthClientIDInvalid{ClientID: clientID}
 	}
-	return
+	return app, err
 }
 
 // GetOAuth2ApplicationByID returns the oauth2 application with the given id. Returns an error if not found.
@@ -143,7 +143,7 @@ func GetOAuth2ApplicationByID(ctx context.Context, id int64) (app *OAuth2Applica
 func GetOAuth2ApplicationsByUserID(ctx context.Context, userID int64) (apps []*OAuth2Application, err error) {
 	apps = make([]*OAuth2Application, 0)
 	err = db.GetEngine(ctx).Where("uid = ?", userID).Find(&apps)
-	return
+	return apps, err
 }
 
 // CreateOAuth2ApplicationOptions holds options to create an oauth2 application
@@ -300,7 +300,7 @@ func (code *OAuth2AuthorizationCode) GenerateRedirectURI(state string) (redirect
 	}
 	q.Set("code", code.Code)
 	redirect.RawQuery = q.Encode()
-	return
+	return redirect, err
 }
 
 // Invalidate deletes the auth code from the database to invalidate this code
@@ -430,7 +430,7 @@ func GetOAuth2GrantByID(ctx context.Context, id int64) (grant *OAuth2Grant, err
 	} else if !has {
 		return nil, nil
 	}
-	return
+	return grant, err
 }
 
 // GetOAuth2GrantsByUserID lists all grants of a certain user
diff --git a/models/db/engine.go b/models/db/engine.go
index 8a3b4b206e48..93cf5ad8bc06 100755
--- a/models/db/engine.go
+++ b/models/db/engine.go
@@ -285,5 +285,5 @@ func DeleteAllRecords(tableName string) error {
 // GetMaxID will return max id of the table
 func GetMaxID(beanOrTableName interface{}) (maxID int64, err error) {
 	_, err = x.Select("MAX(id)").Table(beanOrTableName).Get(&maxID)
-	return
+	return maxID, err
 }
diff --git a/models/db/index.go b/models/db/index.go
index 9b164db1fa6d..673c382b27fc 100644
--- a/models/db/index.go
+++ b/models/db/index.go
@@ -44,7 +44,7 @@ func UpsertResourceIndex(ctx context.Context, tableName string, groupID int64) (
 	default:
 		return fmt.Errorf("database type not supported")
 	}
-	return
+	return err
 }
 
 var (
diff --git a/models/db/list_options.go b/models/db/list_options.go
index d1d52b6667e4..54f6d945c81f 100644
--- a/models/db/list_options.go
+++ b/models/db/list_options.go
@@ -58,7 +58,7 @@ func (opts *ListOptions) GetSkipTake() (skip, take int) {
 func (opts *ListOptions) GetStartEnd() (start, end int) {
 	start, take := opts.GetSkipTake()
 	end = start + take
-	return
+	return start, end
 }
 
 // SetDefaultValues sets default values
diff --git a/models/db/sql_postgres_with_schema.go b/models/db/sql_postgres_with_schema.go
index d6b6262927c4..4bbd12bdebc5 100644
--- a/models/db/sql_postgres_with_schema.go
+++ b/models/db/sql_postgres_with_schema.go
@@ -44,7 +44,7 @@ func (d *postgresSchemaDriver) Open(name string) (driver.Conn, error) {
 		_, err := execer.Exec(`SELECT set_config(
 			'search_path',
 			$1 || ',' || current_setting('search_path'),
-			false)`, []driver.Value{schemaValue}) //nolint
+			false)`, []driver.Value{schemaValue})
 		if err != nil {
 			_ = conn.Close()
 			return nil, err
diff --git a/models/git/branches.go b/models/git/branches.go
index 0a44c0a68da6..7f05a566769b 100644
--- a/models/git/branches.go
+++ b/models/git/branches.go
@@ -363,7 +363,7 @@ func updateApprovalWhitelist(ctx context.Context, repo *repo_model.Repository, c
 		whitelist = append(whitelist, userID)
 	}
 
-	return
+	return whitelist, err
 }
 
 // updateUserWhitelist checks whether the user whitelist changed and returns a whitelist with
@@ -392,7 +392,7 @@ func updateUserWhitelist(ctx context.Context, repo *repo_model.Repository, curre
 		whitelist = append(whitelist, userID)
 	}
 
-	return
+	return whitelist, err
 }
 
 // updateTeamWhitelist checks whether the team whitelist changed and returns a whitelist with
@@ -415,7 +415,7 @@ func updateTeamWhitelist(ctx context.Context, repo *repo_model.Repository, curre
 		}
 	}
 
-	return
+	return whitelist, err
 }
 
 // DeleteProtectedBranch removes ProtectedBranch relation between the user and repository.
@@ -539,7 +539,7 @@ func FindRenamedBranch(repoID int64, from string) (branch *RenamedBranch, exist
 	}
 	exist, err = db.GetEngine(db.DefaultContext).Get(branch)
 
-	return
+	return branch, exist, err
 }
 
 // RenameBranch rename a branch
diff --git a/models/git/commit_status.go b/models/git/commit_status.go
index 54a7b4319944..9e24221862eb 100644
--- a/models/git/commit_status.go
+++ b/models/git/commit_status.go
@@ -74,7 +74,7 @@ func upsertCommitStatusIndex(ctx context.Context, repoID int64, sha string) (err
 	default:
 		return fmt.Errorf("database type not supported")
 	}
-	return
+	return err
 }
 
 // GetNextCommitStatusIndex retried 3 times to generate a resource index
diff --git a/models/issues/assignees.go b/models/issues/assignees.go
index 5921112feaf4..7f589f5d7e8b 100644
--- a/models/issues/assignees.go
+++ b/models/issues/assignees.go
@@ -42,7 +42,7 @@ func (issue *Issue) LoadAssignees(ctx context.Context) (err error) {
 	if len(issue.Assignees) > 0 {
 		issue.Assignee = issue.Assignees[0]
 	}
-	return
+	return err
 }
 
 // GetAssigneeIDsByIssue returns the IDs of users assigned to an issue
@@ -167,5 +167,5 @@ func MakeIDsFromAPIAssigneesToAdd(oneAssignee string, multipleAssignees []string
 	// Get the IDs of all assignees
 	assigneeIDs, err = user_model.GetUserIDsByNames(requestAssignees, false)
 
-	return
+	return assigneeIDs, err
 }
diff --git a/models/issues/comment.go b/models/issues/comment.go
index a4e69e7118f3..a71afda9e0e8 100644
--- a/models/issues/comment.go
+++ b/models/issues/comment.go
@@ -315,7 +315,7 @@ func (c *Comment) LoadIssueCtx(ctx context.Context) (err error) {
 		return nil
 	}
 	c.Issue, err = GetIssueByID(ctx, c.IssueID)
-	return
+	return err
 }
 
 // BeforeInsert will be invoked by XORM before inserting a record
@@ -627,7 +627,7 @@ func (c *Comment) LoadResolveDoer() (err error) {
 			err = nil
 		}
 	}
-	return
+	return err
 }
 
 // IsResolved check if an code comment is resolved
@@ -955,7 +955,7 @@ func createIssueDependencyComment(ctx context.Context, doer *user_model.User, is
 		DependentIssueID: issue.ID,
 	}
 	_, err = CreateCommentCtx(ctx, opts)
-	return
+	return err
 }
 
 // CreateCommentOptions defines options for creating comment
@@ -1350,7 +1350,7 @@ func CreatePushPullComment(ctx context.Context, pusher *user_model.User, pr *Pul
 
 	comment, err = CreateComment(ops)
 
-	return
+	return comment, err
 }
 
 // CreateAutoMergeComment is a internal function, only use it for CommentTypePRScheduledToAutoMerge and CommentTypePRUnScheduledToAutoMerge CommentTypes
@@ -1372,7 +1372,7 @@ func CreateAutoMergeComment(ctx context.Context, typ CommentType, pr *PullReques
 		Repo:  pr.BaseRepo,
 		Issue: pr.Issue,
 	})
-	return
+	return comment, err
 }
 
 // getCommitsFromRepo get commit IDs from repo in between oldCommitID and newCommitID
@@ -1434,7 +1434,7 @@ func getCommitIDsFromRepo(ctx context.Context, repo *repo_model.Repository, oldC
 		}
 	}
 
-	return
+	return commitIDs, isForcePush, err
 }
 
 type commitBranchCheckItem struct {
diff --git a/models/issues/issue.go b/models/issues/issue.go
index 76a0ea7d0cb5..064f0d22abd0 100644
--- a/models/issues/issue.go
+++ b/models/issues/issue.go
@@ -223,7 +223,7 @@ func (issue *Issue) GetPullRequest() (pr *PullRequest, err error) {
 		return nil, err
 	}
 	pr.Issue = issue
-	return
+	return pr, err
 }
 
 // LoadLabels loads labels
@@ -255,7 +255,7 @@ func (issue *Issue) loadPoster(ctx context.Context) (err error) {
 			return
 		}
 	}
-	return
+	return err
 }
 
 func (issue *Issue) loadPullRequest(ctx context.Context) (err error) {
@@ -311,7 +311,7 @@ func (issue *Issue) loadReactions(ctx context.Context) (err error) {
 		return err
 	}
 	// Load reaction user data
-	if _, err := ReactionList(reactions).LoadUsers(ctx, issue.Repo); err != nil {
+	if _, err := reactions.LoadUsers(ctx, issue.Repo); err != nil {
 		return err
 	}
 
@@ -2110,7 +2110,7 @@ func updateIssueClosedNum(ctx context.Context, issue *Issue) (err error) {
 	} else {
 		err = repo_model.StatsCorrectNumClosed(ctx, issue.RepoID, false, "num_closed_issues")
 	}
-	return
+	return err
 }
 
 // FindAndUpdateIssueMentions finds users mentioned in the given content string, and saves them in the database.
@@ -2123,7 +2123,7 @@ func FindAndUpdateIssueMentions(ctx context.Context, issue *Issue, doer *user_mo
 	if err = UpdateIssueMentions(ctx, issue.ID, mentions); err != nil {
 		return nil, fmt.Errorf("UpdateIssueMentions [%d]: %v", issue.ID, err)
 	}
-	return
+	return mentions, err
 }
 
 // ResolveIssueMentionsByVisibility returns the users mentioned in an issue, removing those that
@@ -2257,7 +2257,7 @@ func ResolveIssueMentionsByVisibility(ctx context.Context, issue *Issue, doer *u
 		users = append(users, user)
 	}
 
-	return
+	return users, err
 }
 
 // UpdateIssuesMigrationsByType updates all migrated repositories' issues from gitServiceType to replace originalAuthorID to posterID
@@ -2380,7 +2380,7 @@ func DeleteIssuesByRepoID(ctx context.Context, repoID int64) (attachmentPaths []
 		return
 	}
 
-	return
+	return attachmentPaths, err
 }
 
 // RemapExternalUser ExternalUserRemappable interface
diff --git a/models/issues/issue_project.go b/models/issues/issue_project.go
index 5e0a337f7d63..b83665c2bbc0 100644
--- a/models/issues/issue_project.go
+++ b/models/issues/issue_project.go
@@ -14,32 +14,32 @@ import (
 )
 
 // LoadProject load the project the issue was assigned to
-func (i *Issue) LoadProject() (err error) {
-	return i.loadProject(db.DefaultContext)
+func (issue *Issue) LoadProject() (err error) {
+	return issue.loadProject(db.DefaultContext)
 }
 
-func (i *Issue) loadProject(ctx context.Context) (err error) {
-	if i.Project == nil {
+func (issue *Issue) loadProject(ctx context.Context) (err error) {
+	if issue.Project == nil {
 		var p project_model.Project
 		if _, err = db.GetEngine(ctx).Table("project").
 			Join("INNER", "project_issue", "project.id=project_issue.project_id").
-			Where("project_issue.issue_id = ?", i.ID).
+			Where("project_issue.issue_id = ?", issue.ID).
 			Get(&p); err != nil {
 			return err
 		}
-		i.Project = &p
+		issue.Project = &p
 	}
-	return
+	return err
 }
 
 // ProjectID return project id if issue was assigned to one
-func (i *Issue) ProjectID() int64 {
-	return i.projectID(db.DefaultContext)
+func (issue *Issue) ProjectID() int64 {
+	return issue.projectID(db.DefaultContext)
 }
 
-func (i *Issue) projectID(ctx context.Context) int64 {
+func (issue *Issue) projectID(ctx context.Context) int64 {
 	var ip project_model.ProjectIssue
-	has, err := db.GetEngine(ctx).Where("issue_id=?", i.ID).Get(&ip)
+	has, err := db.GetEngine(ctx).Where("issue_id=?", issue.ID).Get(&ip)
 	if err != nil || !has {
 		return 0
 	}
@@ -47,13 +47,13 @@ func (i *Issue) projectID(ctx context.Context) int64 {
 }
 
 // ProjectBoardID return project board id if issue was assigned to one
-func (i *Issue) ProjectBoardID() int64 {
-	return i.projectBoardID(db.DefaultContext)
+func (issue *Issue) ProjectBoardID() int64 {
+	return issue.projectBoardID(db.DefaultContext)
 }
 
-func (i *Issue) projectBoardID(ctx context.Context) int64 {
+func (issue *Issue) projectBoardID(ctx context.Context) int64 {
 	var ip project_model.ProjectIssue
-	has, err := db.GetEngine(ctx).Where("issue_id=?", i.ID).Get(&ip)
+	has, err := db.GetEngine(ctx).Where("issue_id=?", issue.ID).Get(&ip)
 	if err != nil || !has {
 		return 0
 	}
diff --git a/models/issues/issue_watch.go b/models/issues/issue_watch.go
index bf907aa8fd79..cb9d7e7125e9 100644
--- a/models/issues/issue_watch.go
+++ b/models/issues/issue_watch.go
@@ -65,7 +65,7 @@ func GetIssueWatch(ctx context.Context, userID, issueID int64) (iw *IssueWatch,
 		Where("user_id = ?", userID).
 		And("issue_id = ?", issueID).
 		Get(iw)
-	return
+	return iw, exists, err
 }
 
 // CheckIssueWatch check if an user is watching an issue
diff --git a/models/issues/issue_xref.go b/models/issues/issue_xref.go
index f4380a02ec72..6de91058e800 100644
--- a/models/issues/issue_xref.go
+++ b/models/issues/issue_xref.go
@@ -231,46 +231,46 @@ func (issue *Issue) verifyReferencedIssue(stdCtx context.Context, ctx *crossRefe
 }
 
 // AddCrossReferences add cross references
-func (comment *Comment) AddCrossReferences(stdCtx context.Context, doer *user_model.User, removeOld bool) error {
-	if comment.Type != CommentTypeCode && comment.Type != CommentTypeComment {
+func (c *Comment) AddCrossReferences(stdCtx context.Context, doer *user_model.User, removeOld bool) error {
+	if c.Type != CommentTypeCode && c.Type != CommentTypeComment {
 		return nil
 	}
-	if err := comment.LoadIssueCtx(stdCtx); err != nil {
+	if err := c.LoadIssueCtx(stdCtx); err != nil {
 		return err
 	}
 	ctx := &crossReferencesContext{
 		Type:        CommentTypeCommentRef,
 		Doer:        doer,
-		OrigIssue:   comment.Issue,
-		OrigComment: comment,
+		OrigIssue:   c.Issue,
+		OrigComment: c,
 		RemoveOld:   removeOld,
 	}
-	return comment.Issue.createCrossReferences(stdCtx, ctx, "", comment.Content)
+	return c.Issue.createCrossReferences(stdCtx, ctx, "", c.Content)
 }
 
-func (comment *Comment) neuterCrossReferences(ctx context.Context) error {
-	return neuterCrossReferences(ctx, comment.IssueID, comment.ID)
+func (c *Comment) neuterCrossReferences(ctx context.Context) error {
+	return neuterCrossReferences(ctx, c.IssueID, c.ID)
 }
 
 // LoadRefComment loads comment that created this reference from database
-func (comment *Comment) LoadRefComment() (err error) {
-	if comment.RefComment != nil {
+func (c *Comment) LoadRefComment() (err error) {
+	if c.RefComment != nil {
 		return nil
 	}
-	comment.RefComment, err = GetCommentByID(db.DefaultContext, comment.RefCommentID)
-	return
+	c.RefComment, err = GetCommentByID(db.DefaultContext, c.RefCommentID)
+	return err
 }
 
 // LoadRefIssue loads comment that created this reference from database
-func (comment *Comment) LoadRefIssue() (err error) {
-	if comment.RefIssue != nil {
+func (c *Comment) LoadRefIssue() (err error) {
+	if c.RefIssue != nil {
 		return nil
 	}
-	comment.RefIssue, err = GetIssueByID(db.DefaultContext, comment.RefIssueID)
+	c.RefIssue, err = GetIssueByID(db.DefaultContext, c.RefIssueID)
 	if err == nil {
-		err = comment.RefIssue.LoadRepo(db.DefaultContext)
+		err = c.RefIssue.LoadRepo(db.DefaultContext)
 	}
-	return
+	return err
 }
 
 // CommentTypeIsRef returns true if CommentType is a reference from another issue
@@ -279,44 +279,44 @@ func CommentTypeIsRef(t CommentType) bool {
 }
 
 // RefCommentHTMLURL returns the HTML URL for the comment that created this reference
-func (comment *Comment) RefCommentHTMLURL() string {
+func (c *Comment) RefCommentHTMLURL() string {
 	// Edge case for when the reference is inside the title or the description of the referring issue
-	if comment.RefCommentID == 0 {
-		return comment.RefIssueHTMLURL()
+	if c.RefCommentID == 0 {
+		return c.RefIssueHTMLURL()
 	}
-	if err := comment.LoadRefComment(); err != nil { // Silently dropping errors :unamused:
-		log.Error("LoadRefComment(%d): %v", comment.RefCommentID, err)
+	if err := c.LoadRefComment(); err != nil { // Silently dropping errors :unamused:
+		log.Error("LoadRefComment(%d): %v", c.RefCommentID, err)
 		return ""
 	}
-	return comment.RefComment.HTMLURL()
+	return c.RefComment.HTMLURL()
 }
 
 // RefIssueHTMLURL returns the HTML URL of the issue where this reference was created
-func (comment *Comment) RefIssueHTMLURL() string {
-	if err := comment.LoadRefIssue(); err != nil { // Silently dropping errors :unamused:
-		log.Error("LoadRefIssue(%d): %v", comment.RefCommentID, err)
+func (c *Comment) RefIssueHTMLURL() string {
+	if err := c.LoadRefIssue(); err != nil { // Silently dropping errors :unamused:
+		log.Error("LoadRefIssue(%d): %v", c.RefCommentID, err)
 		return ""
 	}
-	return comment.RefIssue.HTMLURL()
+	return c.RefIssue.HTMLURL()
 }
 
 // RefIssueTitle returns the title of the issue where this reference was created
-func (comment *Comment) RefIssueTitle() string {
-	if err := comment.LoadRefIssue(); err != nil { // Silently dropping errors :unamused:
-		log.Error("LoadRefIssue(%d): %v", comment.RefCommentID, err)
+func (c *Comment) RefIssueTitle() string {
+	if err := c.LoadRefIssue(); err != nil { // Silently dropping errors :unamused:
+		log.Error("LoadRefIssue(%d): %v", c.RefCommentID, err)
 		return ""
 	}
-	return comment.RefIssue.Title
+	return c.RefIssue.Title
 }
 
 // RefIssueIdent returns the user friendly identity (e.g. "#1234") of the issue where this reference was created
-func (comment *Comment) RefIssueIdent() string {
-	if err := comment.LoadRefIssue(); err != nil { // Silently dropping errors :unamused:
-		log.Error("LoadRefIssue(%d): %v", comment.RefCommentID, err)
+func (c *Comment) RefIssueIdent() string {
+	if err := c.LoadRefIssue(); err != nil { // Silently dropping errors :unamused:
+		log.Error("LoadRefIssue(%d): %v", c.RefCommentID, err)
 		return ""
 	}
 	// FIXME: check this name for cross-repository references (#7901 if it gets merged)
-	return fmt.Sprintf("#%d", comment.RefIssue.Index)
+	return fmt.Sprintf("#%d", c.RefIssue.Index)
 }
 
 // __________      .__  .__ __________                                     __
diff --git a/models/issues/pull.go b/models/issues/pull.go
index f2ca19b03e9a..52b959688906 100644
--- a/models/issues/pull.go
+++ b/models/issues/pull.go
@@ -323,7 +323,7 @@ func (pr *PullRequest) LoadProtectedBranchCtx(ctx context.Context) (err error) {
 		}
 		pr.ProtectedBranch, err = git_model.GetProtectedBranchBy(ctx, pr.BaseRepo.ID, pr.BaseBranch)
 	}
-	return
+	return err
 }
 
 // ReviewCount represents a count of Reviews
diff --git a/models/issues/review.go b/models/issues/review.go
index ee65bec3f882..1cb99dc3373f 100644
--- a/models/issues/review.go
+++ b/models/issues/review.go
@@ -134,7 +134,7 @@ func (r *Review) LoadCodeComments(ctx context.Context) (err error) {
 		return
 	}
 	r.CodeComments, err = fetchCodeCommentsByReview(ctx, r.Issue, nil, r)
-	return
+	return err
 }
 
 func (r *Review) loadIssue(ctx context.Context) (err error) {
@@ -142,7 +142,7 @@ func (r *Review) loadIssue(ctx context.Context) (err error) {
 		return
 	}
 	r.Issue, err = GetIssueByID(ctx, r.IssueID)
-	return
+	return err
 }
 
 func (r *Review) loadReviewer(ctx context.Context) (err error) {
@@ -150,7 +150,7 @@ func (r *Review) loadReviewer(ctx context.Context) (err error) {
 		return
 	}
 	r.Reviewer, err = user_model.GetUserByIDCtx(ctx, r.ReviewerID)
-	return
+	return err
 }
 
 func (r *Review) loadReviewerTeam(ctx context.Context) (err error) {
@@ -159,7 +159,7 @@ func (r *Review) loadReviewerTeam(ctx context.Context) (err error) {
 	}
 
 	r.ReviewerTeam, err = organization.GetTeamByID(ctx, r.ReviewerTeamID)
-	return
+	return err
 }
 
 // LoadReviewer loads reviewer
@@ -186,7 +186,7 @@ func (r *Review) LoadAttributes(ctx context.Context) (err error) {
 	if err = r.loadReviewerTeam(ctx); err != nil {
 		return
 	}
-	return
+	return err
 }
 
 // GetReviewByID returns the review by the given ID
@@ -537,7 +537,7 @@ func GetReviewByIssueIDAndUserID(ctx context.Context, issueID, userID int64) (*R
 func GetTeamReviewerByIssueIDAndTeamID(ctx context.Context, issueID, teamID int64) (review *Review, err error) {
 	review = new(Review)
 
-	has := false
+	var has bool
 	if has, err = db.GetEngine(ctx).SQL("SELECT * FROM review WHERE id IN (SELECT max(id) as id FROM review WHERE issue_id = ? AND reviewer_team_id = ?)",
 		issueID, teamID).
 		Get(review); err != nil {
@@ -548,21 +548,21 @@ func GetTeamReviewerByIssueIDAndTeamID(ctx context.Context, issueID, teamID int6
 		return nil, ErrReviewNotExist{0}
 	}
 
-	return
+	return review, err
 }
 
 // MarkReviewsAsStale marks existing reviews as stale
 func MarkReviewsAsStale(issueID int64) (err error) {
 	_, err = db.GetEngine(db.DefaultContext).Exec("UPDATE `review` SET stale=? WHERE issue_id=?", true, issueID)
 
-	return
+	return err
 }
 
 // MarkReviewsAsNotStale marks existing reviews as not stale for a giving commit SHA
 func MarkReviewsAsNotStale(issueID int64, commitID string) (err error) {
 	_, err = db.GetEngine(db.DefaultContext).Exec("UPDATE `review` SET stale=? WHERE issue_id=? AND commit_id=?", false, issueID, commitID)
 
-	return
+	return err
 }
 
 // DismissReview change the dismiss status of a review
@@ -579,7 +579,7 @@ func DismissReview(review *Review, isDismiss bool) (err error) {
 
 	_, err = db.GetEngine(db.DefaultContext).ID(review.ID).Cols("dismissed").Update(review)
 
-	return
+	return err
 }
 
 // InsertReviews inserts review and review comments
diff --git a/models/issues/stopwatch.go b/models/issues/stopwatch.go
index e7ac1314e9b5..0a7ad41f9ced 100644
--- a/models/issues/stopwatch.go
+++ b/models/issues/stopwatch.go
@@ -63,7 +63,7 @@ func getStopwatch(ctx context.Context, userID, issueID int64) (sw *Stopwatch, ex
 		Where("user_id = ?", userID).
 		And("issue_id = ?", issueID).
 		Get(sw)
-	return
+	return sw, exists, err
 }
 
 // UserIDCount is a simple coalition of UserID and Count
@@ -130,7 +130,7 @@ func HasUserStopwatch(ctx context.Context, userID int64) (exists bool, sw *Stopw
 	exists, err = db.GetEngine(ctx).
 		Where("user_id = ?", userID).
 		Get(sw)
-	return
+	return exists, sw, err
 }
 
 // FinishIssueStopwatchIfPossible if stopwatch exist then finish it otherwise ignore
diff --git a/models/issues/tracked_time.go b/models/issues/tracked_time.go
index 54179bd3abef..9f8767362fab 100644
--- a/models/issues/tracked_time.go
+++ b/models/issues/tracked_time.go
@@ -63,7 +63,7 @@ func (t *TrackedTime) loadAttributes(ctx context.Context) (err error) {
 			return
 		}
 	}
-	return
+	return err
 }
 
 // LoadAttributes load Issue, User
@@ -73,7 +73,7 @@ func (tl TrackedTimeList) LoadAttributes() (err error) {
 			return err
 		}
 	}
-	return
+	return err
 }
 
 // FindTrackedTimesOptions represent the filters for tracked times. If an ID is 0 it will be ignored.
@@ -130,7 +130,7 @@ func (opts *FindTrackedTimesOptions) toSession(e db.Engine) db.Engine {
 // GetTrackedTimes returns all tracked times that fit to the given options.
 func GetTrackedTimes(ctx context.Context, options *FindTrackedTimesOptions) (trackedTimes TrackedTimeList, err error) {
 	err = options.toSession(db.GetEngine(ctx)).Find(&trackedTimes)
-	return
+	return trackedTimes, err
 }
 
 // CountTrackedTimes returns count of tracked times that fit to the given options.
@@ -291,7 +291,7 @@ func deleteTimes(ctx context.Context, opts FindTrackedTimesOptions) (removedTime
 	}
 
 	_, err = opts.toSession(db.GetEngine(ctx)).Table("tracked_time").Cols("deleted").Update(&TrackedTime{Deleted: true})
-	return
+	return removedTime, err
 }
 
 func deleteTime(ctx context.Context, t *TrackedTime) error {
diff --git a/models/migrations/v143.go b/models/migrations/v143.go
index 93237ebfcd2e..17f3af44974a 100644
--- a/models/migrations/v143.go
+++ b/models/migrations/v143.go
@@ -48,5 +48,5 @@ func recalculateStars(x *xorm.Engine) (err error) {
 
 	log.Debug("recalculate Stars number for all user finished")
 
-	return
+	return err
 }
diff --git a/models/migrations/v180.go b/models/migrations/v180.go
index 492c91f1b926..4468a7107801 100644
--- a/models/migrations/v180.go
+++ b/models/migrations/v180.go
@@ -66,7 +66,7 @@ func deleteMigrationCredentials(x *xorm.Engine) (err error) {
 			return
 		}
 	}
-	return
+	return err
 }
 
 func removeCredentials(payload string) (string, error) {
diff --git a/models/migrations/v189.go b/models/migrations/v189.go
index f136a89b4ef8..823e27e2ea0f 100644
--- a/models/migrations/v189.go
+++ b/models/migrations/v189.go
@@ -81,7 +81,7 @@ func unwrapLDAPSourceCfg(x *xorm.Engine) error {
 			}
 			err := jsonUnmarshalHandleDoubleEncode([]byte(source.Cfg), &wrapped)
 			if err != nil {
-				return fmt.Errorf("failed to unmarshal %s: %w", string(source.Cfg), err)
+				return fmt.Errorf("failed to unmarshal %s: %w", source.Cfg, err)
 			}
 			if wrapped.Source != nil && len(wrapped.Source) > 0 {
 				bs, err := json.Marshal(wrapped.Source)
diff --git a/models/notification.go b/models/notification.go
index 3f0e374b8373..fdc4ffad1326 100644
--- a/models/notification.go
+++ b/models/notification.go
@@ -131,7 +131,7 @@ func (opts *FindNotificationOptions) ToSession(ctx context.Context) *xorm.Sessio
 // GetNotifications returns all notifications that fit to the given options.
 func GetNotifications(ctx context.Context, options *FindNotificationOptions) (nl NotificationList, err error) {
 	err = options.ToSession(ctx).OrderBy("notification.updated_unix DESC").Find(&nl)
-	return
+	return nl, err
 }
 
 // CountNotifications count all notifications that fit to the given options and ignore pagination.
@@ -291,7 +291,7 @@ func getNotificationsByIssueID(ctx context.Context, issueID int64) (notification
 	err = db.GetEngine(ctx).
 		Where("issue_id = ?", issueID).
 		Find(&notifications)
-	return
+	return notifications, err
 }
 
 func notificationExists(notifications []*Notification, issueID, userID int64) bool {
@@ -370,7 +370,7 @@ func NotificationsForUser(ctx context.Context, user *user_model.User, statuses [
 	}
 
 	err = sess.Find(&notifications)
-	return
+	return notifications, err
 }
 
 // CountUnread count unread notifications for a user
@@ -401,7 +401,7 @@ func (n *Notification) loadAttributes(ctx context.Context) (err error) {
 	if err = n.loadComment(ctx); err != nil {
 		return
 	}
-	return
+	return err
 }
 
 func (n *Notification) loadRepo(ctx context.Context) (err error) {
@@ -730,7 +730,7 @@ func GetNotificationCount(ctx context.Context, user *user_model.User, status Not
 		Where("user_id = ?", user.ID).
 		And("status = ?", status).
 		Count(&Notification{})
-	return
+	return count, err
 }
 
 // UserIDCount is a simple coalition of UserID and Count
diff --git a/models/organization/team.go b/models/organization/team.go
index b32ffa6ca768..0b53c84d6703 100644
--- a/models/organization/team.go
+++ b/models/organization/team.go
@@ -185,7 +185,7 @@ func (t *Team) GetUnitNames() (res []string) {
 	for _, u := range t.Units {
 		res = append(res, unit.Units[u.Type].NameKey)
 	}
-	return
+	return res
 }
 
 // GetUnitsMap returns the team units permissions
@@ -226,7 +226,7 @@ func (t *Team) GetRepositoriesCtx(ctx context.Context) (err error) {
 	t.Repos, err = GetTeamRepositories(ctx, &SearchTeamRepoOptions{
 		TeamID: t.ID,
 	})
-	return
+	return err
 }
 
 // GetMembersCtx returns paginated members in team of organization.
diff --git a/models/packages/package_version.go b/models/packages/package_version.go
index 78e76c50545e..583f832e5eec 100644
--- a/models/packages/package_version.go
+++ b/models/packages/package_version.go
@@ -235,7 +235,7 @@ func (opts *PackageSearchOptions) toConds() builder.Cond {
 	}
 
 	if !opts.HasFiles.IsNone() {
-		var filesCond builder.Cond = builder.Exists(builder.Select("package_file.id").From("package_file").Where(builder.Expr("package_file.version_id = package_version.id")))
+		filesCond := builder.Exists(builder.Select("package_file.id").From("package_file").Where(builder.Expr("package_file.version_id = package_version.id")))
 
 		if opts.HasFiles.IsFalse() {
 			filesCond = builder.Not{filesCond}
diff --git a/models/perm/access/repo_permission.go b/models/perm/access/repo_permission.go
index 6bc1c82703a7..99919c70bfed 100644
--- a/models/perm/access/repo_permission.go
+++ b/models/perm/access/repo_permission.go
@@ -273,7 +273,7 @@ func GetUserRepoPermission(ctx context.Context, repo *repo_model.Repository, use
 		}
 	}
 
-	return
+	return perm, err
 }
 
 // IsUserRealRepoAdmin check if this user is real repo admin
diff --git a/models/project/issue.go b/models/project/issue.go
index 6e6a8c574666..59af7063a546 100644
--- a/models/project/issue.go
+++ b/models/project/issue.go
@@ -103,7 +103,7 @@ func MoveIssuesOnProjectBoard(board *Board, sortedIssueIDs map[int64]int64) erro
 	})
 }
 
-func (pb *Board) removeIssues(ctx context.Context) error {
-	_, err := db.GetEngine(ctx).Exec("UPDATE `project_issue` SET project_board_id = 0 WHERE project_board_id = ? ", pb.ID)
+func (b *Board) removeIssues(ctx context.Context) error {
+	_, err := db.GetEngine(ctx).Exec("UPDATE `project_issue` SET project_board_id = 0 WHERE project_board_id = ? ", b.ID)
 	return err
 }
diff --git a/models/release.go b/models/release.go
index 94e803c71619..b169920f2fda 100644
--- a/models/release.go
+++ b/models/release.go
@@ -132,7 +132,7 @@ func AddReleaseAttachments(ctx context.Context, releaseID int64, attachmentUUIDs
 		}
 	}
 
-	return
+	return err
 }
 
 // GetRelease returns release by given ID.
@@ -305,7 +305,7 @@ func GetReleaseAttachments(ctx context.Context, rels ...*Release) (err error) {
 		sortedRels.Rel[currentIndex].Attachments = append(sortedRels.Rel[currentIndex].Attachments, attachment)
 	}
 
-	return
+	return err
 }
 
 type releaseSorter struct {
diff --git a/models/repo.go b/models/repo.go
index e9d83f5f3272..ca83b03e42ca 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -756,7 +756,7 @@ func DoctorUserStarNum() (err error) {
 
 	log.Debug("recalculate Stars number for all user finished")
 
-	return
+	return err
 }
 
 // DeleteDeployKey delete deploy keys
diff --git a/models/repo/archiver.go b/models/repo/archiver.go
index dc64cce49ba9..fd07d8554d36 100644
--- a/models/repo/archiver.go
+++ b/models/repo/archiver.go
@@ -112,5 +112,5 @@ func FindRepoArchives(opts FindRepoArchiversOption) ([]*RepoArchiver, error) {
 func SetArchiveRepoState(repo *Repository, isArchived bool) (err error) {
 	repo.IsArchived = isArchived
 	_, err = db.GetEngine(db.DefaultContext).Where("id = ?", repo.ID).Cols("is_archived").NoAutoTime().Update(repo)
-	return
+	return err
 }
diff --git a/models/repo/repo.go b/models/repo/repo.go
index f6097d2d6a42..8ef405a66572 100644
--- a/models/repo/repo.go
+++ b/models/repo/repo.go
@@ -280,7 +280,7 @@ func (repo *Repository) CommitLink(commitID string) (result string) {
 	} else {
 		result = repo.HTMLURL() + "/commit/" + url.PathEscape(commitID)
 	}
-	return
+	return result
 }
 
 // APIURL returns the repository API URL
@@ -325,7 +325,7 @@ func (repo *Repository) UnitEnabled(tp unit.Type) (result bool) {
 	}); err != nil {
 		log.Error("repo.UnitEnabled: %v", err)
 	}
-	return
+	return result
 }
 
 // UnitEnabled if this repository has the given unit enabled
@@ -546,7 +546,7 @@ func (repo *Repository) DescriptionHTML(ctx context.Context) template.HTML {
 		log.Error("Failed to render description for %s (ID: %d): %v", repo.Name, repo.ID, err)
 		return template.HTML(markup.Sanitize(repo.Description))
 	}
-	return template.HTML(markup.Sanitize(string(desc)))
+	return template.HTML(markup.Sanitize(desc))
 }
 
 // CloneLink represents different types of clone URLs of repository.
diff --git a/models/statistic.go b/models/statistic.go
index 55ace626c8af..ec094b5f5b7b 100644
--- a/models/statistic.go
+++ b/models/statistic.go
@@ -111,5 +111,5 @@ func GetStatistic() (stats Statistic) {
 	stats.Counter.Attachment, _ = e.Count(new(repo_model.Attachment))
 	stats.Counter.Project, _ = e.Count(new(project_model.Project))
 	stats.Counter.ProjectBoard, _ = e.Count(new(project_model.Board))
-	return
+	return stats
 }
diff --git a/models/unit/unit.go b/models/unit/unit.go
index e94775413e4e..b83bd61831a4 100644
--- a/models/unit/unit.go
+++ b/models/unit/unit.go
@@ -318,7 +318,7 @@ func FindUnitTypes(nameKeys ...string) (res []Type) {
 			res = append(res, TypeInvalid)
 		}
 	}
-	return
+	return res
 }
 
 // TypeFromKey give the unit key name and return unit
diff --git a/models/user/search.go b/models/user/search.go
index a81cee1c22ab..1b65dcb12d46 100644
--- a/models/user/search.go
+++ b/models/user/search.go
@@ -59,7 +59,7 @@ func (opts *SearchUserOptions) toSearchQueryBase() *xorm.Session {
 	}
 
 	if opts.Actor != nil {
-		var exprCond builder.Cond = builder.Expr("org_user.org_id = `user`.id")
+		exprCond := builder.Expr("org_user.org_id = `user`.id")
 
 		// If Admin - they see all users!
 		if !opts.Actor.IsAdmin {
diff --git a/models/webhook/hooktask.go b/models/webhook/hooktask.go
index aff94fb38c3f..4415518cf001 100644
--- a/models/webhook/hooktask.go
+++ b/models/webhook/hooktask.go
@@ -286,7 +286,7 @@ func deleteDeliveredHookTasksByWebhook(hookID int64, numberDeliveriesToKeep int)
 		Cols("hook_task.delivered").
 		Join("INNER", "webhook", "hook_task.hook_id = webhook.id").
 		OrderBy("hook_task.delivered desc").
-		Limit(1, int(numberDeliveriesToKeep)).
+		Limit(1, numberDeliveriesToKeep).
 		Find(&deliveryDates)
 	if err != nil {
 		return err
diff --git a/modules/activitypub/client.go b/modules/activitypub/client.go
index 738b1e47372b..9bcef69de18c 100644
--- a/modules/activitypub/client.go
+++ b/modules/activitypub/client.go
@@ -92,7 +92,7 @@ func NewClient(user *user_model.User, pubID string) (c *Client, err error) {
 		priv:        privParsed,
 		pubID:       pubID,
 	}
-	return
+	return c, err
 }
 
 // NewRequest function
@@ -110,7 +110,7 @@ func (c *Client) NewRequest(b []byte, to string) (req *http.Request, err error)
 		return
 	}
 	err = signer.SignRequest(c.priv, c.pubID, req, b)
-	return
+	return req, err
 }
 
 // Post function
@@ -120,5 +120,5 @@ func (c *Client) Post(b []byte, to string) (resp *http.Response, err error) {
 		return
 	}
 	resp, err = c.client.Do(req)
-	return
+	return resp, err
 }
diff --git a/modules/activitypub/user_settings.go b/modules/activitypub/user_settings.go
index 2144e7b47fb3..fc9775b0f0cf 100644
--- a/modules/activitypub/user_settings.go
+++ b/modules/activitypub/user_settings.go
@@ -35,11 +35,11 @@ func GetKeyPair(user *user_model.User) (pub, priv string, err error) {
 // GetPublicKey function returns a user's public key
 func GetPublicKey(user *user_model.User) (pub string, err error) {
 	pub, _, err = GetKeyPair(user)
-	return
+	return pub, err
 }
 
 // GetPrivateKey function returns a user's private key
 func GetPrivateKey(user *user_model.User) (priv string, err error) {
 	_, priv, err = GetKeyPair(user)
-	return
+	return priv, err
 }
diff --git a/modules/base/natural_sort.go b/modules/base/natural_sort.go
index 60db363df085..46cdd5293256 100644
--- a/modules/base/natural_sort.go
+++ b/modules/base/natural_sort.go
@@ -55,7 +55,7 @@ func isDecimal(r rune) bool {
 }
 
 func compareByNumbers(str1 string, pos1 int, str2 string, pos2 int) (i1, i2 int, less, equal bool) {
-	var d1, d2 bool = true, true
+	d1, d2 := true, true
 	var dec1, dec2 string
 	for d1 || d2 {
 		if d1 {
diff --git a/modules/charset/charset_test.go b/modules/charset/charset_test.go
index cfd5fb569663..6dd13c039dc0 100644
--- a/modules/charset/charset_test.go
+++ b/modules/charset/charset_test.go
@@ -296,11 +296,11 @@ func TestDetectEncoding(t *testing.T) {
 }
 
 func stringMustStartWith(t *testing.T, expected, value string) {
-	assert.Equal(t, expected, string(value[:len(expected)]))
+	assert.Equal(t, expected, value[:len(expected)])
 }
 
 func stringMustEndWith(t *testing.T, expected, value string) {
-	assert.Equal(t, expected, string(value[len(value)-len(expected):]))
+	assert.Equal(t, expected, value[len(value)-len(expected):])
 }
 
 func bytesMustStartWith(t *testing.T, expected, value []byte) {
diff --git a/modules/charset/escape.go b/modules/charset/escape.go
index 20a4bb2a104d..9c1baafba326 100644
--- a/modules/charset/escape.go
+++ b/modules/charset/escape.go
@@ -222,15 +222,15 @@ readingloop:
 		return
 	}
 	escaped.HasError = true
-	return
+	return escaped, err
 }
 
 func writeBroken(output io.Writer, bs []byte) (err error) {
 	_, err = fmt.Fprintf(output, `<span class="broken-code-point">&lt;%X&gt;</span>`, bs)
-	return
+	return err
 }
 
 func writeEscaped(output io.Writer, r rune) (err error) {
 	_, err = fmt.Fprintf(output, `<span class="escaped-code-point" data-escaped="[U+%04X]"><span class="char">%c</span></span>`, r, r)
-	return
+	return err
 }
diff --git a/modules/context/api.go b/modules/context/api.go
index 33534dbf6bf4..558a9f51ee34 100644
--- a/modules/context/api.go
+++ b/modules/context/api.go
@@ -340,7 +340,7 @@ func ReferencesGitRepo(allowEmpty ...bool) func(ctx *APIContext) (cancel context
 			}
 		}
 
-		return
+		return cancel
 	}
 }
 
diff --git a/modules/context/private.go b/modules/context/private.go
index fdc7751227ea..9e7977b5d554 100644
--- a/modules/context/private.go
+++ b/modules/context/private.go
@@ -82,5 +82,5 @@ func PrivateContexter() func(http.Handler) http.Handler {
 func OverrideContext(ctx *PrivateContext) (cancel context.CancelFunc) {
 	// We now need to override the request context as the base for our work because even if the request is cancelled we have to continue this work
 	ctx.Override, _, cancel = process.GetManager().AddTypedContext(graceful.GetManager().HammerContext(), fmt.Sprintf("PrivateContext: %s", ctx.Req.RequestURI), process.RequestProcessType, true)
-	return
+	return cancel
 }
diff --git a/modules/context/repo.go b/modules/context/repo.go
index 217cbd3dfca3..183637391862 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -734,7 +734,7 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) {
 		ctx.Data["GoDocDirectory"] = prefix + "{/dir}"
 		ctx.Data["GoDocFile"] = prefix + "{/dir}/{file}#L{line}"
 	}
-	return
+	return cancel
 }
 
 // RepoRefType type of repo reference
@@ -1001,7 +1001,7 @@ func RepoRefByType(refType RepoRefType, ignoreNotExistErr ...bool) func(*Context
 			return
 		}
 		ctx.Data["CommitsCount"] = ctx.Repo.CommitsCount
-		return
+		return cancel
 	}
 }
 
diff --git a/modules/context/utils.go b/modules/context/utils.go
index aea51cc5d670..a72c8b47e653 100644
--- a/modules/context/utils.go
+++ b/modules/context/utils.go
@@ -52,5 +52,5 @@ func parseTime(value string) (int64, error) {
 func prepareQueryArg(ctx *Context, name string) (value string, err error) {
 	value, err = url.PathUnescape(ctx.FormString(name))
 	value = strings.TrimSpace(value)
-	return
+	return value, err
 }
diff --git a/modules/convert/convert.go b/modules/convert/convert.go
index c8cb23261efd..c62b4303ed27 100644
--- a/modules/convert/convert.go
+++ b/modules/convert/convert.go
@@ -257,7 +257,7 @@ func ToHook(repoLink string, w *webhook.Webhook) *api.Hook {
 
 	return &api.Hook{
 		ID:      w.ID,
-		Type:    string(w.Type),
+		Type:    w.Type,
 		URL:     fmt.Sprintf("%s/settings/hooks/%d", repoLink, w.ID),
 		Active:  w.IsActive,
 		Config:  config,
diff --git a/modules/convert/issue.go b/modules/convert/issue.go
index 35eff052291a..5364367a8096 100644
--- a/modules/convert/issue.go
+++ b/modules/convert/issue.go
@@ -123,7 +123,7 @@ func ToTrackedTime(t *issues_model.TrackedTime) (apiT *api.TrackedTime) {
 	if t.User != nil {
 		apiT.UserName = t.User.Name
 	}
-	return
+	return apiT
 }
 
 // ToStopWatches convert Stopwatch list to api.StopWatches
diff --git a/modules/doctor/fix16961.go b/modules/doctor/fix16961.go
index 92c44185055e..307cfcd9ff87 100644
--- a/modules/doctor/fix16961.go
+++ b/modules/doctor/fix16961.go
@@ -216,7 +216,7 @@ func fixBrokenRepoUnit16961(repoUnit *repo_model.RepoUnit, bs []byte) (fixed boo
 		return false, nil
 	}
 
-	switch unit.Type(repoUnit.Type) {
+	switch repoUnit.Type {
 	case unit.TypeCode, unit.TypeReleases, unit.TypeWiki, unit.TypeProjects:
 		cfg := &repo_model.UnitConfig{}
 		repoUnit.Config = cfg
diff --git a/modules/eventsource/event.go b/modules/eventsource/event.go
index 9fe20715e3bd..281a1bb13579 100644
--- a/modules/eventsource/event.go
+++ b/modules/eventsource/event.go
@@ -18,7 +18,7 @@ func wrapNewlines(w io.Writer, prefix, value []byte) (sum int64, err error) {
 	if len(value) == 0 {
 		return
 	}
-	n := 0
+	var n int
 	last := 0
 	for j := bytes.IndexByte(value, '\n'); j > -1; j = bytes.IndexByte(value[last:], '\n') {
 		n, err = w.Write(prefix)
@@ -45,7 +45,7 @@ func wrapNewlines(w io.Writer, prefix, value []byte) (sum int64, err error) {
 	}
 	n, err = w.Write([]byte("\n"))
 	sum += int64(n)
-	return
+	return sum, err
 }
 
 // Event is an eventsource event, not all fields need to be set
@@ -64,7 +64,7 @@ type Event struct {
 // The return value n is the number of bytes written. Any error encountered during the write is also returned.
 func (e *Event) WriteTo(w io.Writer) (int64, error) {
 	sum := int64(0)
-	nint := 0
+	var nint int
 	n, err := wrapNewlines(w, []byte("event: "), []byte(e.Name))
 	sum += n
 	if err != nil {
diff --git a/modules/git/batch_reader.go b/modules/git/batch_reader.go
index 902fa897185f..feb0dd31be18 100644
--- a/modules/git/batch_reader.go
+++ b/modules/git/batch_reader.go
@@ -176,12 +176,12 @@ func ReadBatchLine(rd *bufio.Reader) (sha []byte, typ string, size int64, err er
 	typ = typ[:idx]
 
 	size, err = strconv.ParseInt(sizeStr, 10, 64)
-	return
+	return sha, typ, size, err
 }
 
 // ReadTagObjectID reads a tag object ID hash from a cat-file --batch stream, throwing away the rest of the stream.
 func ReadTagObjectID(rd *bufio.Reader, size int64) (string, error) {
-	id := ""
+	var id string
 	var n int64
 headerLoop:
 	for {
@@ -216,7 +216,7 @@ headerLoop:
 
 // ReadTreeID reads a tree ID from a cat-file --batch stream, throwing away the rest of the stream.
 func ReadTreeID(rd *bufio.Reader, size int64) (string, error) {
-	id := ""
+	var id string
 	var n int64
 headerLoop:
 	for {
@@ -328,7 +328,7 @@ func ParseTreeLine(rd *bufio.Reader, modeBuf, fnameBuf, shaBuf []byte) (mode, fn
 	// Deal with the 20-byte SHA
 	idx = 0
 	for idx < 20 {
-		read := 0
+		var read int
 		read, err = rd.Read(shaBuf[idx:20])
 		n += read
 		if err != nil {
@@ -337,7 +337,7 @@ func ParseTreeLine(rd *bufio.Reader, modeBuf, fnameBuf, shaBuf []byte) (mode, fn
 		idx += read
 	}
 	sha = shaBuf
-	return
+	return mode, fname, sha, n, err
 }
 
 var callerPrefix string
diff --git a/modules/git/blob_nogogit.go b/modules/git/blob_nogogit.go
index 211c18855972..89bb98162f40 100644
--- a/modules/git/blob_nogogit.go
+++ b/modules/git/blob_nogogit.go
@@ -99,7 +99,7 @@ func (b *blobReader) Read(p []byte) (n int, err error) {
 	}
 	n, err = b.rd.Read(p)
 	b.n -= int64(n)
-	return
+	return n, err
 }
 
 // Close implements io.Closer
diff --git a/modules/git/commit.go b/modules/git/commit.go
index 82b5e0b25d08..82712dd1ef3f 100644
--- a/modules/git/commit.go
+++ b/modules/git/commit.go
@@ -418,7 +418,7 @@ func (c *Commit) LoadBranchName() (err error) {
 	}
 
 	c.Branch, err = c.GetBranchName()
-	return
+	return err
 }
 
 // GetTagName gets the current tag name for given commit
diff --git a/modules/git/commit_info_nogogit.go b/modules/git/commit_info_nogogit.go
index f430c672f884..ceab11adbb8c 100644
--- a/modules/git/commit_info_nogogit.go
+++ b/modules/git/commit_info_nogogit.go
@@ -157,7 +157,7 @@ func GetLastCommitForPaths(ctx context.Context, cache *LastCommitCache, commit *
 		if typ != "commit" {
 			return nil, fmt.Errorf("unexpected type: %s for commit id: %s", typ, commitID)
 		}
-		c, err = CommitFromReader(commit.repo, MustIDFromString(string(commitID)), io.LimitReader(batchReader, int64(size)))
+		c, err = CommitFromReader(commit.repo, MustIDFromString(commitID), io.LimitReader(batchReader, size))
 		if err != nil {
 			return nil, err
 		}
diff --git a/modules/git/diff.go b/modules/git/diff.go
index c9d68bb130fe..f75ebd4fd21d 100644
--- a/modules/git/diff.go
+++ b/modules/git/diff.go
@@ -115,7 +115,7 @@ func ParseDiffHunkString(diffhunk string) (leftLine, leftHunk, rightLine, righHu
 		rightLine = leftLine
 		righHunk = leftHunk
 	}
-	return
+	return leftLine, leftHunk, rightLine, righHunk
 }
 
 // Example: @@ -1,8 +1,9 @@ => [..., 1, 8, 1, 9]
diff --git a/modules/git/pipeline/lfs_nogogit.go b/modules/git/pipeline/lfs_nogogit.go
index a2b5dd0c9698..061da8ca500c 100644
--- a/modules/git/pipeline/lfs_nogogit.go
+++ b/modules/git/pipeline/lfs_nogogit.go
@@ -116,7 +116,7 @@ func FindLFSFile(repo *git.Repository, hash git.SHA1) ([]*LFSResult, error) {
 				continue
 			case "commit":
 				// Read in the commit to get its tree and in case this is one of the last used commits
-				curCommit, err = git.CommitFromReader(repo, git.MustIDFromString(string(commitID)), io.LimitReader(batchReader, int64(size)))
+				curCommit, err = git.CommitFromReader(repo, git.MustIDFromString(string(commitID)), io.LimitReader(batchReader, size))
 				if err != nil {
 					return nil, err
 				}
diff --git a/modules/git/repo_attribute.go b/modules/git/repo_attribute.go
index 596a91e80382..1305e6f22494 100644
--- a/modules/git/repo_attribute.go
+++ b/modules/git/repo_attribute.go
@@ -334,7 +334,7 @@ func (wr *lineSeparatedAttributeWriter) Write(p []byte) (n int, err error) {
 						wr.tmp = []byte(remaining[3:])
 						break
 					}
-					return l, fmt.Errorf("unexpected tail %s", string(remaining))
+					return l, fmt.Errorf("unexpected tail %s", remaining)
 				}
 				_, _ = sb.WriteRune(rn)
 				remaining = tail
diff --git a/modules/git/repo_base_nogogit.go b/modules/git/repo_base_nogogit.go
index df24d952a8f7..63c278c26137 100644
--- a/modules/git/repo_base_nogogit.go
+++ b/modules/git/repo_base_nogogit.go
@@ -101,5 +101,5 @@ func (repo *Repository) Close() (err error) {
 		repo.checkReader = nil
 		repo.checkWriter = nil
 	}
-	return
+	return err
 }
diff --git a/modules/git/repo_branch_nogogit.go b/modules/git/repo_branch_nogogit.go
index bc58991085b7..2983a35ca56f 100644
--- a/modules/git/repo_branch_nogogit.go
+++ b/modules/git/repo_branch_nogogit.go
@@ -95,7 +95,7 @@ func callShowRef(ctx context.Context, repoPath, prefix, arg string, skip, limit
 
 		return nil
 	})
-	return
+	return branchNames, countAll, err
 }
 
 func walkShowRef(ctx context.Context, repoPath, arg string, skip, limit int, walkfn func(sha1, refname string) error) (countAll int, err error) {
diff --git a/modules/git/repo_compare.go b/modules/git/repo_compare.go
index 3c7af73000e4..577c9f475e09 100644
--- a/modules/git/repo_compare.go
+++ b/modules/git/repo_compare.go
@@ -132,7 +132,7 @@ type lineCountWriter struct {
 func (l *lineCountWriter) Write(p []byte) (n int, err error) {
 	n = len(p)
 	l.numLines += bytes.Count(p, []byte{'\000'})
-	return
+	return n, err
 }
 
 // GetDiffNumChangedFiles counts the number of changed files
@@ -177,7 +177,7 @@ func (repo *Repository) GetDiffShortStat(base, head string) (numFiles, totalAddi
 	if err != nil && strings.Contains(err.Error(), "no merge base") {
 		return GetDiffShortStat(repo.Ctx, repo.Path, base, head)
 	}
-	return
+	return numFiles, totalAdditions, totalDeletions, err
 }
 
 // GetDiffShortStat counts number of changed files, number of additions and deletions
@@ -231,7 +231,7 @@ func parseDiffStat(stdout string) (numFiles, totalAdditions, totalDeletions int,
 			return 0, 0, 0, fmt.Errorf("unable to parse shortstat: %s. Error parsing NumDeletions %v", stdout, err)
 		}
 	}
-	return
+	return numFiles, totalAdditions, totalDeletions, err
 }
 
 // GetDiffOrPatch generates either diff or formatted patch data between given revisions
diff --git a/modules/git/repo_compare_test.go b/modules/git/repo_compare_test.go
index e163a3090bbe..245920c2bdc1 100644
--- a/modules/git/repo_compare_test.go
+++ b/modules/git/repo_compare_test.go
@@ -117,8 +117,8 @@ func TestReadWritePullHead(t *testing.T) {
 		return
 	}
 
-	assert.Len(t, string(headContents), 40)
-	assert.True(t, string(headContents) == newCommit)
+	assert.Len(t, headContents, 40)
+	assert.True(t, headContents == newCommit)
 
 	// Remove file after the test
 	err = repo.RemoveReference(PullPrefix + "1/head")
diff --git a/modules/git/repo_index.go b/modules/git/repo_index.go
index ae68dcaa87c1..50d82c77d7ed 100644
--- a/modules/git/repo_index.go
+++ b/modules/git/repo_index.go
@@ -64,7 +64,7 @@ func (repo *Repository) ReadTreeToTemporaryIndex(treeish string) (filename, tmpD
 		defer cancel()
 		return "", "", func() {}, err
 	}
-	return
+	return filename, tmpDir, cancel, err
 }
 
 // EmptyIndex empties the index
diff --git a/modules/git/repo_tag_nogogit.go b/modules/git/repo_tag_nogogit.go
index 8d44db0a2e11..9a574666f82c 100644
--- a/modules/git/repo_tag_nogogit.go
+++ b/modules/git/repo_tag_nogogit.go
@@ -27,7 +27,7 @@ func (repo *Repository) IsTagExist(name string) bool {
 // returning at most limit tags, or all if limit is 0.
 func (repo *Repository) GetTags(skip, limit int) (tags []string, err error) {
 	tags, _, err = callShowRef(repo.Ctx, repo.Path, TagPrefix, "--tags", skip, limit)
-	return
+	return tags, err
 }
 
 // GetTagType gets the type of the tag, either commit (simple) or tag (annotated)
diff --git a/modules/git/sha1_nogogit.go b/modules/git/sha1_nogogit.go
index 1835c68f5a13..a2620cba6954 100644
--- a/modules/git/sha1_nogogit.go
+++ b/modules/git/sha1_nogogit.go
@@ -58,5 +58,5 @@ func NewHasher(t ObjectType, size int64) Hasher {
 // Sum generates a SHA1 for the provided hash
 func (h Hasher) Sum() (sha1 SHA1) {
 	copy(sha1[:], h.Hash.Sum(nil))
-	return
+	return sha1
 }
diff --git a/modules/git/signature_nogogit.go b/modules/git/signature_nogogit.go
index 81da739a5b4d..2fc8dde04d4b 100644
--- a/modules/git/signature_nogogit.go
+++ b/modules/git/signature_nogogit.go
@@ -91,5 +91,5 @@ func newSignatureFromCommitline(line []byte) (sig *Signature, err error) {
 			return
 		}
 	}
-	return
+	return sig, err
 }
diff --git a/modules/git/utils.go b/modules/git/utils.go
index 53c124ac8a2b..d6bf9f4413cd 100644
--- a/modules/git/utils.go
+++ b/modules/git/utils.go
@@ -163,7 +163,7 @@ func (l *LimitedReaderCloser) Read(p []byte) (n int, err error) {
 	}
 	n, err = l.R.Read(p)
 	l.N -= int64(n)
-	return
+	return n, err
 }
 
 // Close implements io.Closer
diff --git a/modules/gitgraph/graph_test.go b/modules/gitgraph/graph_test.go
index ea6553529a29..2cfbe4b2fa6b 100644
--- a/modules/gitgraph/graph_test.go
+++ b/modules/gitgraph/graph_test.go
@@ -53,7 +53,7 @@ func BenchmarkParseGlyphs(b *testing.B) {
 	parser := &Parser{}
 	parser.Reset()
 	tgBytes := []byte(testglyphs)
-	tg := tgBytes
+	var tg []byte
 	for i := 0; i < b.N; i++ {
 		parser.Reset()
 		tg = tgBytes
diff --git a/modules/graceful/context.go b/modules/graceful/context.go
index 9d955329a42b..b9d975a1d50a 100644
--- a/modules/graceful/context.go
+++ b/modules/graceful/context.go
@@ -26,7 +26,7 @@ func NewChannelContext(done <-chan struct{}, err error) *ChannelContext {
 // Deadline returns the time when work done on behalf of this context
 // should be canceled. There is no Deadline for a ChannelContext
 func (ctx *ChannelContext) Deadline() (deadline time.Time, ok bool) {
-	return
+	return deadline, ok
 }
 
 // Done returns the channel provided at the creation of this context.
diff --git a/modules/highlight/highlight.go b/modules/highlight/highlight.go
index a72f26d5f075..acd3bebb9f40 100644
--- a/modules/highlight/highlight.go
+++ b/modules/highlight/highlight.go
@@ -114,7 +114,7 @@ func CodeFromLexer(lexer chroma.Lexer, code string) string {
 	htmlbuf := bytes.Buffer{}
 	htmlw := bufio.NewWriter(&htmlbuf)
 
-	iterator, err := lexer.Tokenise(nil, string(code))
+	iterator, err := lexer.Tokenise(nil, code)
 	if err != nil {
 		log.Error("Can't tokenize code: %v", err)
 		return code
@@ -197,7 +197,7 @@ func File(numLines int, fileName, language string, code []byte) []string {
 
 	m := make([]string, 0, numLines)
 	for _, v := range strings.SplitN(htmlbuf.String(), "\n", numLines) {
-		content := string(v)
+		content := v
 		// need to keep lines that are only \n so copy/paste works properly in browser
 		if content == "" {
 			content = "\n"
@@ -220,8 +220,8 @@ func File(numLines int, fileName, language string, code []byte) []string {
 // return unhiglighted map
 func plainText(code string, numLines int) []string {
 	m := make([]string, 0, numLines)
-	for _, v := range strings.SplitN(string(code), "\n", numLines) {
-		content := string(v)
+	for _, v := range strings.SplitN(code, "\n", numLines) {
+		content := v
 		// need to keep lines that are only \n so copy/paste works properly in browser
 		if content == "" {
 			content = "\n"
diff --git a/modules/indexer/code/bleve.go b/modules/indexer/code/bleve.go
index 1abb3c0219ad..0b31f7119c4f 100644
--- a/modules/indexer/code/bleve.go
+++ b/modules/indexer/code/bleve.go
@@ -392,7 +392,7 @@ func (b *BleveIndexer) Search(ctx context.Context, repoIDs []int64, language, ke
 
 	searchResults := make([]*SearchResult, len(result.Hits))
 	for i, hit := range result.Hits {
-		var startIndex, endIndex int = -1, -1
+		startIndex, endIndex := -1, -1
 		for _, locations := range hit.Locations["Content"] {
 			location := locations[0]
 			locationStart := int(location.Start)
diff --git a/modules/indexer/code/elastic_search.go b/modules/indexer/code/elastic_search.go
index 7263f27657c8..a669c66bb44a 100644
--- a/modules/indexer/code/elastic_search.go
+++ b/modules/indexer/code/elastic_search.go
@@ -348,7 +348,7 @@ func convertResult(searchResult *elastic.SearchResult, kw string, pageSize int)
 		// FIXME: There is no way to get the position the keyword on the content currently on the same request.
 		// So we get it from content, this may made the query slower. See
 		// https://discuss.elastic.co/t/fetching-position-of-keyword-in-matched-document/94291
-		var startIndex, endIndex int = -1, -1
+		var startIndex, endIndex int
 		c, ok := hit.Highlight["content"]
 		if ok && len(c) > 0 {
 			// FIXME: Since the highlighting content will include <em> and </em> for the keywords,
diff --git a/modules/markup/common/footnote.go b/modules/markup/common/footnote.go
index 821b3e6387a1..d07f5e609013 100644
--- a/modules/markup/common/footnote.go
+++ b/modules/markup/common/footnote.go
@@ -203,9 +203,8 @@ func (b *footnoteBlockParser) Open(parent ast.Node, reader text.Reader, pc parse
 		return nil, parser.NoChildren
 	}
 	open := pos + 1
-	closes := 0
 	closure := util.FindClosure(line[pos+1:], '[', ']', false, false) //nolint
-	closes = pos + 1 + closure
+	closes := pos + 1 + closure
 	next := closes + 1
 	if closure > -1 {
 		if next >= len(line) || line[next] != ':' {
diff --git a/modules/markup/markdown/markdown.go b/modules/markup/markdown/markdown.go
index 37e11e606fce..4ce85dfc3187 100644
--- a/modules/markup/markdown/markdown.go
+++ b/modules/markup/markdown/markdown.go
@@ -156,7 +156,7 @@ func actualRender(ctx *markup.RenderContext, input io.Reader, output io.Writer)
 
 		log.Warn("Unable to render markdown due to panic in goldmark: %v", err)
 		if log.IsDebug() {
-			log.Debug("Panic in markdown: %v\n%s", err, string(log.Stack(2)))
+			log.Debug("Panic in markdown: %v\n%s", err, log.Stack(2))
 		}
 	}()
 
@@ -185,7 +185,7 @@ func render(ctx *markup.RenderContext, input io.Reader, output io.Writer) error
 
 		log.Warn("Unable to render markdown due to panic in goldmark - will return raw bytes")
 		if log.IsDebug() {
-			log.Debug("Panic in markdown: %v\n%s", err, string(log.Stack(2)))
+			log.Debug("Panic in markdown: %v\n%s", err, log.Stack(2))
 		}
 		_, err = io.Copy(output, input)
 		if err != nil {
diff --git a/modules/markup/orgmode/orgmode.go b/modules/markup/orgmode/orgmode.go
index 8c9f3b3da736..a78531720dc8 100644
--- a/modules/markup/orgmode/orgmode.go
+++ b/modules/markup/orgmode/orgmode.go
@@ -75,7 +75,7 @@ func Render(ctx *markup.RenderContext, input io.Reader, output io.Writer) error
 
 		if lexer == nil {
 			// include language-x class as part of commonmark spec
-			if _, err := w.WriteString(`<code class="chroma language-` + string(lang) + `">`); err != nil {
+			if _, err := w.WriteString(`<code class="chroma language-` + lang + `">`); err != nil {
 				return ""
 			}
 			if _, err := w.WriteString(html.EscapeString(source)); err != nil {
@@ -83,7 +83,7 @@ func Render(ctx *markup.RenderContext, input io.Reader, output io.Writer) error
 			}
 		} else {
 			// include language-x class as part of commonmark spec
-			if _, err := w.WriteString(`<code class="chroma language-` + string(lang) + `">`); err != nil {
+			if _, err := w.WriteString(`<code class="chroma language-` + lang + `">`); err != nil {
 				return ""
 			}
 			lexer = chroma.Coalesce(lexer)
diff --git a/modules/markup/sanitizer_test.go b/modules/markup/sanitizer_test.go
index a0753c4a56cc..7dfca7a468db 100644
--- a/modules/markup/sanitizer_test.go
+++ b/modules/markup/sanitizer_test.go
@@ -55,7 +55,7 @@ func Test_Sanitizer(t *testing.T) {
 func TestSanitizeNonEscape(t *testing.T) {
 	descStr := "<scrİpt>&lt;script&gt;alert(document.domain)&lt;/script&gt;</scrİpt>"
 
-	output := template.HTML(Sanitize(string(descStr)))
+	output := template.HTML(Sanitize(descStr))
 	if strings.Contains(string(output), "<script>") {
 		t.Errorf("un-escaped <script> in output: %q", output)
 	}
diff --git a/modules/migration/issue.go b/modules/migration/issue.go
index 78f648dd2db5..cc13570afb97 100644
--- a/modules/migration/issue.go
+++ b/modules/migration/issue.go
@@ -30,11 +30,11 @@ type Issue struct {
 }
 
 // GetExternalName ExternalUserMigrated interface
-func (i *Issue) GetExternalName() string { return i.PosterName }
+func (issue *Issue) GetExternalName() string { return issue.PosterName }
 
 // GetExternalID ExternalUserMigrated interface
-func (i *Issue) GetExternalID() int64 { return i.PosterID }
+func (issue *Issue) GetExternalID() int64 { return issue.PosterID }
 
-func (i *Issue) GetLocalIndex() int64          { return i.Number }
-func (i *Issue) GetForeignIndex() int64        { return i.ForeignIndex }
-func (i *Issue) GetContext() DownloaderContext { return i.Context }
+func (issue *Issue) GetLocalIndex() int64          { return issue.Number }
+func (issue *Issue) GetForeignIndex() int64        { return issue.ForeignIndex }
+func (issue *Issue) GetContext() DownloaderContext { return issue.Context }
diff --git a/modules/nosql/manager.go b/modules/nosql/manager.go
index 93338fdc3f95..6092a6782747 100644
--- a/modules/nosql/manager.go
+++ b/modules/nosql/manager.go
@@ -75,5 +75,5 @@ func valToTimeDuration(vs []string) (result time.Duration) {
 			return
 		}
 	}
-	return
+	return result
 }
diff --git a/modules/nosql/manager_leveldb.go b/modules/nosql/manager_leveldb.go
index d69ae8880008..d356a79bf82c 100644
--- a/modules/nosql/manager_leveldb.go
+++ b/modules/nosql/manager_leveldb.go
@@ -72,7 +72,7 @@ func (m *Manager) GetLevelDB(connection string) (db *leveldb.DB, err error) {
 	if recovered != nil {
 		panic(recovered)
 	}
-	return
+	return db, err
 }
 
 func (m *Manager) getLevelDB(connection string) (*leveldb.DB, error) {
diff --git a/modules/nosql/manager_redis.go b/modules/nosql/manager_redis.go
index b82f899db042..3b2ad75b41f9 100644
--- a/modules/nosql/manager_redis.go
+++ b/modules/nosql/manager_redis.go
@@ -65,7 +65,7 @@ func (m *Manager) GetRedisClient(connection string) (client redis.UniversalClien
 	if recovered != nil {
 		panic(recovered)
 	}
-	return
+	return client
 }
 
 func (m *Manager) getRedisClient(connection string) redis.UniversalClient {
diff --git a/modules/packages/multi_hasher.go b/modules/packages/multi_hasher.go
index 0659a18d2a02..4d17441d8c1b 100644
--- a/modules/packages/multi_hasher.go
+++ b/modules/packages/multi_hasher.go
@@ -119,5 +119,5 @@ func (h *MultiHasher) Sums() (hashMD5, hashSHA1, hashSHA256, hashSHA512 []byte)
 	hashSHA1 = h.sha1.Sum(nil)
 	hashSHA256 = h.sha256.Sum(nil)
 	hashSHA512 = h.sha512.Sum(nil)
-	return
+	return hashMD5, hashSHA1, hashSHA256, hashSHA512
 }
diff --git a/modules/process/manager.go b/modules/process/manager.go
index 5d7aee760f58..7f14287de508 100644
--- a/modules/process/manager.go
+++ b/modules/process/manager.go
@@ -183,7 +183,7 @@ func (pm *Manager) nextPID() (start time.Time, pid IDType) {
 		return
 	}
 	pid = IDType(string(pid) + "-" + strconv.FormatInt(pm.next, 10))
-	return
+	return start, pid
 }
 
 // Remove a process from the ProcessManager.
diff --git a/modules/process/manager_stacktraces.go b/modules/process/manager_stacktraces.go
index fbe3374b87bb..628d9cebcd1e 100644
--- a/modules/process/manager_stacktraces.go
+++ b/modules/process/manager_stacktraces.go
@@ -120,7 +120,7 @@ func (pm *Manager) ProcessStacktraces(flat, noSystem bool) ([]*Process, int, int
 
 	// We cannot use the pm.ProcessMap here because we will release the mutex ...
 	processMap := map[IDType]*Process{}
-	processCount := 0
+	var processCount int
 
 	// Lock the manager
 	pm.mutex.Lock()
diff --git a/modules/queue/helper.go b/modules/queue/helper.go
index f1aba411a856..9ad95badeb95 100644
--- a/modules/queue/helper.go
+++ b/modules/queue/helper.go
@@ -74,7 +74,7 @@ func unmarshalAs(bs []byte, exemplar interface{}) (data Data, err error) {
 	} else {
 		err = json.Unmarshal(bs, &data)
 	}
-	return
+	return data, err
 }
 
 // assignableTo will check if provided data is assignable to the same type as the exemplar
diff --git a/modules/queue/queue_bytefifo.go b/modules/queue/queue_bytefifo.go
index 99c6428abce7..79f69f07ce85 100644
--- a/modules/queue/queue_bytefifo.go
+++ b/modules/queue/queue_bytefifo.go
@@ -73,7 +73,7 @@ func NewByteFIFOQueue(typ Type, byteFIFO ByteFIFO, handle HandlerFunc, cfg, exem
 				failed = append(failed, fail)
 			}
 		}
-		return
+		return failed
 	}, config.WorkerPoolConfiguration)
 
 	return q, nil
@@ -401,7 +401,7 @@ func NewByteFIFOUniqueQueue(typ Type, byteFIFO UniqueByteFIFO, handle HandlerFun
 				failed = append(failed, fail)
 			}
 		}
-		return
+		return failed
 	}, config.WorkerPoolConfiguration)
 
 	return q, nil
diff --git a/modules/queue/queue_disk_channel.go b/modules/queue/queue_disk_channel.go
index 014d93f5b5d5..c00f62027661 100644
--- a/modules/queue/queue_disk_channel.go
+++ b/modules/queue/queue_disk_channel.go
@@ -62,7 +62,7 @@ func NewPersistableChannelQueue(handle HandlerFunc, cfg, exemplar interface{}) (
 				failed = append(failed, fail)
 			}
 		}
-		return
+		return failed
 	}
 
 	channelQueue, err := NewChannelQueue(wrappedHandle, ChannelQueueConfiguration{
diff --git a/modules/queue/unique_queue_disk_channel.go b/modules/queue/unique_queue_disk_channel.go
index 6ab03094ba78..8e0322bb906d 100644
--- a/modules/queue/unique_queue_disk_channel.go
+++ b/modules/queue/unique_queue_disk_channel.go
@@ -62,7 +62,7 @@ func NewPersistableChannelUniqueQueue(handle HandlerFunc, cfg, exemplar interfac
 				failed = append(failed, fail)
 			}
 		}
-		return
+		return failed
 	}
 
 	channelUniqueQueue, err := NewChannelUniqueQueue(wrappedHandle, ChannelUniqueQueueConfiguration{
diff --git a/modules/references/references.go b/modules/references/references.go
index 7f5086d093e5..8fd0c8f055bd 100644
--- a/modules/references/references.go
+++ b/modules/references/references.go
@@ -379,7 +379,7 @@ func FindRenderizableReferenceAlphanumeric(content string) (bool, *RenderizableR
 	action, location := findActionKeywords([]byte(content), match[2])
 
 	return true, &RenderizableReference{
-		Issue:          string(content[match[2]:match[3]]),
+		Issue:          content[match[2]:match[3]],
 		RefLocation:    &RefSpan{Start: match[2], End: match[3]},
 		Action:         action,
 		ActionLocation: location,
@@ -506,7 +506,7 @@ func getCrossReference(content []byte, start, end int, fromLink, prOnly bool) *r
 	}
 	repo := string(content[start : start+sep])
 	issue := string(content[start+sep+1 : end])
-	index, err := strconv.ParseInt(string(issue), 10, 64)
+	index, err := strconv.ParseInt(issue, 10, 64)
 	if err != nil {
 		return nil
 	}
diff --git a/modules/repository/hooks.go b/modules/repository/hooks.go
index debaa0ecc484..c2eb3a7c75f7 100644
--- a/modules/repository/hooks.go
+++ b/modules/repository/hooks.go
@@ -104,7 +104,7 @@ done
 		giteaHookTpls = append(giteaHookTpls, "")
 	}
 
-	return
+	return hookNames, hookTpls, giteaHookTpls
 }
 
 // CreateDelegateHooks creates all the hooks scripts for the repo
diff --git a/modules/setting/database.go b/modules/setting/database.go
index a90ace5b4bb8..87d56fbc930c 100644
--- a/modules/setting/database.go
+++ b/modules/setting/database.go
@@ -107,7 +107,7 @@ func InitDBConfig() {
 
 // DBConnStr returns database connection string
 func DBConnStr() (string, error) {
-	connStr := ""
+	var connStr string
 	Param := "?"
 	if strings.Contains(Database.Name, Param) {
 		Param = "&"
@@ -168,7 +168,7 @@ func getPostgreSQLConnectionString(dbHost, dbUser, dbPasswd, dbName, dbParam, db
 		connStr = fmt.Sprintf("postgres://%s:%s@%s:%s/%s%ssslmode=%s",
 			url.PathEscape(dbUser), url.PathEscape(dbPasswd), host, port, dbName, dbParam, dbsslMode)
 	}
-	return
+	return connStr
 }
 
 // ParseMSSQLHostPort splits the host into host and port
diff --git a/modules/setting/federation.go b/modules/setting/federation.go
index 2a8ecadaf92e..583d9a6e2bce 100644
--- a/modules/setting/federation.go
+++ b/modules/setting/federation.go
@@ -31,7 +31,7 @@ var (
 	}
 )
 
-// Constant slice of httpsig algorithm objects
+// HttpsigAlgs is a constant slice of httpsig algorithm objects
 var HttpsigAlgs []httpsig.Algorithm
 
 func newFederationService() {
diff --git a/modules/setting/i18n.go b/modules/setting/i18n.go
index a9a57dc94875..321e144ef385 100644
--- a/modules/setting/i18n.go
+++ b/modules/setting/i18n.go
@@ -40,12 +40,12 @@ func defaultI18nLangs() (res []string) {
 	for i := 0; i < len(defaultI18nLangNames); i += 2 {
 		res = append(res, defaultI18nLangNames[i])
 	}
-	return
+	return res
 }
 
 func defaultI18nNames() (res []string) {
 	for i := 0; i < len(defaultI18nLangNames); i += 2 {
 		res = append(res, defaultI18nLangNames[i+1])
 	}
-	return
+	return res
 }
diff --git a/modules/setting/log.go b/modules/setting/log.go
index d69b5c688842..1d9535360a01 100644
--- a/modules/setting/log.go
+++ b/modules/setting/log.go
@@ -211,7 +211,7 @@ func generateLogConfig(sec *ini.Section, name string, defaults defaultLogOptions
 		return
 	}
 	jsonConfig = string(byteConfig)
-	return
+	return mode, jsonConfig, levelName
 }
 
 func generateNamedLogger(key string, options defaultLogOptions) *LogDescription {
diff --git a/modules/setting/service.go b/modules/setting/service.go
index a391926382c4..bd97e10b0f0d 100644
--- a/modules/setting/service.go
+++ b/modules/setting/service.go
@@ -96,7 +96,7 @@ func (a AllowedVisibility) ToVisibleTypeSlice() (result []structs.VisibleType) {
 			result = append(result, structs.VisibleType(i))
 		}
 	}
-	return
+	return result
 }
 
 func newService() {
diff --git a/modules/storage/storage.go b/modules/storage/storage.go
index ef7f6029a5ba..1b83e3271f0c 100644
--- a/modules/storage/storage.go
+++ b/modules/storage/storage.go
@@ -169,35 +169,35 @@ func NewStorage(typStr string, cfg interface{}) (ObjectStorage, error) {
 func initAvatars() (err error) {
 	log.Info("Initialising Avatar storage with type: %s", setting.Avatar.Storage.Type)
 	Avatars, err = NewStorage(setting.Avatar.Storage.Type, &setting.Avatar.Storage)
-	return
+	return err
 }
 
 func initAttachments() (err error) {
 	log.Info("Initialising Attachment storage with type: %s", setting.Attachment.Storage.Type)
 	Attachments, err = NewStorage(setting.Attachment.Storage.Type, &setting.Attachment.Storage)
-	return
+	return err
 }
 
 func initLFS() (err error) {
 	log.Info("Initialising LFS storage with type: %s", setting.LFS.Storage.Type)
 	LFS, err = NewStorage(setting.LFS.Storage.Type, &setting.LFS.Storage)
-	return
+	return err
 }
 
 func initRepoAvatars() (err error) {
 	log.Info("Initialising Repository Avatar storage with type: %s", setting.RepoAvatar.Storage.Type)
 	RepoAvatars, err = NewStorage(setting.RepoAvatar.Storage.Type, &setting.RepoAvatar.Storage)
-	return
+	return err
 }
 
 func initRepoArchives() (err error) {
 	log.Info("Initialising Repository Archive storage with type: %s", setting.RepoArchive.Storage.Type)
 	RepoArchives, err = NewStorage(setting.RepoArchive.Storage.Type, &setting.RepoArchive.Storage)
-	return
+	return err
 }
 
 func initPackages() (err error) {
 	log.Info("Initialising Packages storage with type: %s", setting.Packages.Storage.Type)
 	Packages, err = NewStorage(setting.Packages.Storage.Type, &setting.Packages.Storage)
-	return
+	return err
 }
diff --git a/modules/structs/org_type.go b/modules/structs/org_type.go
index 4fb9b6fc0fdc..4401a2801c17 100644
--- a/modules/structs/org_type.go
+++ b/modules/structs/org_type.go
@@ -55,5 +55,5 @@ func ExtractKeysFromMapString(in map[string]VisibleType) (keys []string) {
 	for k := range in {
 		keys = append(keys, k)
 	}
-	return
+	return keys
 }
diff --git a/modules/templates/helper.go b/modules/templates/helper.go
index 99b1979964ee..93463ce0c2f5 100644
--- a/modules/templates/helper.go
+++ b/modules/templates/helper.go
@@ -733,7 +733,7 @@ func RenderCommitMessageLink(ctx context.Context, msg, urlPrefix, urlDefault str
 		log.Error("RenderCommitMessage: %v", err)
 		return ""
 	}
-	msgLines := strings.Split(strings.TrimSpace(string(fullMessage)), "\n")
+	msgLines := strings.Split(strings.TrimSpace(fullMessage), "\n")
 	if len(msgLines) == 0 {
 		return template.HTML("")
 	}
@@ -843,7 +843,7 @@ func RenderNote(ctx context.Context, msg, urlPrefix string, metas map[string]str
 		log.Error("RenderNote: %v", err)
 		return ""
 	}
-	return template.HTML(string(fullMessage))
+	return template.HTML(fullMessage)
 }
 
 // IsMultilineCommitMessage checks to see if a commit message contains multiple lines.
diff --git a/modules/templates/helper_test.go b/modules/templates/helper_test.go
index e2997cb85331..5ebae7afef34 100644
--- a/modules/templates/helper_test.go
+++ b/modules/templates/helper_test.go
@@ -17,8 +17,8 @@ func TestSubjectBodySeparator(t *testing.T) {
 			assert.Empty(t, subject, "no subject found, but one expected")
 			assert.Equal(t, body, input)
 		} else {
-			assert.Equal(t, subject, string(input[0:loc[0]]))
-			assert.Equal(t, body, string(input[loc[1]:]))
+			assert.Equal(t, subject, input[0:loc[0]])
+			assert.Equal(t, body, input[loc[1]:])
 		}
 	}
 
diff --git a/modules/timeutil/since.go b/modules/timeutil/since.go
index 38b12829ad46..b22fe59ba286 100644
--- a/modules/timeutil/since.go
+++ b/modules/timeutil/since.go
@@ -30,7 +30,7 @@ func round(s float64) int64 {
 }
 
 func computeTimeDiffFloor(diff int64, lang string) (int64, string) {
-	diffStr := ""
+	var diffStr string
 	switch {
 	case diff <= 0:
 		diff = 0
@@ -88,7 +88,7 @@ func computeTimeDiffFloor(diff int64, lang string) (int64, string) {
 }
 
 func computeTimeDiff(diff int64, lang string) (int64, string) {
-	diffStr := ""
+	var diffStr string
 	switch {
 	case diff <= 0:
 		diff = 0
diff --git a/modules/timeutil/timestamp.go b/modules/timeutil/timestamp.go
index 1fe8d4fcb187..88008d1fad5a 100644
--- a/modules/timeutil/timestamp.go
+++ b/modules/timeutil/timestamp.go
@@ -57,7 +57,7 @@ func (ts TimeStamp) AsTime() (tm time.Time) {
 // AsTimeInLocation convert timestamp as time.Time in Local locale
 func (ts TimeStamp) AsTimeInLocation(loc *time.Location) (tm time.Time) {
 	tm = time.Unix(int64(ts), 0).In(loc)
-	return
+	return tm
 }
 
 // AsTimePtr convert timestamp as *time.Time in Local locale
diff --git a/modules/util/io.go b/modules/util/io.go
index 0c677c359f5e..d765e27733fe 100644
--- a/modules/util/io.go
+++ b/modules/util/io.go
@@ -16,5 +16,5 @@ func ReadAtMost(r io.Reader, buf []byte) (n int, err error) {
 	if err == io.EOF || err == io.ErrUnexpectedEOF {
 		err = nil
 	}
-	return
+	return n, err
 }
diff --git a/modules/web/wrap_convert.go b/modules/web/wrap_convert.go
index b7bcbc64394c..9084cfa07472 100644
--- a/modules/web/wrap_convert.go
+++ b/modules/web/wrap_convert.go
@@ -28,7 +28,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			if r, ok := resp.(context.ResponseWriter); ok && r.Status() > 0 {
 				done = true
 			}
-			return
+			return done, deferrable
 		}
 	case func(http.ResponseWriter, *http.Request):
 		return func(resp http.ResponseWriter, req *http.Request, others ...wrappedHandlerFunc) (done bool, deferrable func()) {
@@ -37,7 +37,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			if r, ok := resp.(context.ResponseWriter); ok && r.Status() > 0 {
 				done = true
 			}
-			return
+			return done, deferrable
 		}
 
 	case func(ctx *context.Context):
@@ -46,7 +46,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			ctx := context.GetContext(req)
 			t(ctx)
 			done = ctx.Written()
-			return
+			return done, deferrable
 		}
 	case func(ctx *context.Context) goctx.CancelFunc:
 		return func(resp http.ResponseWriter, req *http.Request, others ...wrappedHandlerFunc) (done bool, deferrable func()) {
@@ -54,7 +54,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			ctx := context.GetContext(req)
 			deferrable = t(ctx)
 			done = ctx.Written()
-			return
+			return done, deferrable
 		}
 	case func(*context.APIContext):
 		return func(resp http.ResponseWriter, req *http.Request, others ...wrappedHandlerFunc) (done bool, deferrable func()) {
@@ -62,7 +62,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			ctx := context.GetAPIContext(req)
 			t(ctx)
 			done = ctx.Written()
-			return
+			return done, deferrable
 		}
 	case func(*context.APIContext) goctx.CancelFunc:
 		return func(resp http.ResponseWriter, req *http.Request, others ...wrappedHandlerFunc) (done bool, deferrable func()) {
@@ -70,7 +70,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			ctx := context.GetAPIContext(req)
 			deferrable = t(ctx)
 			done = ctx.Written()
-			return
+			return done, deferrable
 		}
 	case func(*context.PrivateContext):
 		return func(resp http.ResponseWriter, req *http.Request, others ...wrappedHandlerFunc) (done bool, deferrable func()) {
@@ -78,7 +78,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			ctx := context.GetPrivateContext(req)
 			t(ctx)
 			done = ctx.Written()
-			return
+			return done, deferrable
 		}
 	case func(*context.PrivateContext) goctx.CancelFunc:
 		return func(resp http.ResponseWriter, req *http.Request, others ...wrappedHandlerFunc) (done bool, deferrable func()) {
@@ -86,7 +86,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			ctx := context.GetPrivateContext(req)
 			deferrable = t(ctx)
 			done = ctx.Written()
-			return
+			return done, deferrable
 		}
 	case func(http.Handler) http.Handler:
 		return func(resp http.ResponseWriter, req *http.Request, others ...wrappedHandlerFunc) (done bool, deferrable func()) {
@@ -102,7 +102,7 @@ func convertHandler(handler interface{}) wrappedHandlerFunc {
 			if r, ok := resp.(context.ResponseWriter); ok && r.Status() > 0 {
 				done = true
 			}
-			return
+			return done, deferrable
 		}
 	default:
 		panic(fmt.Sprintf("Unsupported handler type: %#v", t))
diff --git a/routers/api/v1/activitypub/reqsignature.go b/routers/api/v1/activitypub/reqsignature.go
index b870d1c0f9ee..5c0776602bc4 100644
--- a/routers/api/v1/activitypub/reqsignature.go
+++ b/routers/api/v1/activitypub/reqsignature.go
@@ -41,7 +41,7 @@ func getPublicKeyFromResponse(b []byte, keyID *url.URL) (p crypto.PublicKey, err
 		return
 	}
 	p, err = x509.ParsePKIXPublicKey(block.Bytes)
-	return
+	return p, err
 }
 
 func fetch(iri *url.URL) (b []byte, err error) {
@@ -59,7 +59,7 @@ func fetch(iri *url.URL) (b []byte, err error) {
 		return
 	}
 	b, err = io.ReadAll(io.LimitReader(resp.Body, setting.Federation.MaxSize))
-	return
+	return b, err
 }
 
 func verifyHTTPSignatures(ctx *gitea_context.APIContext) (authenticated bool, err error) {
@@ -87,7 +87,7 @@ func verifyHTTPSignatures(ctx *gitea_context.APIContext) (authenticated bool, er
 	// 3. Verify the other actor's key
 	algo := httpsig.Algorithm(setting.Federation.Algorithms[0])
 	authenticated = v.Verify(pubKey, algo) == nil
-	return
+	return authenticated, err
 }
 
 // ReqHTTPSignature function
diff --git a/routers/api/v1/notify/notifications.go b/routers/api/v1/notify/notifications.go
index 0a3684fbe6b6..44cb4ae769ec 100644
--- a/routers/api/v1/notify/notifications.go
+++ b/routers/api/v1/notify/notifications.go
@@ -63,5 +63,5 @@ func subjectToSource(value []string) (result []models.NotificationSource) {
 			result = append(result, models.NotificationSourceRepository)
 		}
 	}
-	return
+	return result
 }
diff --git a/routers/api/v1/org/org.go b/routers/api/v1/org/org.go
index d55a4a4514e3..5a8b253a2076 100644
--- a/routers/api/v1/org/org.go
+++ b/routers/api/v1/org/org.go
@@ -47,7 +47,7 @@ func listUserOrgs(ctx *context.APIContext, u *user_model.User) {
 	}
 
 	ctx.SetLinkHeader(int(maxResults), listOptions.PageSize)
-	ctx.SetTotalCountHeader(int64(maxResults))
+	ctx.SetTotalCountHeader(maxResults)
 	ctx.JSON(http.StatusOK, &apiOrgs)
 }
 
diff --git a/routers/api/v1/repo/file.go b/routers/api/v1/repo/file.go
index 2190094bac5c..1ac108883923 100644
--- a/routers/api/v1/repo/file.go
+++ b/routers/api/v1/repo/file.go
@@ -251,7 +251,7 @@ func getBlobForEntry(ctx *context.APIContext) (blob *git.Blob, lastModified time
 	}
 	blob = entry.Blob()
 
-	return
+	return blob, lastModified
 }
 
 // GetArchive get archive of a repository
diff --git a/routers/api/v1/repo/issue_label.go b/routers/api/v1/repo/issue_label.go
index 50c09e02fafe..091f1ce27c6f 100644
--- a/routers/api/v1/repo/issue_label.go
+++ b/routers/api/v1/repo/issue_label.go
@@ -321,5 +321,5 @@ func prepareForReplaceOrAdd(ctx *context.APIContext, form api.IssueLabelsOption)
 		return
 	}
 
-	return
+	return issue, labels, err
 }
diff --git a/routers/api/v1/repo/status.go b/routers/api/v1/repo/status.go
index f7bc2c5c8881..10e78f2a9b9b 100644
--- a/routers/api/v1/repo/status.go
+++ b/routers/api/v1/repo/status.go
@@ -57,7 +57,7 @@ func NewCommitStatus(ctx *context.APIContext) {
 		return
 	}
 	status := &git_model.CommitStatus{
-		State:       api.CommitStatusState(form.State),
+		State:       form.State,
 		TargetURL:   form.TargetURL,
 		Description: form.Description,
 		Context:     form.Context,
diff --git a/routers/api/v1/utils/hook.go b/routers/api/v1/utils/hook.go
index 4c3753231d58..f0dc595ad5cc 100644
--- a/routers/api/v1/utils/hook.go
+++ b/routers/api/v1/utils/hook.go
@@ -133,7 +133,7 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, orgID, repoID
 			BranchFilter: form.BranchFilter,
 		},
 		IsActive: form.Active,
-		Type:     webhook.HookType(form.Type),
+		Type:     form.Type,
 	}
 	if w.Type == webhook.SLACK {
 		channel, ok := form.Config["channel"]
diff --git a/routers/private/hook_pre_receive.go b/routers/private/hook_pre_receive.go
index cadfea782c41..fb4c039d4982 100644
--- a/routers/private/hook_pre_receive.go
+++ b/routers/private/hook_pre_receive.go
@@ -248,7 +248,7 @@ func preReceiveBranch(ctx *preReceiveContext, oldCommitID, newCommitID, refFullN
 	}
 
 	// 5. Check if the doer is allowed to push
-	canPush := false
+	var canPush bool
 	if ctx.opts.DeployKeyID != 0 {
 		canPush = !changedProtectedfiles && protectBranch.CanPush && (!protectBranch.EnableWhitelist || protectBranch.WhitelistDeployKeys)
 	} else {
diff --git a/routers/private/manager_process.go b/routers/private/manager_process.go
index f8932d61fae7..e12bbee18b4c 100644
--- a/routers/private/manager_process.go
+++ b/routers/private/manager_process.go
@@ -34,7 +34,7 @@ func Processes(ctx *context.PrivateContext) {
 
 	var processes []*process_module.Process
 	goroutineCount := int64(0)
-	processCount := 0
+	var processCount int
 	var err error
 	if stacktraces {
 		processes, processCount, goroutineCount, err = process_module.GetManager().ProcessStacktraces(flat, noSystem)
diff --git a/routers/private/serv.go b/routers/private/serv.go
index 803d51e9d969..ddb2e6aa8bff 100644
--- a/routers/private/serv.go
+++ b/routers/private/serv.go
@@ -142,7 +142,7 @@ func ServCommand(ctx *context.PrivateContext) {
 		if repo_model.IsErrRepoNotExist(err) {
 			repoExist = false
 			for _, verb := range ctx.FormStrings("verb") {
-				if "git-upload-pack" == verb {
+				if verb == "git-upload-pack" {
 					// User is fetching/cloning a non-existent repository
 					log.Warn("Failed authentication attempt (cannot find repository: %s/%s) from %s", results.OwnerName, results.RepoName, ctx.RemoteAddr())
 					ctx.JSON(http.StatusNotFound, private.ErrServCommand{
diff --git a/routers/web/admin/repos.go b/routers/web/admin/repos.go
index 809d1de74b94..8ce981ec2042 100644
--- a/routers/web/admin/repos.go
+++ b/routers/web/admin/repos.go
@@ -101,7 +101,7 @@ func UnadoptedRepos(ctx *context.Context) {
 		ctx.ServerError("ListUnadoptedRepositories", err)
 	}
 	ctx.Data["Dirs"] = repoNames
-	pager := context.NewPagination(int(count), opts.PageSize, opts.Page, 5)
+	pager := context.NewPagination(count, opts.PageSize, opts.Page, 5)
 	pager.SetDefaultParams(ctx)
 	pager.AddParam(ctx, "search", "search")
 	ctx.Data["Page"] = pager
diff --git a/routers/web/auth/oauth.go b/routers/web/auth/oauth.go
index d868b05a44a2..f70d69509c4e 100644
--- a/routers/web/auth/oauth.go
+++ b/routers/web/auth/oauth.go
@@ -168,7 +168,7 @@ func newAccessTokenResponse(ctx stdContext.Context, grant *auth.OAuth2Grant, ser
 		GrantID: grant.ID,
 		Counter: grant.Counter,
 		Type:    oauth2.TypeRefreshToken,
-		RegisteredClaims: jwt.RegisteredClaims{ // nolint
+		RegisteredClaims: jwt.RegisteredClaims{
 			ExpiresAt: jwt.NewNumericDate(refreshExpirationDate),
 		},
 	}
diff --git a/routers/web/feed/convert.go b/routers/web/feed/convert.go
index 64801a6078bc..978469d1259d 100644
--- a/routers/web/feed/convert.go
+++ b/routers/web/feed/convert.go
@@ -71,7 +71,7 @@ func feedActionsToFeedItems(ctx *context.Context, actions models.ActionList) (it
 	for _, act := range actions {
 		act.LoadActUser()
 
-		content, desc, title := "", "", ""
+		var content, desc, title string
 
 		link := &feeds.Link{Href: act.GetCommentLink()}
 
@@ -246,7 +246,7 @@ func feedActionsToFeedItems(ctx *context.Context, actions models.ActionList) (it
 			Content: content,
 		})
 	}
-	return
+	return items, err
 }
 
 // GetFeedType return if it is a feed request and altered name and feed type.
diff --git a/routers/web/repo/branch.go b/routers/web/repo/branch.go
index 84970a96a10d..d14ba6cbe9a4 100644
--- a/routers/web/repo/branch.go
+++ b/routers/web/repo/branch.go
@@ -80,7 +80,7 @@ func Branches(ctx *context.Context) {
 	}
 	ctx.Data["Branches"] = branches
 	ctx.Data["DefaultBranchBranch"] = defaultBranchBranch
-	pager := context.NewPagination(int(branchesCount), setting.Git.BranchesRangeSize, page, 5)
+	pager := context.NewPagination(branchesCount, setting.Git.BranchesRangeSize, page, 5)
 	pager.SetDefaultParams(ctx)
 	ctx.Data["Page"] = pager
 
diff --git a/routers/web/repo/download.go b/routers/web/repo/download.go
index 2a83bafa8572..6755cda87486 100644
--- a/routers/web/repo/download.go
+++ b/routers/web/repo/download.go
@@ -116,7 +116,7 @@ func getBlobForEntry(ctx *context.Context) (blob *git.Blob, lastModified time.Ti
 	}
 	blob = entry.Blob()
 
-	return
+	return blob, lastModified
 }
 
 // SingleDownload download a file by repos path
diff --git a/routers/web/repo/editor_test.go b/routers/web/repo/editor_test.go
index 2bebb6fd5227..ac0c3858979d 100644
--- a/routers/web/repo/editor_test.go
+++ b/routers/web/repo/editor_test.go
@@ -70,9 +70,7 @@ func TestGetClosestParentWithFiles(t *testing.T) {
 	gitRepo, _ := git.OpenRepository(git.DefaultContext, repo.RepoPath())
 	defer gitRepo.Close()
 	commit, _ := gitRepo.GetBranchCommit(branch)
-	expectedTreePath := ""
-
-	expectedTreePath = "" // Should return the root dir, empty string, since there are no subdirs in this repo
+	var expectedTreePath string // Should return the root dir, empty string, since there are no subdirs in this repo
 	for _, deletedFile := range []string{
 		"dir1/dir2/dir3/file.txt",
 		"file.txt",
diff --git a/routers/web/repo/projects.go b/routers/web/repo/projects.go
index 51c891dbf0b3..0aa9b5effc00 100644
--- a/routers/web/repo/projects.go
+++ b/routers/web/repo/projects.go
@@ -105,7 +105,7 @@ func Projects(ctx *context.Context) {
 
 	numPages := 0
 	if count > 0 {
-		numPages = int((int(count) - 1) / setting.UI.IssuePagingNum)
+		numPages = (int(count) - 1/setting.UI.IssuePagingNum)
 	}
 
 	pager := context.NewPagination(total, setting.UI.IssuePagingNum, page, numPages)
diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go
index c327f959f655..17169699dfbe 100644
--- a/routers/web/repo/view.go
+++ b/routers/web/repo/view.go
@@ -353,7 +353,7 @@ func renderReadmeFile(ctx *context.Context, readmeFile *namedBlob, readmeTreelin
 
 	if markupType := markup.Type(readmeFile.name); markupType != "" {
 		ctx.Data["IsMarkup"] = true
-		ctx.Data["MarkupType"] = string(markupType)
+		ctx.Data["MarkupType"] = markupType
 		var result strings.Builder
 		err := markup.Render(&markup.RenderContext{
 			Ctx:          ctx,
diff --git a/routers/web/user/setting/profile.go b/routers/web/user/setting/profile.go
index 972271269f14..46399338fa50 100644
--- a/routers/web/user/setting/profile.go
+++ b/routers/web/user/setting/profile.go
@@ -347,7 +347,7 @@ func Repos(ctx *context.Context) {
 		ctx.Data["Repos"] = repos
 	}
 	ctx.Data["Owner"] = ctxUser
-	pager := context.NewPagination(int(count), opts.PageSize, opts.Page, 5)
+	pager := context.NewPagination(count, opts.PageSize, opts.Page, 5)
 	pager.SetDefaultParams(ctx)
 	ctx.Data["Page"] = pager
 	ctx.HTML(http.StatusOK, tplSettingsRepositories)
diff --git a/routers/web/web.go b/routers/web/web.go
index 374bafbc8dbc..d19bc5015d5e 100644
--- a/routers/web/web.go
+++ b/routers/web/web.go
@@ -138,7 +138,7 @@ func Routes() *web.Route {
 
 	// redirect default favicon to the path of the custom favicon with a default as a fallback
 	routes.Get("/favicon.ico", func(w http.ResponseWriter, req *http.Request) {
-		http.Redirect(w, req, path.Join(setting.StaticURLPrefix, "/assets/img/favicon.png"), 301)
+		http.Redirect(w, req, path.Join(setting.StaticURLPrefix, "/assets/img/favicon.png"), http.StatusMovedPermanently)
 	})
 
 	common := []interface{}{}
@@ -1121,7 +1121,7 @@ func RegisterRoutes(m *web.Route) {
 			}
 
 			repo.MustBeNotEmpty(ctx)
-			return
+			return cancel
 		})
 
 		m.Group("/pulls/{index}", func() {
diff --git a/services/agit/agit.go b/services/agit/agit.go
index 4359557a1e17..9f0ce7512335 100644
--- a/services/agit/agit.go
+++ b/services/agit/agit.go
@@ -80,7 +80,7 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git.
 			continue
 		}
 
-		headBranch := ""
+		var headBranch string
 		userName := strings.ToLower(opts.UserName)
 
 		if len(curentTopicBranch) == 0 {
@@ -104,7 +104,7 @@ func ProcReceive(ctx context.Context, repo *repo_model.Repository, gitRepo *git.
 
 			// create a new pull request
 			if len(title) == 0 {
-				has := false
+				var has bool
 				title, has = opts.GitPushOptions["title"]
 				if !has || len(title) == 0 {
 					commit, err := gitRepo.GetCommit(opts.NewCommitIDs[i])
diff --git a/services/auth/source/ldap/source_search.go b/services/auth/source/ldap/source_search.go
index d01fd14c8b97..988d56005e01 100644
--- a/services/auth/source/ldap/source_search.go
+++ b/services/auth/source/ldap/source_search.go
@@ -34,7 +34,7 @@ type SearchResult struct {
 	LdapTeamRemove map[string][]string // organizations teams to remove
 }
 
-func (ls *Source) sanitizedUserQuery(username string) (string, bool) {
+func (source *Source) sanitizedUserQuery(username string) (string, bool) {
 	// See http://tools.ietf.org/search/rfc4515
 	badCharacters := "\x00()*\\"
 	if strings.ContainsAny(username, badCharacters) {
@@ -42,10 +42,10 @@ func (ls *Source) sanitizedUserQuery(username string) (string, bool) {
 		return "", false
 	}
 
-	return fmt.Sprintf(ls.Filter, username), true
+	return fmt.Sprintf(source.Filter, username), true
 }
 
-func (ls *Source) sanitizedUserDN(username string) (string, bool) {
+func (source *Source) sanitizedUserDN(username string) (string, bool) {
 	// See http://tools.ietf.org/search/rfc4514: "special characters"
 	badCharacters := "\x00()*\\,='\"#+;<>"
 	if strings.ContainsAny(username, badCharacters) {
@@ -53,10 +53,10 @@ func (ls *Source) sanitizedUserDN(username string) (string, bool) {
 		return "", false
 	}
 
-	return fmt.Sprintf(ls.UserDN, username), true
+	return fmt.Sprintf(source.UserDN, username), true
 }
 
-func (ls *Source) sanitizedGroupFilter(group string) (string, bool) {
+func (source *Source) sanitizedGroupFilter(group string) (string, bool) {
 	// See http://tools.ietf.org/search/rfc4515
 	badCharacters := "\x00*\\"
 	if strings.ContainsAny(group, badCharacters) {
@@ -67,7 +67,7 @@ func (ls *Source) sanitizedGroupFilter(group string) (string, bool) {
 	return group, true
 }
 
-func (ls *Source) sanitizedGroupDN(groupDn string) (string, bool) {
+func (source *Source) sanitizedGroupDN(groupDn string) (string, bool) {
 	// See http://tools.ietf.org/search/rfc4514: "special characters"
 	badCharacters := "\x00()*\\'\"#+;<>"
 	if strings.ContainsAny(groupDn, badCharacters) || strings.HasPrefix(groupDn, " ") || strings.HasSuffix(groupDn, " ") {
@@ -78,18 +78,18 @@ func (ls *Source) sanitizedGroupDN(groupDn string) (string, bool) {
 	return groupDn, true
 }
 
-func (ls *Source) findUserDN(l *ldap.Conn, name string) (string, bool) {
+func (source *Source) findUserDN(l *ldap.Conn, name string) (string, bool) {
 	log.Trace("Search for LDAP user: %s", name)
 
 	// A search for the user.
-	userFilter, ok := ls.sanitizedUserQuery(name)
+	userFilter, ok := source.sanitizedUserQuery(name)
 	if !ok {
 		return "", false
 	}
 
-	log.Trace("Searching for DN using filter %s and base %s", userFilter, ls.UserBase)
+	log.Trace("Searching for DN using filter %s and base %s", userFilter, source.UserBase)
 	search := ldap.NewSearchRequest(
-		ls.UserBase, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0,
+		source.UserBase, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0,
 		false, userFilter, []string{}, nil)
 
 	// Ensure we found a user
@@ -197,11 +197,11 @@ func checkRestricted(l *ldap.Conn, ls *Source, userDN string) bool {
 }
 
 // List all group memberships of a user
-func (ls *Source) listLdapGroupMemberships(l *ldap.Conn, uid string) []string {
+func (source *Source) listLdapGroupMemberships(l *ldap.Conn, uid string) []string {
 	var ldapGroups []string
-	groupFilter := fmt.Sprintf("(%s=%s)", ls.GroupMemberUID, uid)
+	groupFilter := fmt.Sprintf("(%s=%s)", source.GroupMemberUID, uid)
 	result, err := l.Search(ldap.NewSearchRequest(
-		ls.GroupDN,
+		source.GroupDN,
 		ldap.ScopeWholeSubtree,
 		ldap.NeverDerefAliases,
 		0,
@@ -228,9 +228,9 @@ func (ls *Source) listLdapGroupMemberships(l *ldap.Conn, uid string) []string {
 }
 
 // parse LDAP groups and return map of ldap groups to organizations teams
-func (ls *Source) mapLdapGroupsToTeams() map[string]map[string][]string {
+func (source *Source) mapLdapGroupsToTeams() map[string]map[string][]string {
 	ldapGroupsToTeams := make(map[string]map[string][]string)
-	err := json.Unmarshal([]byte(ls.GroupTeamMap), &ldapGroupsToTeams)
+	err := json.Unmarshal([]byte(source.GroupTeamMap), &ldapGroupsToTeams)
 	if err != nil {
 		log.Error("Failed to unmarshall LDAP teams map: %v", err)
 		return ldapGroupsToTeams
@@ -239,11 +239,11 @@ func (ls *Source) mapLdapGroupsToTeams() map[string]map[string][]string {
 }
 
 // getMappedMemberships : returns the organizations and teams to modify the users membership
-func (ls *Source) getMappedMemberships(l *ldap.Conn, uid string) (map[string][]string, map[string][]string) {
+func (source *Source) getMappedMemberships(l *ldap.Conn, uid string) (map[string][]string, map[string][]string) {
 	// get all LDAP group memberships for user
-	usersLdapGroups := ls.listLdapGroupMemberships(l, uid)
+	usersLdapGroups := source.listLdapGroupMemberships(l, uid)
 	// unmarshall LDAP group team map from configs
-	ldapGroupsToTeams := ls.mapLdapGroupsToTeams()
+	ldapGroupsToTeams := source.mapLdapGroupsToTeams()
 	membershipsToAdd := map[string][]string{}
 	membershipsToRemove := map[string][]string{}
 	for group, memberships := range ldapGroupsToTeams {
@@ -262,26 +262,26 @@ func (ls *Source) getMappedMemberships(l *ldap.Conn, uid string) (map[string][]s
 }
 
 // SearchEntry : search an LDAP source if an entry (name, passwd) is valid and in the specific filter
-func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResult {
+func (source *Source) SearchEntry(name, passwd string, directBind bool) *SearchResult {
 	// See https://tools.ietf.org/search/rfc4513#section-5.1.2
 	if len(passwd) == 0 {
 		log.Debug("Auth. failed for %s, password cannot be empty", name)
 		return nil
 	}
-	l, err := dial(ls)
+	l, err := dial(source)
 	if err != nil {
-		log.Error("LDAP Connect error, %s:%v", ls.Host, err)
-		ls.Enabled = false
+		log.Error("LDAP Connect error, %s:%v", source.Host, err)
+		source.Enabled = false
 		return nil
 	}
 	defer l.Close()
 
 	var userDN string
 	if directBind {
-		log.Trace("LDAP will bind directly via UserDN template: %s", ls.UserDN)
+		log.Trace("LDAP will bind directly via UserDN template: %s", source.UserDN)
 
 		var ok bool
-		userDN, ok = ls.sanitizedUserDN(name)
+		userDN, ok = source.sanitizedUserDN(name)
 
 		if !ok {
 			return nil
@@ -292,11 +292,11 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 			return nil
 		}
 
-		if ls.UserBase != "" {
+		if source.UserBase != "" {
 			// not everyone has a CN compatible with input name so we need to find
 			// the real userDN in that case
 
-			userDN, ok = ls.findUserDN(l, name)
+			userDN, ok = source.findUserDN(l, name)
 			if !ok {
 				return nil
 			}
@@ -306,24 +306,24 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 
 		var found bool
 
-		if ls.BindDN != "" && ls.BindPassword != "" {
-			err := l.Bind(ls.BindDN, ls.BindPassword)
+		if source.BindDN != "" && source.BindPassword != "" {
+			err := l.Bind(source.BindDN, source.BindPassword)
 			if err != nil {
-				log.Debug("Failed to bind as BindDN[%s]: %v", ls.BindDN, err)
+				log.Debug("Failed to bind as BindDN[%s]: %v", source.BindDN, err)
 				return nil
 			}
-			log.Trace("Bound as BindDN %s", ls.BindDN)
+			log.Trace("Bound as BindDN %s", source.BindDN)
 		} else {
 			log.Trace("Proceeding with anonymous LDAP search.")
 		}
 
-		userDN, found = ls.findUserDN(l, name)
+		userDN, found = source.findUserDN(l, name)
 		if !found {
 			return nil
 		}
 	}
 
-	if !ls.AttributesInBind {
+	if !source.AttributesInBind {
 		// binds user (checking password) before looking-up attributes in user context
 		err = bindUser(l, userDN, passwd)
 		if err != nil {
@@ -331,26 +331,26 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 		}
 	}
 
-	userFilter, ok := ls.sanitizedUserQuery(name)
+	userFilter, ok := source.sanitizedUserQuery(name)
 	if !ok {
 		return nil
 	}
 
-	isAttributeSSHPublicKeySet := len(strings.TrimSpace(ls.AttributeSSHPublicKey)) > 0
-	isAtributeAvatarSet := len(strings.TrimSpace(ls.AttributeAvatar)) > 0
+	isAttributeSSHPublicKeySet := len(strings.TrimSpace(source.AttributeSSHPublicKey)) > 0
+	isAtributeAvatarSet := len(strings.TrimSpace(source.AttributeAvatar)) > 0
 
-	attribs := []string{ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail}
-	if len(strings.TrimSpace(ls.UserUID)) > 0 {
-		attribs = append(attribs, ls.UserUID)
+	attribs := []string{source.AttributeUsername, source.AttributeName, source.AttributeSurname, source.AttributeMail}
+	if len(strings.TrimSpace(source.UserUID)) > 0 {
+		attribs = append(attribs, source.UserUID)
 	}
 	if isAttributeSSHPublicKeySet {
-		attribs = append(attribs, ls.AttributeSSHPublicKey)
+		attribs = append(attribs, source.AttributeSSHPublicKey)
 	}
 	if isAtributeAvatarSet {
-		attribs = append(attribs, ls.AttributeAvatar)
+		attribs = append(attribs, source.AttributeAvatar)
 	}
 
-	log.Trace("Fetching attributes '%v', '%v', '%v', '%v', '%v', '%v', '%v' with filter '%s' and base '%s'", ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail, ls.AttributeSSHPublicKey, ls.AttributeAvatar, ls.UserUID, userFilter, userDN)
+	log.Trace("Fetching attributes '%v', '%v', '%v', '%v', '%v', '%v', '%v' with filter '%s' and base '%s'", source.AttributeUsername, source.AttributeName, source.AttributeSurname, source.AttributeMail, source.AttributeSSHPublicKey, source.AttributeAvatar, source.UserUID, userFilter, userDN)
 	search := ldap.NewSearchRequest(
 		userDN, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, userFilter,
 		attribs, nil)
@@ -372,30 +372,30 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 	var sshPublicKey []string
 	var Avatar []byte
 
-	username := sr.Entries[0].GetAttributeValue(ls.AttributeUsername)
-	firstname := sr.Entries[0].GetAttributeValue(ls.AttributeName)
-	surname := sr.Entries[0].GetAttributeValue(ls.AttributeSurname)
-	mail := sr.Entries[0].GetAttributeValue(ls.AttributeMail)
-	uid := sr.Entries[0].GetAttributeValue(ls.UserUID)
-	if ls.UserUID == "dn" || ls.UserUID == "DN" {
+	username := sr.Entries[0].GetAttributeValue(source.AttributeUsername)
+	firstname := sr.Entries[0].GetAttributeValue(source.AttributeName)
+	surname := sr.Entries[0].GetAttributeValue(source.AttributeSurname)
+	mail := sr.Entries[0].GetAttributeValue(source.AttributeMail)
+	uid := sr.Entries[0].GetAttributeValue(source.UserUID)
+	if source.UserUID == "dn" || source.UserUID == "DN" {
 		uid = sr.Entries[0].DN
 	}
 
 	// Check group membership
-	if ls.GroupsEnabled && ls.GroupFilter != "" {
-		groupFilter, ok := ls.sanitizedGroupFilter(ls.GroupFilter)
+	if source.GroupsEnabled && source.GroupFilter != "" {
+		groupFilter, ok := source.sanitizedGroupFilter(source.GroupFilter)
 		if !ok {
 			return nil
 		}
-		groupDN, ok := ls.sanitizedGroupDN(ls.GroupDN)
+		groupDN, ok := source.sanitizedGroupDN(source.GroupDN)
 		if !ok {
 			return nil
 		}
 
-		log.Trace("Fetching groups '%v' with filter '%s' and base '%s'", ls.GroupMemberUID, groupFilter, groupDN)
+		log.Trace("Fetching groups '%v' with filter '%s' and base '%s'", source.GroupMemberUID, groupFilter, groupDN)
 		groupSearch := ldap.NewSearchRequest(
 			groupDN, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, groupFilter,
-			[]string{ls.GroupMemberUID},
+			[]string{source.GroupMemberUID},
 			nil)
 
 		srg, err := l.Search(groupSearch)
@@ -410,8 +410,8 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 		isMember := false
 	Entries:
 		for _, group := range srg.Entries {
-			for _, member := range group.GetAttributeValues(ls.GroupMemberUID) {
-				if (ls.UserUID == "dn" && member == sr.Entries[0].DN) || member == uid {
+			for _, member := range group.GetAttributeValues(source.GroupMemberUID) {
+				if (source.UserUID == "dn" && member == sr.Entries[0].DN) || member == uid {
 					isMember = true
 					break Entries
 				}
@@ -425,25 +425,25 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 	}
 
 	if isAttributeSSHPublicKeySet {
-		sshPublicKey = sr.Entries[0].GetAttributeValues(ls.AttributeSSHPublicKey)
+		sshPublicKey = sr.Entries[0].GetAttributeValues(source.AttributeSSHPublicKey)
 	}
-	isAdmin := checkAdmin(l, ls, userDN)
+	isAdmin := checkAdmin(l, source, userDN)
 	var isRestricted bool
 	if !isAdmin {
-		isRestricted = checkRestricted(l, ls, userDN)
+		isRestricted = checkRestricted(l, source, userDN)
 	}
 
 	if isAtributeAvatarSet {
-		Avatar = sr.Entries[0].GetRawAttributeValue(ls.AttributeAvatar)
+		Avatar = sr.Entries[0].GetRawAttributeValue(source.AttributeAvatar)
 	}
 
 	teamsToAdd := make(map[string][]string)
 	teamsToRemove := make(map[string][]string)
-	if ls.GroupsEnabled && (ls.GroupTeamMap != "" || ls.GroupTeamMapRemoval) {
-		teamsToAdd, teamsToRemove = ls.getMappedMemberships(l, uid)
+	if source.GroupsEnabled && (source.GroupTeamMap != "" || source.GroupTeamMapRemoval) {
+		teamsToAdd, teamsToRemove = source.getMappedMemberships(l, uid)
 	}
 
-	if !directBind && ls.AttributesInBind {
+	if !directBind && source.AttributesInBind {
 		// binds user (checking password) after looking-up attributes in BindDN context
 		err = bindUser(l, userDN, passwd)
 		if err != nil {
@@ -467,52 +467,52 @@ func (ls *Source) SearchEntry(name, passwd string, directBind bool) *SearchResul
 }
 
 // UsePagedSearch returns if need to use paged search
-func (ls *Source) UsePagedSearch() bool {
-	return ls.SearchPageSize > 0
+func (source *Source) UsePagedSearch() bool {
+	return source.SearchPageSize > 0
 }
 
 // SearchEntries : search an LDAP source for all users matching userFilter
-func (ls *Source) SearchEntries() ([]*SearchResult, error) {
-	l, err := dial(ls)
+func (source *Source) SearchEntries() ([]*SearchResult, error) {
+	l, err := dial(source)
 	if err != nil {
-		log.Error("LDAP Connect error, %s:%v", ls.Host, err)
-		ls.Enabled = false
+		log.Error("LDAP Connect error, %s:%v", source.Host, err)
+		source.Enabled = false
 		return nil, err
 	}
 	defer l.Close()
 
-	if ls.BindDN != "" && ls.BindPassword != "" {
-		err := l.Bind(ls.BindDN, ls.BindPassword)
+	if source.BindDN != "" && source.BindPassword != "" {
+		err := l.Bind(source.BindDN, source.BindPassword)
 		if err != nil {
-			log.Debug("Failed to bind as BindDN[%s]: %v", ls.BindDN, err)
+			log.Debug("Failed to bind as BindDN[%s]: %v", source.BindDN, err)
 			return nil, err
 		}
-		log.Trace("Bound as BindDN %s", ls.BindDN)
+		log.Trace("Bound as BindDN %s", source.BindDN)
 	} else {
 		log.Trace("Proceeding with anonymous LDAP search.")
 	}
 
-	userFilter := fmt.Sprintf(ls.Filter, "*")
+	userFilter := fmt.Sprintf(source.Filter, "*")
 
-	isAttributeSSHPublicKeySet := len(strings.TrimSpace(ls.AttributeSSHPublicKey)) > 0
-	isAtributeAvatarSet := len(strings.TrimSpace(ls.AttributeAvatar)) > 0
+	isAttributeSSHPublicKeySet := len(strings.TrimSpace(source.AttributeSSHPublicKey)) > 0
+	isAtributeAvatarSet := len(strings.TrimSpace(source.AttributeAvatar)) > 0
 
-	attribs := []string{ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail, ls.UserUID}
+	attribs := []string{source.AttributeUsername, source.AttributeName, source.AttributeSurname, source.AttributeMail, source.UserUID}
 	if isAttributeSSHPublicKeySet {
-		attribs = append(attribs, ls.AttributeSSHPublicKey)
+		attribs = append(attribs, source.AttributeSSHPublicKey)
 	}
 	if isAtributeAvatarSet {
-		attribs = append(attribs, ls.AttributeAvatar)
+		attribs = append(attribs, source.AttributeAvatar)
 	}
 
-	log.Trace("Fetching attributes '%v', '%v', '%v', '%v', '%v', '%v' with filter %s and base %s", ls.AttributeUsername, ls.AttributeName, ls.AttributeSurname, ls.AttributeMail, ls.AttributeSSHPublicKey, ls.AttributeAvatar, userFilter, ls.UserBase)
+	log.Trace("Fetching attributes '%v', '%v', '%v', '%v', '%v', '%v' with filter %s and base %s", source.AttributeUsername, source.AttributeName, source.AttributeSurname, source.AttributeMail, source.AttributeSSHPublicKey, source.AttributeAvatar, userFilter, source.UserBase)
 	search := ldap.NewSearchRequest(
-		ls.UserBase, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, userFilter,
+		source.UserBase, ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false, userFilter,
 		attribs, nil)
 
 	var sr *ldap.SearchResult
-	if ls.UsePagedSearch() {
-		sr, err = l.SearchWithPaging(search, ls.SearchPageSize)
+	if source.UsePagedSearch() {
+		sr, err = l.SearchWithPaging(search, source.SearchPageSize)
 	} else {
 		sr, err = l.Search(search)
 	}
@@ -526,30 +526,30 @@ func (ls *Source) SearchEntries() ([]*SearchResult, error) {
 	for i, v := range sr.Entries {
 		teamsToAdd := make(map[string][]string)
 		teamsToRemove := make(map[string][]string)
-		if ls.GroupsEnabled && (ls.GroupTeamMap != "" || ls.GroupTeamMapRemoval) {
-			userAttributeListedInGroup := v.GetAttributeValue(ls.UserUID)
-			if ls.UserUID == "dn" || ls.UserUID == "DN" {
+		if source.GroupsEnabled && (source.GroupTeamMap != "" || source.GroupTeamMapRemoval) {
+			userAttributeListedInGroup := v.GetAttributeValue(source.UserUID)
+			if source.UserUID == "dn" || source.UserUID == "DN" {
 				userAttributeListedInGroup = v.DN
 			}
-			teamsToAdd, teamsToRemove = ls.getMappedMemberships(l, userAttributeListedInGroup)
+			teamsToAdd, teamsToRemove = source.getMappedMemberships(l, userAttributeListedInGroup)
 		}
 		result[i] = &SearchResult{
-			Username:       v.GetAttributeValue(ls.AttributeUsername),
-			Name:           v.GetAttributeValue(ls.AttributeName),
-			Surname:        v.GetAttributeValue(ls.AttributeSurname),
-			Mail:           v.GetAttributeValue(ls.AttributeMail),
-			IsAdmin:        checkAdmin(l, ls, v.DN),
+			Username:       v.GetAttributeValue(source.AttributeUsername),
+			Name:           v.GetAttributeValue(source.AttributeName),
+			Surname:        v.GetAttributeValue(source.AttributeSurname),
+			Mail:           v.GetAttributeValue(source.AttributeMail),
+			IsAdmin:        checkAdmin(l, source, v.DN),
 			LdapTeamAdd:    teamsToAdd,
 			LdapTeamRemove: teamsToRemove,
 		}
 		if !result[i].IsAdmin {
-			result[i].IsRestricted = checkRestricted(l, ls, v.DN)
+			result[i].IsRestricted = checkRestricted(l, source, v.DN)
 		}
 		if isAttributeSSHPublicKeySet {
-			result[i].SSHPublicKey = v.GetAttributeValues(ls.AttributeSSHPublicKey)
+			result[i].SSHPublicKey = v.GetAttributeValues(source.AttributeSSHPublicKey)
 		}
 		if isAtributeAvatarSet {
-			result[i].Avatar = v.GetRawAttributeValue(ls.AttributeAvatar)
+			result[i].Avatar = v.GetRawAttributeValue(source.AttributeAvatar)
 		}
 		result[i].LowerName = strings.ToLower(result[i].Username)
 	}
diff --git a/services/auth/sspi_windows.go b/services/auth/sspi_windows.go
index 7c9529a76bc9..7e31378b6c4d 100644
--- a/services/auth/sspi_windows.go
+++ b/services/auth/sspi_windows.go
@@ -180,7 +180,7 @@ func (s *SSPI) shouldAuthenticate(req *http.Request) (shouldAuth bool) {
 	} else if middleware.IsAPIPath(req) || isAttachmentDownload(req) {
 		shouldAuth = true
 	}
-	return
+	return shouldAuth
 }
 
 // newUser creates a new user object for the purpose of automatic registration
diff --git a/services/automerge/automerge.go b/services/automerge/automerge.go
index d0f83f4a9351..ca008ebfe6c8 100644
--- a/services/automerge/automerge.go
+++ b/services/automerge/automerge.go
@@ -82,7 +82,7 @@ func ScheduleAutoMerge(ctx context.Context, doer *user_model.User, pull *issues_
 		_, err = issues_model.CreateAutoMergeComment(ctx, issues_model.CommentTypePRScheduledToAutoMerge, pull, doer)
 		return err
 	}, ctx)
-	return
+	return scheduled, err
 }
 
 // RemoveScheduledAutoMerge cancels a previously scheduled pull request
diff --git a/services/gitdiff/gitdiff.go b/services/gitdiff/gitdiff.go
index 37dc0e114dac..6e8c149dabd9 100644
--- a/services/gitdiff/gitdiff.go
+++ b/services/gitdiff/gitdiff.go
@@ -1011,7 +1011,7 @@ parsingLoop:
 
 func skipToNextDiffHead(input *bufio.Reader) (line string, err error) {
 	// need to skip until the next cmdDiffHead
-	isFragment, wasFragment := false, false
+	var isFragment, wasFragment bool
 	var lineBytes []byte
 	for {
 		lineBytes, isFragment, err = input.ReadLine()
@@ -1036,7 +1036,7 @@ func skipToNextDiffHead(input *bufio.Reader) (line string, err error) {
 		}
 		line += tail
 	}
-	return
+	return line, err
 }
 
 func parseHunks(curFile *DiffFile, maxLines, maxLineCharacters int, input *bufio.Reader) (lineBytes []byte, isFragment bool, err error) {
@@ -1257,8 +1257,7 @@ func createDiffFile(diff *Diff, line string) *DiffFile {
 
 	rd := strings.NewReader(line[len(cmdDiffHead):] + " ")
 	curFile.Type = DiffFileChange
-	oldNameAmbiguity := false
-	newNameAmbiguity := false
+	var oldNameAmbiguity, newNameAmbiguity bool
 
 	curFile.OldName, oldNameAmbiguity = readFileName(rd)
 	curFile.Name, newNameAmbiguity = readFileName(rd)
diff --git a/services/issue/assignee.go b/services/issue/assignee.go
index 7c00f472ddd2..aefd8cff9a7f 100644
--- a/services/issue/assignee.go
+++ b/services/issue/assignee.go
@@ -59,7 +59,7 @@ func ToggleAssignee(issue *issues_model.Issue, doer *user_model.User, assigneeID
 
 	notification.NotifyIssueChangeAssignee(doer, issue, assignee, removed, comment)
 
-	return
+	return removed, comment, err
 }
 
 // ReviewRequest add or remove a review request from a user for this PR, and make comment for it.
@@ -78,7 +78,7 @@ func ReviewRequest(issue *issues_model.Issue, doer, reviewer *user_model.User, i
 		notification.NotifyPullReviewRequest(doer, issue, reviewer, isAdd, comment)
 	}
 
-	return
+	return comment, err
 }
 
 // IsValidReviewRequest Check permission for ReviewRequest
@@ -262,5 +262,5 @@ func TeamReviewRequest(issue *issues_model.Issue, doer *user_model.User, reviewe
 		notification.NotifyPullReviewRequest(doer, issue, member, isAdd, comment)
 	}
 
-	return
+	return comment, err
 }
diff --git a/services/issue/issue.go b/services/issue/issue.go
index 467bc14b8459..7131829b03e4 100644
--- a/services/issue/issue.go
+++ b/services/issue/issue.go
@@ -129,7 +129,7 @@ func UpdateAssignees(issue *issues_model.Issue, oneAssignee string, multipleAssi
 		}
 	}
 
-	return
+	return err
 }
 
 // DeleteIssue deletes an issue
diff --git a/services/mailer/mail.go b/services/mailer/mail.go
index 81cfb2e31a7e..f93622955185 100644
--- a/services/mailer/mail.go
+++ b/services/mailer/mail.go
@@ -287,7 +287,7 @@ func composeIssueCommentMessages(ctx *mailCommentContext, lang string, recipient
 	}
 
 	var mailSubject bytes.Buffer
-	if err := subjectTemplates.ExecuteTemplate(&mailSubject, string(tplName), mailMeta); err == nil {
+	if err := subjectTemplates.ExecuteTemplate(&mailSubject, tplName, mailMeta); err == nil {
 		subject = sanitizeSubject(mailSubject.String())
 		if subject == "" {
 			subject = fallback
@@ -302,8 +302,8 @@ func composeIssueCommentMessages(ctx *mailCommentContext, lang string, recipient
 
 	var mailBody bytes.Buffer
 
-	if err := bodyTemplates.ExecuteTemplate(&mailBody, string(tplName), mailMeta); err != nil {
-		log.Error("ExecuteTemplate [%s]: %v", string(tplName)+"/body", err)
+	if err := bodyTemplates.ExecuteTemplate(&mailBody, tplName, mailMeta); err != nil {
+		log.Error("ExecuteTemplate [%s]: %v", tplName+"/body", err)
 	}
 
 	// Make sure to compose independent messages to avoid leaking user emails
@@ -498,5 +498,5 @@ func actionToTemplate(issue *issues_model.Issue, actionType models.ActionType,
 	if !ok {
 		template = "issue/default"
 	}
-	return
+	return typeName, name, template
 }
diff --git a/services/mailer/mail_test.go b/services/mailer/mail_test.go
index 83955a58960c..93837ba8c4ca 100644
--- a/services/mailer/mail_test.go
+++ b/services/mailer/mail_test.go
@@ -61,7 +61,7 @@ func prepareMailerTest(t *testing.T) (doer *user_model.User, repo *repo_model.Re
 	issue = unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 1, Repo: repo, Poster: doer}).(*issues_model.Issue)
 	assert.NoError(t, issue.LoadRepo(db.DefaultContext))
 	comment = unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: 2, Issue: issue}).(*issues_model.Comment)
-	return
+	return doer, repo, issue, comment
 }
 
 func TestComposeIssueCommentMessage(t *testing.T) {
diff --git a/services/migrations/onedev.go b/services/migrations/onedev.go
index d4b30939ce95..a46ba35f722b 100644
--- a/services/migrations/onedev.go
+++ b/services/migrations/onedev.go
@@ -38,7 +38,7 @@ func (f *OneDevDownloaderFactory) New(ctx context.Context, opts base.MigrateOpti
 		return nil, err
 	}
 
-	repoName := ""
+	var repoName string
 
 	fields := strings.Split(strings.Trim(u.Path, "/"), "/")
 	if len(fields) == 2 && fields[0] == "projects" {
diff --git a/services/pull/merge.go b/services/pull/merge.go
index e8bb3a1cdd23..4cd4e3bd7e05 100644
--- a/services/pull/merge.go
+++ b/services/pull/merge.go
@@ -358,7 +358,7 @@ func rawMerge(ctx context.Context, pr *issues_model.PullRequest, doer *user_mode
 	committer := sig
 
 	// Determine if we should sign
-	signArg := ""
+	var signArg string
 	sign, keyID, signer, _ := asymkey_service.SignMerge(ctx, pr, doer, tmpBasePath, "HEAD", trackingBranch)
 	if sign {
 		signArg = "-S" + keyID
@@ -858,7 +858,7 @@ func MergedManually(pr *issues_model.PullRequest, doer *user_model.User, baseGit
 		pr.Merger = doer
 		pr.MergerID = doer.ID
 
-		merged := false
+		var merged bool
 		if merged, err = pr.SetMerged(ctx); err != nil {
 			return err
 		} else if !merged {
diff --git a/services/pull/review.go b/services/pull/review.go
index 9cb58fa3a159..6bb8877b0ffa 100644
--- a/services/pull/review.go
+++ b/services/pull/review.go
@@ -318,5 +318,5 @@ func DismissReview(ctx context.Context, reviewID int64, message string, doer *us
 
 	notification.NotifyPullRevieweDismiss(doer, review, comment)
 
-	return
+	return comment, err
 }
diff --git a/services/task/migrate.go b/services/task/migrate.go
index 6f3513452581..651681ef65e7 100644
--- a/services/task/migrate.go
+++ b/services/task/migrate.go
@@ -139,5 +139,5 @@ func runMigrateTask(t *models.Task) (err error) {
 
 	// do not be tempted to coalesce this line with the return
 	err = handleCreateError(t.Owner, err)
-	return
+	return err
 }
diff --git a/services/webhook/webhook.go b/services/webhook/webhook.go
index 68cfe147aa9f..767c3701f37d 100644
--- a/services/webhook/webhook.go
+++ b/services/webhook/webhook.go
@@ -70,7 +70,7 @@ var webhooks = map[webhook_model.HookType]*webhook{
 
 // RegisterWebhook registers a webhook
 func RegisterWebhook(name string, webhook *webhook) {
-	webhooks[webhook_model.HookType(name)] = webhook
+	webhooks[name] = webhook
 }
 
 // IsValidHookTaskType returns true if a webhook registered
@@ -78,7 +78,7 @@ func IsValidHookTaskType(name string) bool {
 	if name == webhook_model.GITEA || name == webhook_model.GOGS {
 		return true
 	}
-	_, ok := webhooks[webhook_model.HookType(name)]
+	_, ok := webhooks[name]
 	return ok
 }