From 62cb3c8c85f4721a1d2cf04762d2a8bab062bbd3 Mon Sep 17 00:00:00 2001 From: zeripath Date: Sun, 19 Jun 2022 19:07:18 +0100 Subject: [PATCH 01/31] Simplify and fix migration 216 (#20035) There appears to be a strange bug whereby the comment_id index can sometimes be missed or missing from the action table despite the sync2 that should create it in the earlier part of this migration. However, looking through the code for Sync2 there is no need for this pre-code to exist and Sync2 should drop/create the indices as necessary. I think therefore we should simplify the migration to simply be Sync2. Signed-off-by: Andrew Thornton --- models/migrations/v216.go | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/models/migrations/v216.go b/models/migrations/v216.go index b011c11d9..67c360016 100644 --- a/models/migrations/v216.go +++ b/models/migrations/v216.go @@ -42,26 +42,5 @@ func (a *improveActionTableIndicesAction) TableIndices() []*schemas.Index { } func improveActionTableIndices(x *xorm.Engine) error { - { - type Action struct { - ID int64 `xorm:"pk autoincr"` - UserID int64 `xorm:"INDEX"` // Receiver user id. - OpType int - ActUserID int64 `xorm:"INDEX"` // Action user id. - RepoID int64 `xorm:"INDEX"` - CommentID int64 `xorm:"INDEX"` - IsDeleted bool `xorm:"INDEX NOT NULL DEFAULT false"` - RefName string - IsPrivate bool `xorm:"INDEX NOT NULL DEFAULT false"` - Content string `xorm:"TEXT"` - CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` - } - if err := x.Sync2(&Action{}); err != nil { - return err - } - if err := x.DropIndexes(&Action{}); err != nil { - return err - } - } return x.Sync2(&improveActionTableIndicesAction{}) } From 62104b4896f2f443da13b834d0111e1378134ac3 Mon Sep 17 00:00:00 2001 From: Wim Date: Sun, 19 Jun 2022 20:47:04 +0200 Subject: [PATCH 02/31] Alter hook_task TEXT fields to LONGTEXT (#20038) Mysql TEXT has a limit of 64KB, change this to LONGTEXT in mysql only so we can have bigger hook payloads. Postgresql has unlimited TEXT - https://www.postgresql.org/docs/current/datatype-character.html Sqlite has unlimited TEXT - https://www.sqlitetutorial.net/sqlite-data-types/#:~:text=The%20maximum%20length%20of%20TEXT,SQLite%20supports%20various%20character%20encodings. Same issue as #16656 but for hook_task Fixes #10252, #19679, #3561 --- models/migrations/migrations.go | 2 ++ models/migrations/v217.go | 26 ++++++++++++++++++++++++++ models/webhook/hooktask.go | 6 +++--- 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 models/migrations/v217.go diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index c843e33eb..edd4beb45 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -389,6 +389,8 @@ var migrations = []Migration{ NewMigration("allow to view files in PRs", addReviewViewedFiles), // v216 -> v217 NewMigration("Improve Action table indices", improveActionTableIndices), + // v217 -> v218 + NewMigration("Alter hook_task table TEXT fields to LONGTEXT", alterHookTaskTextFieldsToLongText), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v217.go b/models/migrations/v217.go new file mode 100644 index 000000000..280dba17a --- /dev/null +++ b/models/migrations/v217.go @@ -0,0 +1,26 @@ +// Copyright 2022 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package migrations + +import ( + "code.gitea.io/gitea/modules/setting" + + "xorm.io/xorm" +) + +func alterHookTaskTextFieldsToLongText(x *xorm.Engine) error { + sess := x.NewSession() + defer sess.Close() + if err := sess.Begin(); err != nil { + return err + } + + if setting.Database.UseMySQL { + if _, err := sess.Exec("ALTER TABLE `hook_task` CHANGE `payload_content` `payload_content` LONGTEXT, CHANGE `request_content` `request_content` LONGTEXT, change `response_content` `response_content` LONGTEXT"); err != nil { + return err + } + } + return sess.Commit() +} diff --git a/models/webhook/hooktask.go b/models/webhook/hooktask.go index c71b18f66..aff94fb38 100644 --- a/models/webhook/hooktask.go +++ b/models/webhook/hooktask.go @@ -105,7 +105,7 @@ type HookTask struct { HookID int64 UUID string api.Payloader `xorm:"-"` - PayloadContent string `xorm:"TEXT"` + PayloadContent string `xorm:"LONGTEXT"` EventType HookEventType IsDelivered bool Delivered int64 @@ -113,9 +113,9 @@ type HookTask struct { // History info. IsSucceed bool - RequestContent string `xorm:"TEXT"` + RequestContent string `xorm:"LONGTEXT"` RequestInfo *HookRequest `xorm:"-"` - ResponseContent string `xorm:"TEXT"` + ResponseContent string `xorm:"LONGTEXT"` ResponseInfo *HookResponse `xorm:"-"` } From e91229eefbd09fecaebd0e058c3bfe7612a0bc61 Mon Sep 17 00:00:00 2001 From: Wim Date: Sun, 19 Jun 2022 21:23:00 +0200 Subject: [PATCH 03/31] Respond with a 401 on git push when password isn't changed yet (#20026) If the user-agent starts with git and user must change password but hasn't return a 401 with the message. It must be a 401, git doesn't seem to show the contents of the error message when we return a 403 Fixes #19090 --- modules/context/auth.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/context/auth.go b/modules/context/auth.go index 09c229545..e6d882eb5 100644 --- a/modules/context/auth.go +++ b/modules/context/auth.go @@ -7,6 +7,7 @@ package context import ( "net/http" + "strings" "code.gitea.io/gitea/models/auth" "code.gitea.io/gitea/modules/log" @@ -41,6 +42,10 @@ func Toggle(options *ToggleOptions) func(ctx *Context) { if ctx.Doer.MustChangePassword { if ctx.Req.URL.Path != "/user/settings/change_password" { + if strings.HasPrefix(ctx.Req.UserAgent(), "git") { + ctx.Error(http.StatusUnauthorized, ctx.Tr("auth.must_change_password")) + return + } ctx.Data["Title"] = ctx.Tr("auth.must_change_password") ctx.Data["ChangePasscodeLink"] = setting.AppSubURL + "/user/change_password" if ctx.Req.URL.Path != "/user/events" { From 02d745827bdbe01a82f9f069a904f53197252685 Mon Sep 17 00:00:00 2001 From: Gusted Date: Mon, 20 Jun 2022 01:48:17 +0200 Subject: [PATCH 04/31] Disable federation by default (#20045) --- custom/conf/app.example.ini | 14 ++++---- .../doc/advanced/config-cheat-sheet.en-us.md | 2 +- integrations/api_activitypub_person_test.go | 34 ++++++++++++------- integrations/api_nodeinfo_test.go | 13 ++++--- modules/setting/federation.go | 2 +- 5 files changed, 39 insertions(+), 26 deletions(-) diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index c4b8913e4..80017a117 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -2249,27 +2249,27 @@ PATH = ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Enable/Disable federation capabilities -; ENABLED = true +;ENABLED = false ;; ;; Enable/Disable user statistics for nodeinfo if federation is enabled -; SHARE_USER_STATISTICS = true +;SHARE_USER_STATISTICS = true ;; ;; Maximum federation request and response size (MB) -; MAX_SIZE = 4 +;MAX_SIZE = 4 ;; ;; WARNING: Changing the settings below can break federation. ;; ;; HTTP signature algorithms -; ALGORITHMS = rsa-sha256, rsa-sha512, ed25519 +;ALGORITHMS = rsa-sha256, rsa-sha512, ed25519 ;; ;; HTTP signature digest algorithm -; DIGEST_ALGORITHM = SHA-256 +;DIGEST_ALGORITHM = SHA-256 ;; ;; GET headers for federation requests -; GET_HEADERS = (request-target), Date +;GET_HEADERS = (request-target), Date ;; ;; POST headers for federation requests -; POST_HEADERS = (request-target), Date, Digest +;POST_HEADERS = (request-target), Date, Digest ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/docs/content/doc/advanced/config-cheat-sheet.en-us.md b/docs/content/doc/advanced/config-cheat-sheet.en-us.md index b50e630a8..15628a7de 100644 --- a/docs/content/doc/advanced/config-cheat-sheet.en-us.md +++ b/docs/content/doc/advanced/config-cheat-sheet.en-us.md @@ -1088,7 +1088,7 @@ Task queue configuration has been moved to `queue.task`. However, the below conf ## Federation (`federation`) -- `ENABLED`: **true**: Enable/Disable federation capabilities +- `ENABLED`: **false**: Enable/Disable federation capabilities - `SHARE_USER_STATISTICS`: **true**: Enable/Disable user statistics for nodeinfo if federation is enabled - `MAX_SIZE`: **4**: Maximum federation request and response size (MB) diff --git a/integrations/api_activitypub_person_test.go b/integrations/api_activitypub_person_test.go index 4898d5e01..e19da4086 100644 --- a/integrations/api_activitypub_person_test.go +++ b/integrations/api_activitypub_person_test.go @@ -15,18 +15,21 @@ import ( user_model "code.gitea.io/gitea/models/user" "code.gitea.io/gitea/modules/activitypub" "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/routers" ap "github.com/go-ap/activitypub" "github.com/stretchr/testify/assert" ) func TestActivityPubPerson(t *testing.T) { - onGiteaRun(t, func(*testing.T, *url.URL) { - setting.Federation.Enabled = true - defer func() { - setting.Federation.Enabled = false - }() + setting.Federation.Enabled = true + c = routers.NormalRoutes() + defer func() { + setting.Federation.Enabled = false + c = routers.NormalRoutes() + }() + onGiteaRun(t, func(*testing.T, *url.URL) { username := "user2" req := NewRequestf(t, "GET", fmt.Sprintf("/api/v1/activitypub/user/%s", username)) resp := MakeRequest(t, req, http.StatusOK) @@ -56,12 +59,14 @@ func TestActivityPubPerson(t *testing.T) { } func TestActivityPubMissingPerson(t *testing.T) { - onGiteaRun(t, func(*testing.T, *url.URL) { - setting.Federation.Enabled = true - defer func() { - setting.Federation.Enabled = false - }() + setting.Federation.Enabled = true + c = routers.NormalRoutes() + defer func() { + setting.Federation.Enabled = false + c = routers.NormalRoutes() + }() + onGiteaRun(t, func(*testing.T, *url.URL) { req := NewRequestf(t, "GET", "/api/v1/activitypub/user/nonexistentuser") resp := MakeRequest(t, req, http.StatusNotFound) assert.Contains(t, resp.Body.String(), "user redirect does not exist") @@ -69,15 +74,20 @@ func TestActivityPubMissingPerson(t *testing.T) { } func TestActivityPubPersonInbox(t *testing.T) { + setting.Federation.Enabled = true + c = routers.NormalRoutes() + defer func() { + setting.Federation.Enabled = false + c = routers.NormalRoutes() + }() + srv := httptest.NewServer(c) defer srv.Close() onGiteaRun(t, func(*testing.T, *url.URL) { appURL := setting.AppURL - setting.Federation.Enabled = true setting.AppURL = srv.URL defer func() { - setting.Federation.Enabled = false setting.Database.LogSQL = false setting.AppURL = appURL }() diff --git a/integrations/api_nodeinfo_test.go b/integrations/api_nodeinfo_test.go index c2fcd2fea..cf9ff4da1 100644 --- a/integrations/api_nodeinfo_test.go +++ b/integrations/api_nodeinfo_test.go @@ -11,17 +11,20 @@ import ( "code.gitea.io/gitea/modules/setting" api "code.gitea.io/gitea/modules/structs" + "code.gitea.io/gitea/routers" "github.com/stretchr/testify/assert" ) func TestNodeinfo(t *testing.T) { - onGiteaRun(t, func(*testing.T, *url.URL) { - setting.Federation.Enabled = true - defer func() { - setting.Federation.Enabled = false - }() + setting.Federation.Enabled = true + c = routers.NormalRoutes() + defer func() { + setting.Federation.Enabled = false + c = routers.NormalRoutes() + }() + onGiteaRun(t, func(*testing.T, *url.URL) { req := NewRequestf(t, "GET", "/api/v1/nodeinfo") resp := MakeRequest(t, req, http.StatusOK) var nodeinfo api.NodeInfo diff --git a/modules/setting/federation.go b/modules/setting/federation.go index b06d0a921..2a8ecadaf 100644 --- a/modules/setting/federation.go +++ b/modules/setting/federation.go @@ -21,7 +21,7 @@ var ( GetHeaders []string PostHeaders []string }{ - Enabled: true, + Enabled: false, ShareUserStatistics: true, MaxSize: 4, Algorithms: []string{"rsa-sha256", "rsa-sha512", "ed25519"}, From 3289abcefc563d6ea16c1dbd19680b874a58a6d3 Mon Sep 17 00:00:00 2001 From: Gusted Date: Mon, 20 Jun 2022 00:10:43 +0000 Subject: [PATCH 05/31] [skip ci] Updated translations via Crowdin --- options/locale/locale_ja-JP.ini | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/options/locale/locale_ja-JP.ini b/options/locale/locale_ja-JP.ini index f3dc913ed..d6ac08fda 100644 --- a/options/locale/locale_ja-JP.ini +++ b/options/locale/locale_ja-JP.ini @@ -443,6 +443,7 @@ size_error=は%s文字である必要があります。 min_size_error=`は%s文字以上である必要があります。` max_size_error=`は%s文字以下である必要があります。` email_error=`は有効なメールアドレスではありません。` +url_error=`'%s' は有効なURLではありません。` include_error=`は文字列 '%s' を含んでいる必要があります。` glob_pattern_error=`のglobパターンが不正です: %s.` regex_pattern_error=`の正規表現パターンが不正です: %s.` @@ -1597,8 +1598,17 @@ pulls.merge_instruction_hint=`コマンドライン pulls.merge_instruction_step1_desc=あなたのプロジェクトリポジトリで新しいブランチをチェックアウトし、変更内容をテストします。 pulls.merge_instruction_step2_desc=変更内容をマージして、Giteaに反映します。 +pulls.auto_merge_button_when_succeed=(チェックがすべて成功した場合) +pulls.auto_merge_when_succeed=すべてのチェックが成功したら自動マージ +pulls.auto_merge_newly_scheduled=このプルリクエストは、すべてのチェックが成功したときにマージされるようにスケジュールされました。 +pulls.auto_merge_has_pending_schedule=すべてのチェックが成功したら自動マージを行うよう、%[1]s が%[2]sこのプルリクエストを設定しました。 +pulls.auto_merge_cancel_schedule=自動マージをキャンセル +pulls.auto_merge_not_scheduled=このプルリクエストは自動マージがスケジュールされていません。 +pulls.auto_merge_canceled_schedule=このプルリクエストの自動マージはキャンセルされました。 +pulls.auto_merge_newly_scheduled_comment=`が、すべてのチェックが成功すると自動マージを行うよう、このプルリクエストをスケジュール %[1]s` +pulls.auto_merge_canceled_schedule_comment=`が、すべてのチェックが成功したときのプルリクエストの自動マージをキャンセル %[1]s` milestones.new=新しいマイルストーン milestones.closed=%s にクローズ From cb50375e2b6abf0c79d4891e5e1ea775b9759cd2 Mon Sep 17 00:00:00 2001 From: Wim Date: Mon, 20 Jun 2022 12:02:49 +0200 Subject: [PATCH 06/31] 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) --- .golangci.yml | 9 + cmd/hook.go | 2 +- integrations/api_issue_stopwatch_test.go | 2 +- integrations/api_packages_container_test.go | 4 +- integrations/editor_test.go | 6 +- integrations/git_test.go | 6 +- integrations/integration_test.go | 2 +- integrations/nonascii_branches_test.go | 2 +- integrations/oauth_test.go | 4 +- integrations/repo_fork_test.go | 2 +- integrations/repo_generate_test.go | 2 +- integrations/user_test.go | 2 +- models/action.go | 2 +- models/admin/notice.go | 2 +- models/asymkey/gpg_key_commit_verification.go | 2 +- models/asymkey/ssh_key_test.go | 6 +- models/auth/oauth2.go | 8 +- models/db/engine.go | 2 +- models/db/index.go | 2 +- models/db/list_options.go | 2 +- models/db/sql_postgres_with_schema.go | 2 +- models/git/branches.go | 8 +- models/git/commit_status.go | 2 +- models/issues/assignees.go | 4 +- models/issues/comment.go | 12 +- models/issues/issue.go | 14 +- models/issues/issue_project.go | 30 +-- models/issues/issue_watch.go | 2 +- models/issues/issue_xref.go | 70 +++---- models/issues/pull.go | 2 +- models/issues/review.go | 20 +- models/issues/stopwatch.go | 4 +- models/issues/tracked_time.go | 8 +- models/migrations/v143.go | 2 +- models/migrations/v180.go | 2 +- models/migrations/v189.go | 2 +- models/notification.go | 10 +- models/organization/team.go | 4 +- models/packages/package_version.go | 2 +- models/perm/access/repo_permission.go | 2 +- models/project/issue.go | 4 +- models/release.go | 4 +- models/repo.go | 2 +- models/repo/archiver.go | 2 +- models/repo/repo.go | 6 +- models/statistic.go | 2 +- models/unit/unit.go | 2 +- models/user/search.go | 2 +- models/webhook/hooktask.go | 2 +- modules/activitypub/client.go | 6 +- modules/activitypub/user_settings.go | 4 +- modules/base/natural_sort.go | 2 +- modules/charset/charset_test.go | 4 +- modules/charset/escape.go | 6 +- modules/context/api.go | 2 +- modules/context/private.go | 2 +- modules/context/repo.go | 4 +- modules/context/utils.go | 2 +- modules/convert/convert.go | 2 +- modules/convert/issue.go | 2 +- modules/doctor/fix16961.go | 2 +- modules/eventsource/event.go | 6 +- modules/git/batch_reader.go | 10 +- modules/git/blob_nogogit.go | 2 +- modules/git/commit.go | 2 +- modules/git/commit_info_nogogit.go | 2 +- modules/git/diff.go | 2 +- modules/git/pipeline/lfs_nogogit.go | 2 +- modules/git/repo_attribute.go | 2 +- modules/git/repo_base_nogogit.go | 2 +- modules/git/repo_branch_nogogit.go | 2 +- modules/git/repo_compare.go | 6 +- modules/git/repo_compare_test.go | 4 +- modules/git/repo_index.go | 2 +- modules/git/repo_tag_nogogit.go | 2 +- modules/git/sha1_nogogit.go | 2 +- modules/git/signature_nogogit.go | 2 +- modules/git/utils.go | 2 +- modules/gitgraph/graph_test.go | 2 +- modules/graceful/context.go | 2 +- modules/highlight/highlight.go | 8 +- modules/indexer/code/bleve.go | 2 +- modules/indexer/code/elastic_search.go | 2 +- modules/markup/common/footnote.go | 3 +- modules/markup/markdown/markdown.go | 4 +- modules/markup/orgmode/orgmode.go | 4 +- modules/markup/sanitizer_test.go | 2 +- modules/migration/issue.go | 10 +- modules/nosql/manager.go | 2 +- modules/nosql/manager_leveldb.go | 2 +- modules/nosql/manager_redis.go | 2 +- modules/packages/multi_hasher.go | 2 +- modules/process/manager.go | 2 +- modules/process/manager_stacktraces.go | 2 +- modules/queue/helper.go | 2 +- modules/queue/queue_bytefifo.go | 4 +- modules/queue/queue_disk_channel.go | 2 +- modules/queue/unique_queue_disk_channel.go | 2 +- modules/references/references.go | 4 +- modules/repository/hooks.go | 2 +- modules/setting/database.go | 4 +- modules/setting/federation.go | 2 +- modules/setting/i18n.go | 4 +- modules/setting/log.go | 2 +- modules/setting/service.go | 2 +- modules/storage/storage.go | 12 +- modules/structs/org_type.go | 2 +- modules/templates/helper.go | 4 +- modules/templates/helper_test.go | 4 +- modules/timeutil/since.go | 4 +- modules/timeutil/timestamp.go | 2 +- modules/util/io.go | 2 +- modules/web/wrap_convert.go | 18 +- routers/api/v1/activitypub/reqsignature.go | 6 +- routers/api/v1/notify/notifications.go | 2 +- routers/api/v1/org/org.go | 2 +- routers/api/v1/repo/file.go | 2 +- routers/api/v1/repo/issue_label.go | 2 +- routers/api/v1/repo/status.go | 2 +- routers/api/v1/utils/hook.go | 2 +- routers/private/hook_pre_receive.go | 2 +- routers/private/manager_process.go | 2 +- routers/private/serv.go | 2 +- routers/web/admin/repos.go | 2 +- routers/web/auth/oauth.go | 2 +- routers/web/feed/convert.go | 4 +- routers/web/repo/branch.go | 2 +- routers/web/repo/download.go | 2 +- routers/web/repo/editor_test.go | 4 +- routers/web/repo/projects.go | 2 +- routers/web/repo/view.go | 2 +- routers/web/user/setting/profile.go | 2 +- routers/web/web.go | 4 +- services/agit/agit.go | 4 +- services/auth/source/ldap/source_search.go | 186 +++++++++--------- services/auth/sspi_windows.go | 2 +- services/automerge/automerge.go | 2 +- services/gitdiff/gitdiff.go | 7 +- services/issue/assignee.go | 6 +- services/issue/issue.go | 2 +- services/mailer/mail.go | 8 +- services/mailer/mail_test.go | 2 +- services/migrations/onedev.go | 2 +- services/pull/merge.go | 4 +- services/pull/review.go | 2 +- services/task/migrate.go | 2 +- services/webhook/webhook.go | 4 +- 147 files changed, 402 insertions(+), 397 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 4ad9c9d4c..11c58454a 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 73386038b..ab6d48b54 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 0d0644718..b4e5f9054 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 2b5be9dd4..1ed80dfd0 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 3ed0e510c..c6c5ab2f6 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 a3ba7b7aa..d6bd67382 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 b0004927f..8a43de7c4 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 5ab7b8526..038ada8ca 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 678dfbae2..c16bb4e24 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 d701850f1..5f28e66ac 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 4fbbb56c5..0123932a7 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 6a3d30472..41127a4e4 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 78cc93e1a..791759f7e 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 77277e4b2..4d385cf95 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 2f6686309..d5b06f83f 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 71c8860f1..adffedd0b 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 c5c6e9112..5a58ec62b 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 8a3b4b206..93cf5ad8b 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 9b164db1f..673c382b2 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 d1d52b666..54f6d945c 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 d6b626292..4bbd12bde 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 0a44c0a68..7f05a5667 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 54a7b4319..9e2422186 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 5921112fe..7f589f5d7 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 a4e69e711..a71afda9e 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 76a0ea7d0..064f0d22a 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 5e0a337f7..b83665c2b 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 bf907aa8f..cb9d7e712 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 f4380a02e..6de91058e 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 f2ca19b03..52b959688 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 ee65bec3f..1cb99dc33 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 e7ac1314e..0a7ad41f9 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 54179bd3a..9f8767362 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 93237ebfc..17f3af449 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 492c91f1b..4468a7107 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 f136a89b4..823e27e2e 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 3f0e374b8..fdc4ffad1 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(¬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 diff --git a/models/organization/team.go b/models/organization/team.go index b32ffa6ca..0b53c84d6 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 78e76c505..583f832e5 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 6bc1c8270..99919c70b 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 6e6a8c574..59af7063a 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 94e803c71..b169920f2 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 e9d83f5f3..ca83b03e4 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 dc64cce49..fd07d8554 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 f6097d2d6..8ef405a66 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 55ace626c..ec094b5f5 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 e94775413..b83bd6183 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 a81cee1c2..1b65dcb12 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 aff94fb38..4415518cf 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 738b1e473..9bcef69de 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 2144e7b47..fc9775b0f 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 60db363df..46cdd5293 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 cfd5fb569..6dd13c039 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 20a4bb2a1..9c1baafba 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, `<%X>`, bs) - return + return err } func writeEscaped(output io.Writer, r rune) (err error) { _, err = fmt.Fprintf(output, `%c`, r, r) - return + return err } diff --git a/modules/context/api.go b/modules/context/api.go index 33534dbf6..558a9f51e 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 fdc775122..9e7977b5d 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 217cbd3df..183637391 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 aea51cc5d..a72c8b47e 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 c8cb23261..c62b4303e 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 35eff0522..5364367a8 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 92c441850..307cfcd9f 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 9fe20715e..281a1bb13 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 902fa8971..feb0dd31b 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 211c18855..89bb98162 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 82b5e0b25..82712dd1e 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 f430c672f..ceab11adb 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 c9d68bb13..f75ebd4fd 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 a2b5dd0c9..061da8ca5 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 596a91e80..1305e6f22 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 df24d952a..63c278c26 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 bc5899108..2983a35ca 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 3c7af7300..577c9f475 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 e163a3090..245920c2b 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 ae68dcaa8..50d82c77d 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 8d44db0a2..9a574666f 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 1835c68f5..a2620cba6 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 81da739a5..2fc8dde04 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 53c124ac8..d6bf9f441 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 ea6553529..2cfbe4b2f 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 9d955329a..b9d975a1d 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 a72f26d5f..acd3bebb9 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 1abb3c021..0b31f7119 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 7263f2765..a669c66bb 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 and for the keywords, diff --git a/modules/markup/common/footnote.go b/modules/markup/common/footnote.go index 821b3e638..d07f5e609 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 37e11e606..4ce85dfc3 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 8c9f3b3da..a78531720 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(``); err != nil { + if _, err := w.WriteString(``); 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(``); err != nil { + if _, err := w.WriteString(``); err != nil { return "" } lexer = chroma.Coalesce(lexer) diff --git a/modules/markup/sanitizer_test.go b/modules/markup/sanitizer_test.go index a0753c4a5..7dfca7a46 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 := "<script>alert(document.domain)</script>" - output := template.HTML(Sanitize(string(descStr))) + output := template.HTML(Sanitize(descStr)) if strings.Contains(string(output), "