diff options
-rw-r--r-- | Makefile | 21 | ||||
-rw-r--r-- | models/migrations/v1_22/v294_test.go | 3 | ||||
-rw-r--r-- | modules/public/public.go | 1 | ||||
-rw-r--r-- | options/locale/locale_uk-UA.ini | 25 | ||||
-rw-r--r-- | routers/private/hook_verification_test.go | 4 | ||||
-rw-r--r-- | services/packages/arch/vercmp.go | 2 | ||||
-rwxr-xr-x | tools/lint-go-gopls.sh | 2 |
7 files changed, 49 insertions, 9 deletions
@@ -36,7 +36,8 @@ XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1 GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1 ACTIONLINT_PACKAGE ?= github.com/rhysd/actionlint/cmd/actionlint@v1 -GOPLS_PACKAGE ?= golang.org/x/tools/gopls@v0.17.1 +GOPLS_PACKAGE ?= golang.org/x/tools/gopls@v0.19.0 +GOPLS_MODERNIZE_PACKAGE ?= golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@v0.19.0 DOCKER_IMAGE ?= gitea/gitea DOCKER_TAG ?= latest @@ -230,7 +231,7 @@ clean: ## delete backend and integration files tests/e2e/reports/ tests/e2e/test-artifacts/ tests/e2e/test-snapshots/ .PHONY: fmt -fmt: ## format the Go code +fmt: ## format the Go and template code @GOFUMPT_PACKAGE=$(GOFUMPT_PACKAGE) $(GO) run build/code-batch-process.go gitea-fmt -w '{file-list}' $(eval TEMPLATES := $(shell find templates -type f -name '*.tmpl')) @# strip whitespace after '{{' or '(' and before '}}' or ')' unless there is only @@ -249,6 +250,19 @@ fmt-check: fmt exit 1; \ fi +.PHONY: fix +fix: ## apply automated fixes to Go code + $(GO) run $(GOPLS_MODERNIZE_PACKAGE) -fix ./... + +.PHONY: fix-check +fix-check: fix + @diff=$$(git diff --color=always $(GO_SOURCES)); \ + if [ -n "$$diff" ]; then \ + echo "Please run 'make fix' and commit the result:"; \ + printf "%s" "$${diff}"; \ + exit 1; \ + fi + .PHONY: $(TAGS_EVIDENCE) $(TAGS_EVIDENCE): @mkdir -p $(MAKE_EVIDENCE_DIR) @@ -288,7 +302,7 @@ checks: checks-frontend checks-backend ## run various consistency checks checks-frontend: lockfile-check svg-check ## check frontend files .PHONY: checks-backend -checks-backend: tidy-check swagger-check fmt-check swagger-validate security-check ## check backend files +checks-backend: tidy-check swagger-check fmt-check fix-check swagger-validate security-check ## check backend files .PHONY: lint lint: lint-frontend lint-backend lint-spell ## lint everything @@ -809,6 +823,7 @@ deps-tools: ## install tool dependencies $(GO) install $(GOVULNCHECK_PACKAGE) & \ $(GO) install $(ACTIONLINT_PACKAGE) & \ $(GO) install $(GOPLS_PACKAGE) & \ + $(GO) install $(GOPLS_MODERNIZE_PACKAGE) & \ wait node_modules: package-lock.json diff --git a/models/migrations/v1_22/v294_test.go b/models/migrations/v1_22/v294_test.go index a1d702cb77..c3de332650 100644 --- a/models/migrations/v1_22/v294_test.go +++ b/models/migrations/v1_22/v294_test.go @@ -4,7 +4,6 @@ package v1_22 //nolint import ( - "slices" "testing" "code.gitea.io/gitea/models/migrations/base" @@ -44,7 +43,7 @@ func Test_AddUniqueIndexForProjectIssue(t *testing.T) { for _, index := range tables[0].Indexes { if index.Type == schemas.UniqueType { found = true - slices.Equal(index.Cols, []string{"project_id", "issue_id"}) + assert.ElementsMatch(t, index.Cols, []string{"project_id", "issue_id"}) break } } diff --git a/modules/public/public.go b/modules/public/public.go index 9bc04f3f7e..a7eace1538 100644 --- a/modules/public/public.go +++ b/modules/public/public.go @@ -110,5 +110,4 @@ func servePublicAsset(w http.ResponseWriter, req *http.Request, fi os.FileInfo, } } http.ServeContent(w, req, fi.Name(), modtime, content) - return } diff --git a/options/locale/locale_uk-UA.ini b/options/locale/locale_uk-UA.ini index a740ac1ff5..fab4a06ecb 100644 --- a/options/locale/locale_uk-UA.ini +++ b/options/locale/locale_uk-UA.ini @@ -1334,6 +1334,7 @@ editor.new_branch_name_desc=Назва нової гілки… editor.cancel=Відмінити editor.filename_cannot_be_empty=Назва файлу не може бути порожньою. editor.filename_is_invalid=Назва файлу недійсна: "%s". +editor.commit_email=Електронна пошта коміту editor.invalid_commit_email=Адреса електронної пошти для коміту недійсна. editor.file_is_a_symlink=`"%s" - це символічне посилання. Символічні посилання не можна редагувати у веб-редакторі` editor.filename_is_a_directory=Назва файлу '%s' вже використовується як назва каталогу у цьому сховищі. @@ -1369,6 +1370,7 @@ commits.signed_by_untrusted_user=Підписаний недовіреним к commits.signed_by_untrusted_user_unmatched=Підписано недовіреним користувачем, який не відповідає комітеру commits.gpg_key_id=Ідентифікатор GPG ключа commits.ssh_key_fingerprint=Відбиток ключа SSH +commits.view_path=Переглянути в історії commits.view_file_diff=Переглянути зміни до цього файлу в цьому коміті commit.revert=Повернути до попереднього стану @@ -1497,6 +1499,7 @@ issues.filter_project=Проєкт issues.filter_project_all=Всі проєкти issues.filter_project_none=Проєкт відсутній issues.filter_assignee=Виконавець +issues.filter_assignee_any_assignee=Призначено будь-кому issues.filter_poster=Автор issues.filter_user_placeholder=Пошук користувачів issues.filter_user_no_select=Усі користувачі @@ -1527,6 +1530,8 @@ issues.action_milestone=Етап issues.action_milestone_no_select=Етап відсутній issues.action_assignee=Виконавець issues.action_assignee_no_select=Немає виконавця +issues.action_check=Встановити/зняти позначку +issues.action_check_all=Встановити/зняти позначку з усіх елементів issues.opened_by=%[1]s відкрито <a href="%[2]s">%[3]s</a> issues.opened_by_fake=%[1]s відкрито користувачем %[2]s issues.previous=Попередній @@ -1534,6 +1539,7 @@ issues.next=Далі issues.open_title=Відкрито issues.closed_title=Закрито issues.draft_title=Чернетка +issues.num_comments_1=%d коментар issues.num_comments=%d коментарів issues.commented_at=`прокоментував(ла) <a href="#%s">%s</a>` issues.delete_comment_confirm=Ви впевнені, що хочете видалити цей коментар? @@ -1542,6 +1548,7 @@ issues.context.quote_reply=Цитувати відповідь issues.context.reference_issue=Посилання в новій задачі issues.context.edit=Редагувати issues.context.delete=Видалити +issues.close=Закрити задачу issues.comment_manually_pull_merged_at=вручну об'єднав(-ла) коміти %[1]s в %[2]s %[3]s issues.close_comment_issue=Закрити з коментарем issues.reopen_issue=Відкрити знову @@ -1568,6 +1575,7 @@ issues.role.collaborator=Співавтор issues.role.collaborator_helper=Цей користувач був запрошений до співпраці у сховищі. issues.role.first_time_contributor=Учасник, який вперше долучився issues.role.first_time_contributor_helper=Це перший внесок цього користувача в сховищі. +issues.role.contributor=Співавтор issues.role.contributor_helper=Цей користувач раніше вже вносив зміни до сховища. issues.re_request_review=Повторно попросити рецензію issues.is_stale=З часу останньої перевірки в цей PR було внесено деякі зміни @@ -2190,6 +2198,7 @@ settings.webhook.response=Відповідь settings.webhook.headers=Заголовки settings.webhook.payload=Зміст settings.webhook.body=Тіло +settings.webhook.replay.description=Повторити цей веб-хук. settings.githook_edit_desc=Якщо хук неактивний, буде показано зразок вмісту. Якщо залишити вміст порожнім, хук буде вимкнено. settings.githook_name=Назва хуку settings.githook_content=Зміст хука @@ -2246,6 +2255,7 @@ settings.event_pull_request_sync=Запит на злиття синхроніз settings.event_pull_request_sync_desc=Запит до злиття синхронізовано. settings.event_package=Пакет settings.branch_filter=Фільтр гілок +settings.authorization_header=Заголовок авторизації settings.active=Активний settings.active_helper=Інформацію про викликані події буде надіслано за цією веб-хук URL-адресою. settings.add_hook_success=Веб-хук було додано. @@ -2294,6 +2304,7 @@ settings.protect_disable_push=Заборонити Push settings.protect_disable_push_desc=Для цієї гілки буде заборонено виконання push. settings.protect_enable_push=Дозволити Push settings.protect_enable_push_desc=Будь-хто із правом запису зможе виконувати push для цієї гілки (за виключенням force push). +settings.protect_enable_merge=Увімкнути об’єднання settings.protect_check_status_contexts=Увімкнути перевірку стану settings.protect_status_check_patterns=Шаблони перевірки стану: settings.protect_status_check_patterns_desc=Введіть шаблони, щоб вказати, які перевірки стану повинні пройти гілки, перш ніж їх буде об'єднано у гілку, що відповідає цьому правилу. Кожен рядок визначає шаблон. Шаблони не можуть бути порожніми. @@ -2327,6 +2338,8 @@ settings.block_outdated_branch_desc=Об'єднання буде неможли settings.block_admin_merge_override=Адміністратори повинні дотримуватися правил захисту гілки settings.block_admin_merge_override_desc=Адміністратори повинні дотримуватися правил захисту гілки і не можуть їх обійти. settings.default_branch_desc=Обрати типову гілку сховища для запитів на злиття і комітів: +settings.merge_style_desc=Стилі об'єднання +settings.default_merge_style_desc=Типовий стиль об'єднання settings.choose_branch=Оберіть гілку… settings.no_protected_branch=Немає захищених гілок. settings.edit_protected_branch=Редагувати @@ -2348,12 +2361,14 @@ settings.chat_id=ID чату settings.matrix.homeserver_url=URL домашньої сторінки settings.matrix.room_id=ID кімнати settings.matrix.message_type=Тип повідомлення +settings.visibility.public.button=Зробити публічним settings.archive.header=Відправити репозиторій в архів settings.archive.success=Сховище успішно заархівовано. settings.archive.error=Сталася помилка при спробі архівувати репозиторій. Докладнішу інформацію дивіться у журналі. settings.archive.error_ismirror=Неможливо архівувати дзеркальне сховище. settings.archive.branchsettings_unavailable=Параметри гілки не доступні, якщо репозиторій архівний. settings.archive.tagsettings_unavailable=Параметри міток недоступні, якщо репозиторій архівний. +settings.unarchive.header=Розархівувати це сховище settings.unarchive.success=Сховище успішно розархівовано. settings.update_avatar_success=Аватар репозиторію оновлений. settings.lfs=LFS @@ -2437,6 +2452,7 @@ diff.protected=Захищений diff.image.side_by_side=Поруч diff.image.swipe=Провести пальцем diff.image.overlay=Накласти +diff.has_escaped=Цей рядок містить приховані символи Юнікоду diff.show_file_tree=Показати дерево файлів diff.hide_file_tree=Сховати дерево файлів diff.submodule_added=Підмодуль %[1]s додано в %[2]s @@ -2749,6 +2765,7 @@ dashboard.resync_all_hooks=Заново синхронізувати хуки п dashboard.reinit_missing_repos=Заново ініціалізувати всі відсутні сховища Git'а, для яких існують записи dashboard.sync_external_users=Синхронізувати дані зовнішніх користувачів dashboard.cleanup_hook_task_table=Очистити таблицю hook_task +dashboard.cleanup_actions=Очищення ресурсів прострочених дій dashboard.server_uptime=Час роботи сервера dashboard.current_goroutine=Поточна кількість Goroutines dashboard.current_memory_usage=Поточне використання пам'яті @@ -2778,7 +2795,11 @@ dashboard.total_gc_time=Загальна пауза збирача сміття dashboard.total_gc_pause=Загальна пауза збирача сміття (GC) dashboard.last_gc_pause=Остання пауза збирача сміття (GC) dashboard.gc_times=Кількість запусків збирача сміття (GC) +dashboard.delete_old_actions=Видалити всі старі дії з бази даних dashboard.update_checker=Перевірка оновлень +dashboard.gc_lfs=Збір сміття мета-об'єктів LFS +dashboard.cancel_abandoned_jobs=Скасувати покинуті завдання +dashboard.start_schedule_tasks=Запуск запланованих завдань dashboard.sync_branch.started=Розпочато синхронізацію гілок dashboard.rebuild_issue_indexer=Перебудувати індексатор задач dashboard.sync_repo_licenses=Синхронізувати ліцензії сховища @@ -2851,6 +2872,7 @@ emails.not_updated=Не вдалось оновити адресу електр emails.duplicate_active=Ця адреса електронної пошти вже активна для іншого користувача. emails.change_email_header=Редагувати властивості електронної пошти emails.change_email_text=Ви впевнені, що хочете оновити адресу електронної пошти? +emails.delete=Видалити адресу електронної пошти emails.delete_desc=Ви впевнені, що хочете видалити адресу електронної пошти? emails.deletion_success=Адресу електронної пошти видалено. emails.delete_primary_email_error=Ви не можете видалити основну адресу електронної пошти. @@ -2871,6 +2893,7 @@ repos.issues=Задачі repos.size=Розмір repos.lfs_size=Розмір LFS +packages.package_manage_panel=Керування пакетами packages.total_size=Загальний розмір: %s packages.unreferenced_size=Розмір без посилань: %s packages.cleanup=Очистити прострочені дані @@ -3393,6 +3416,7 @@ settings.link=Прив'язати пакет до сховища settings.link.description=Якщо ви зв'яжете пакет зі сховищем, його буде вказано у списку пакетів сховища. settings.link.select=Обрати сховище settings.link.button=Оновити посилання на сховище +settings.link.error=Не вдалося оновити посилання на сховище. settings.delete=Видалити пакет settings.delete.description=Видалення пакета є остаточним і не може бути скасоване. settings.delete.notice=Ви збираєтесь видалити %s (%s). Цю операцію неможливо скасувати, ви впевнені? @@ -3516,6 +3540,7 @@ logs.always_expand_running=Завжди розгортати поточні жу [projects] deleted.display_name=Видалений проєкт type-1.display_name=Індивідуальний проєкт +type-2.display_name=Проєкт сховища type-3.display_name=Проєкт організації enter_fullscreen=Повноекранний режим exit_fullscreen=Вийти з повноекранного режиму diff --git a/routers/private/hook_verification_test.go b/routers/private/hook_verification_test.go index f6c2e1087f..8653e34daa 100644 --- a/routers/private/hook_verification_test.go +++ b/routers/private/hook_verification_test.go @@ -18,7 +18,9 @@ func TestVerifyCommits(t *testing.T) { unittest.PrepareTestEnv(t) gitRepo, err := git.OpenRepository(t.Context(), testReposDir+"repo1_hook_verification") - defer gitRepo.Close() + if err != nil { + defer gitRepo.Close() + } assert.NoError(t, err) objectFormat, err := gitRepo.GetObjectFormat() diff --git a/services/packages/arch/vercmp.go b/services/packages/arch/vercmp.go index 6dcd0df419..d44aa530f0 100644 --- a/services/packages/arch/vercmp.go +++ b/services/packages/arch/vercmp.go @@ -35,7 +35,7 @@ func parseEVR(evr string) (epoch, version, release string) { func compareSegments(a, b []string) int { lenA, lenB := len(a), len(b) l := min(lenA, lenB) - for i := 0; i < l; i++ { + for i := range l { if r := compare(a[i], b[i]); r != 0 { return r } diff --git a/tools/lint-go-gopls.sh b/tools/lint-go-gopls.sh index a222ea14d7..2cd26ca6fe 100755 --- a/tools/lint-go-gopls.sh +++ b/tools/lint-go-gopls.sh @@ -11,7 +11,7 @@ IGNORE_PATTERNS=( # current absolute path, indicating a error was found. This is necessary # because the tool does not set non-zero exit code when errors are found. # ref: https://github.com/golang/go/issues/67078 -ERROR_LINES=$("$GO" run "$GOPLS_PACKAGE" check "$@" 2>/dev/null | grep -E "^$PWD" | grep -vFf <(printf '%s\n' "${IGNORE_PATTERNS[@]}")); +ERROR_LINES=$("$GO" run "$GOPLS_PACKAGE" check -severity=warning "$@" 2>/dev/null | grep -E "^$PWD" | grep -vFf <(printf '%s\n' "${IGNORE_PATTERNS[@]}")); NUM_ERRORS=$(echo -n "$ERROR_LINES" | wc -l) if [ "$NUM_ERRORS" -eq "0" ]; then |