diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 86cbb8c..e947226 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -24,7 +24,7 @@ body: attributes: label: Версии description: Коммит или тег, версия инструмента (`cio --version`, `sqlbrc --version`) и окружение - placeholder: "main @ a1b2c3d, cio 0.2.0, Go 1.25.14, Docker 29.8.0, Trivy 0.74.0" + placeholder: "main @ a1b2c3d, cio 0.2.0, Go 1.26.8, Docker 29.8.0, Trivy 0.74.0" validations: required: true - type: textarea diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2cc557..1186dbd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,9 +72,9 @@ jobs: # Версия зафиксирована: обновление — отдельное изменение, иначе сканер может # начать падать на новом наборе правил. Верхняя граница — версия Go в go.mod: # setup-go выставляет GOTOOLCHAIN=local, а golang.org/x/vuln@v1.8.0 требует - # go >= 1.26.0 (в go.mod объявлена 1.25.14), поэтому ставится v1.7.0 — - # её модуль требует go 1.25.0. Повышать версию — вместе с go в go.mod. - go install golang.org/x/vuln/cmd/govulncheck@v1.7.0 + # go >= 1.26.0 (в go.mod объявлена 1.26.8), поэтому ставится v1.8.0. + # Повышать версию — вместе с go в go.mod. + go install golang.org/x/vuln/cmd/govulncheck@v1.8.0 govulncheck ./... test: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b2f8045..f14cabd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ | Компонент | Версия | Зачем | | --- | --- | --- | -| Go | 1.25.14+ | сборка и тесты обоих инструментов (патч зафиксирован в `go.mod`) | +| Go | 1.26.8+ | сборка и тесты обоих инструментов (патч зафиксирован в `go.mod`) | | Docker Engine | 24+ | `cio`: образы и история слоёв читаются через Docker API | | PostgreSQL | 15 | `sqlbrc`: утилиты `pg_dump`, `pg_restore`, `psql`, `pg_isready` | | Python 3 | 3.8+ | только для валидации workflows (`.work/validate-workflows.py`) | @@ -45,9 +45,9 @@ go build -trimpath -o bin/sqlbrc.exe ./cmd/sqlbrc # для sqlbrc (.exe — т Линт: `make lint` (нужен `golangci-lint`) или `.work/lint-docker.ps1` — тот же линтер в контейнере `golangci/golangci-lint` с версией, которая используется в CI. -Проверка зависимостей: `go install golang.org/x/vuln/cmd/govulncheck@v1.7.0`, затем `govulncheck ./...` +Проверка зависимостей: `go install golang.org/x/vuln/cmd/govulncheck@v1.8.0`, затем `govulncheck ./...` (достижимые уязвимости роняют CI). Версию держим той же, что в `.github/workflows/ci.yml`: `v1.8.0` -требует Go ≥ 1.26, а в `go.mod` обоих инструментов объявлена 1.25.14. +требует Go ≥ 1.26, а в `go.mod` обоих инструментов объявлена 1.26.8. Дымовая проверка на живом Docker: `.work/smoke-cio.ps1` (добавьте `-WithTrivy`, чтобы проверить сканирование). diff --git a/Container image optimizer/CHANGELOG.md b/Container image optimizer/CHANGELOG.md index 5c54f4e..4be8dd7 100644 --- a/Container image optimizer/CHANGELOG.md +++ b/Container image optimizer/CHANGELOG.md @@ -13,6 +13,15 @@ печатал «commit none, сборка unknown», и сверить контейнер с бинарём из релиза было нечем. Теперь значения подставляются так же, как в релизных бинарях. +### Изменилось + +- минимальная версия Go — `1.26.8` (директива `go` в `go.mod` и `ARG GO_IMAGE` в Dockerfile): в образе + сборки автоподбор тулчейна выключен, поэтому образ обязан содержать тулчейн не старше объявленного + в `go.mod`. Патч `1.25.14` не соответствовал требованиям зависимостей и оставлял в стандартной + библиотеке достижимые уязвимости; +- `govulncheck` обновлён до `v1.8.0` в CI и в документации — его модуль требует Go ≥ 1.26, что теперь + соответствует `go.mod`. + ## [0.2.0] - 2026-09-21 Усиление безопасности и качества после аудита 0.1.0: фиксация версий, ворота в CI, diff --git a/Container image optimizer/Dockerfile b/Container image optimizer/Dockerfile index 90614f6..b26c7ec 100644 --- a/Container image optimizer/Dockerfile +++ b/Container image optimizer/Dockerfile @@ -15,7 +15,7 @@ # (GOTOOLCHAIN=local), поэтому образ обязан содержать тулчейн не старше объявленного # в go.mod, иначе сборка падает. Тулчейн же определяет уязвимости stdlib, которые # видит govulncheck, — устаревший патч оставит гейт красным. -ARG GO_IMAGE=golang:1.25.14-alpine +ARG GO_IMAGE=golang:1.26.8-alpine # Тег Trivy фиксируется: с :latest состав образа не воспроизводится, а уязвимости # встроенного сканера попадают в релизный образ. Обновления приносит Dependabot. ARG TRIVY_IMAGE=aquasec/trivy:0.74.0 diff --git a/Container image optimizer/README.md b/Container image optimizer/README.md index dc11b94..d8e1d85 100644 --- a/Container image optimizer/README.md +++ b/Container image optimizer/README.md @@ -62,7 +62,7 @@ | Компонент | Версия | Обязателен | | --- | --- | --- | | Docker Engine | 24+ (проверено на 29.8.0) | да: через его API берутся метаданные и история слоёв | -| Go | 1.25.14+ | только для сборки из исходников (минимальный патч зафиксирован в `go.mod`) | +| Go | 1.26.8+ | только для сборки из исходников (минимальный патч зафиксирован в `go.mod`) | | Trivy | 0.74+ или образ `aquasec/trivy` | нет: без Trivy отчёт по слоям всё равно строится | ## Сборка и запуск diff --git a/Container image optimizer/go.mod b/Container image optimizer/go.mod index 7f41bd4..2bc92d9 100644 --- a/Container image optimizer/go.mod +++ b/Container image optimizer/go.mod @@ -1,6 +1,6 @@ module github.com/DevOps-spb-ru/DevOps-Engineer-Tools/container-image-optimizer -go 1.25.14 +go 1.26.8 require ( github.com/moby/moby/api v1.56.0 diff --git a/README.md b/README.md index 7d69ce0..f9bb719 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ | Компонент | Версия | Кому нужен | | --- | --- | --- | -| Go | 1.25.14+ | обоим инструментам: сборка и тесты (минимальный патч зафиксирован в `go.mod`) | +| Go | 1.26.8+ | обоим инструментам: сборка и тесты (минимальный патч зафиксирован в `go.mod`) | | Docker Engine | 24+ (проверено на 29.8.0) | `cio`: образы и история слоёв через Docker API | | Trivy | 0.74+ или доступный Docker (образ `aquasec/trivy`) | `cio`: поиск уязвимостей; при отсутствии бинаря утилита запускает контейнер | | PostgreSQL | 15, клиент той же мажорной версии, что сервер | `sqlbrc`: операции выполняются утилитами `pg_dump`, `pg_restore`, `psql`, `pg_isready` | diff --git a/SQL backup restore clone/CHANGELOG.md b/SQL backup restore clone/CHANGELOG.md index 99513b3..1f78c08 100644 --- a/SQL backup restore clone/CHANGELOG.md +++ b/SQL backup restore clone/CHANGELOG.md @@ -12,6 +12,15 @@ поэтому `sqlbrc --version` из образа печатал «сборка unknown», и сверить контейнер с бинарём из релиза было нечем. Дата подставляется так же, как в релизных бинарях. +### Изменилось + +- минимальная версия Go — `1.26.8`: директива `go` в `go.mod` поднята с `1.26.0`, а образ сборки — + с `golang:1.25.14-alpine3.23` до `golang:1.26.8-alpine3.23`. Расхождение `go.mod` (требует ≥ 1.26) + с образом сборки ломало сборку образа (`go mod download` падал с кодом 1), а патч `1.26.0` + оставлял в стандартной библиотеке достижимые уязвимости (`crypto/tls`, `encoding/asn1`, `net/http`); +- `govulncheck` обновлён до `v1.8.0` в CI и в документации — его модуль требует Go ≥ 1.26, что теперь + соответствует `go.mod`. + ## [0.3.0] - 2026-09-21 Веб-интерфейс и API: команда `serve` с теми же операциями, что и в CLI. diff --git a/SQL backup restore clone/Dockerfile b/SQL backup restore clone/Dockerfile index 124313e..3954052 100644 --- a/SQL backup restore clone/Dockerfile +++ b/SQL backup restore clone/Dockerfile @@ -7,7 +7,7 @@ # права 0600). sudo в образ не ставится — он в этом режиме не нужен. # # Версии базовых образов закреплены: обновляет их Dependabot (.github/dependabot.yml). -ARG GO_IMAGE=golang:1.25.14-alpine3.23 +ARG GO_IMAGE=golang:1.26.8-alpine3.23 ARG RUNTIME_IMAGE=alpine:3.22 FROM ${GO_IMAGE} AS build diff --git a/SQL backup restore clone/README.md b/SQL backup restore clone/README.md index b382094..8791135 100644 --- a/SQL backup restore clone/README.md +++ b/SQL backup restore clone/README.md @@ -84,7 +84,7 @@ PostgreSQL. | Утилиты PostgreSQL (`pg_dump`, `pg_restore`, `psql`, `pg_isready`) | та же мажорная версия, что и сервер | да: расхождение версий клиента и сервера `doctor` проверяет отдельно | | Linux + systemd | Debian 12, Ubuntu 22.04+ и подобные | да: `sudo`, права каталогов, юнит сервиса | | `sudo` | правило `NOPASSWD` на фиксированный список утилит | да: утилиты запускаются от владельца кластера без пароля | -| Go | 1.25.14+ | только для сборки из исходников: минимальный патч зафиксирован в `go.mod` | +| Go | 1.26.8+ | только для сборки из исходников: минимальный патч зафиксирован в `go.mod` | ## Установка и первый запуск diff --git a/SQL backup restore clone/go.mod b/SQL backup restore clone/go.mod index ee2ae47..3916cb1 100644 --- a/SQL backup restore clone/go.mod +++ b/SQL backup restore clone/go.mod @@ -1,6 +1,6 @@ module github.com/DevOps-spb-ru/DevOps-Engineer-Tools/sql-backup-restore-clone -go 1.26.0 +go 1.26.8 require ( github.com/spf13/cobra v1.10.2