Files
tf_registry/HISTORY/code-review-request-v3.md

1.9 KiB
Raw Permalink Blame History

Code Review v3 — Go Terraform Registry (финальный)

Контекст

Реестр на проде: https://tf-registry.containerk8s.services.ngcloud.ru После ревью v2: структура переписана, HTML в embed, proxyHandler фикс, таймауты, валидация key.

Файлы

server/
├── main.go            # vars, main()
├── handlers.go         # типы, root, discovery, healthz, readyz, debug
├── proxy.go            # proxyHandler
├── router_versions.go  # router, listVersions, downloadVersion
├── gpg_key.go          # GPG-ключи
├── docs.go             # docs-хендлер
├── embed.go            # embed templates/index.html
├── logo.svg
└── templates/index.html
Dockerfile

Вопросы

  1. Структура пакета — всё в package main, разнесено по файлам. Ок для команды или стоит выносить в internal/?

  2. embed подходembed.go с //go:embed templates/index.html, rootHandler читает через templateFS.ReadFile, заменяет {{.Version}}. Ок или лучше html/template?

  3. proxyHandlerio.Copy(w, obj) с MinIO Object, таймаут 60s, валидация key по s3Prefix. Всё ок?

  4. listVersionscontext.Background() без таймаута для ListObjects. Стоит добавить?

  5. downloadVersiondefer внутри if err == nil (defer shasumsObj.Close). Перепроверь — это ок?

  6. /debug — показывает ENV (включая секреты S3_ACCESS_KEY/S3_SECRET_KEY). Оставить или убрать?

  7. Dockerfile — ENV с дефолтами, секреты в jsonEnv. Нормальный паттерн?

  8. Общее — перед тем как объявить готовым к проду, что ещё?