mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Add more linters to improve code readability (#19989)
Add nakedret, unconvert, wastedassign, stylecheck and nolintlint linters to improve code readability - nakedret - https://github.com/alexkohler/nakedret - nakedret is a Go static analysis tool to find naked returns in functions greater than a specified function length. - unconvert - https://github.com/mdempsky/unconvert - Remove unnecessary type conversions - wastedassign - https://github.com/sanposhiho/wastedassign - wastedassign finds wasted assignment statements. - notlintlint - Reports ill-formed or insufficient nolint directives - stylecheck - https://staticcheck.io/docs/checks/#ST - keep style consistent - excluded: [ST1003 - Poorly chosen identifier](https://staticcheck.io/docs/checks/#ST1003) and [ST1005 - Incorrectly formatted error string](https://staticcheck.io/docs/checks/#ST1005)
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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) | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -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)) | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -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) | ||||
| 		}) | ||||
| 	}) | ||||
|  | ||||
|   | ||||
| @@ -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)) | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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)) | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -520,5 +520,5 @@ func CalculateTrustStatus(verification *CommitVerification, repoTrustModel repo_ | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return | ||||
| 	return err | ||||
| } | ||||
|   | ||||
| @@ -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" | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 ( | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
| 	} | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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) | ||||
| } | ||||
|  | ||||
| // __________      .__  .__ __________                                     __ | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -48,5 +48,5 @@ func recalculateStars(x *xorm.Engine) (err error) { | ||||
|  | ||||
| 	log.Debug("recalculate Stars number for all user finished") | ||||
|  | ||||
| 	return | ||||
| 	return err | ||||
| } | ||||
|   | ||||
| @@ -66,7 +66,7 @@ func deleteMigrationCredentials(x *xorm.Engine) (err error) { | ||||
| 			return | ||||
| 		} | ||||
| 	} | ||||
| 	return | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func removeCredentials(payload string) (string, error) { | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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(¬ifications) | ||||
| 	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(¬ifications) | ||||
| 	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 | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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} | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -756,7 +756,7 @@ func DoctorUserStarNum() (err error) { | ||||
|  | ||||
| 	log.Debug("recalculate Stars number for all user finished") | ||||
|  | ||||
| 	return | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| // DeleteDeployKey delete deploy keys | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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"><%X></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 | ||||
| } | ||||
|   | ||||
| @@ -340,7 +340,7 @@ func ReferencesGitRepo(allowEmpty ...bool) func(ctx *APIContext) (cancel context | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return | ||||
| 		return cancel | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
| 		} | ||||
|   | ||||
| @@ -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] | ||||
|   | ||||
| @@ -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 | ||||
| 				} | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -101,5 +101,5 @@ func (repo *Repository) Close() (err error) { | ||||
| 		repo.checkReader = nil | ||||
| 		repo.checkWriter = nil | ||||
| 	} | ||||
| 	return | ||||
| 	return err | ||||
| } | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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") | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -91,5 +91,5 @@ func newSignatureFromCommitline(line []byte) (sig *Signature, err error) { | ||||
| 			return | ||||
| 		} | ||||
| 	} | ||||
| 	return | ||||
| 	return sig, err | ||||
| } | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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" | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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] != ':' { | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -55,7 +55,7 @@ func Test_Sanitizer(t *testing.T) { | ||||
| func TestSanitizeNonEscape(t *testing.T) { | ||||
| 	descStr := "<scrİpt><script>alert(document.domain)</script></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) | ||||
| 	} | ||||
|   | ||||
| @@ -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 } | ||||
|   | ||||
| @@ -75,5 +75,5 @@ func valToTimeDuration(vs []string) (result time.Duration) { | ||||
| 			return | ||||
| 		} | ||||
| 	} | ||||
| 	return | ||||
| 	return result | ||||
| } | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -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 | ||||
| } | ||||
|   | ||||
| @@ -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. | ||||
|   | ||||
| @@ -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() | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -62,7 +62,7 @@ func NewPersistableChannelQueue(handle HandlerFunc, cfg, exemplar interface{}) ( | ||||
| 				failed = append(failed, fail) | ||||
| 			} | ||||
| 		} | ||||
| 		return | ||||
| 		return failed | ||||
| 	} | ||||
|  | ||||
| 	channelQueue, err := NewChannelQueue(wrappedHandle, ChannelQueueConfiguration{ | ||||
|   | ||||
| @@ -62,7 +62,7 @@ func NewPersistableChannelUniqueQueue(handle HandlerFunc, cfg, exemplar interfac | ||||
| 				failed = append(failed, fail) | ||||
| 			} | ||||
| 		} | ||||
| 		return | ||||
| 		return failed | ||||
| 	} | ||||
|  | ||||
| 	channelUniqueQueue, err := NewChannelUniqueQueue(wrappedHandle, ChannelUniqueQueueConfiguration{ | ||||
|   | ||||
| @@ -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 | ||||
| 	} | ||||
|   | ||||
| @@ -104,7 +104,7 @@ done | ||||
| 		giteaHookTpls = append(giteaHookTpls, "") | ||||
| 	} | ||||
|  | ||||
| 	return | ||||
| 	return hookNames, hookTpls, giteaHookTpls | ||||
| } | ||||
|  | ||||
| // CreateDelegateHooks creates all the hooks scripts for the repo | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user