aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile21
-rw-r--r--models/migrations/v1_22/v294_test.go3
-rw-r--r--modules/public/public.go1
-rw-r--r--options/locale/locale_uk-UA.ini25
-rw-r--r--routers/private/hook_verification_test.go4
-rw-r--r--services/packages/arch/vercmp.go2
-rwxr-xr-xtools/lint-go-gopls.sh2
7 files changed, 49 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index bb70b91bb9..c868ef4463 100644
--- a/Makefile
+++ b/Makefile
@@ -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