From 79d1063bab29c0ea3945eac5fdacb6dddd3ac294 Mon Sep 17 00:00:00 2001 From: DevOps-spb-ru Date: Tue, 22 Sep 2026 10:29:23 +0300 Subject: [PATCH 1/2] =?UTF-8?q?Build:=20Go=201.26.8=20=E2=80=94=20go.mod?= =?UTF-8?q?=20=D0=B8=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=20=D1=81=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=BA=D0=B8=20=D0=BE=D0=B1=D0=BE=D0=B8=D1=85=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update: Container image optimizer/go.mod, Container image optimizer/Dockerfile — go 1.26.8 и golang:1.26.8-alpine Update: SQL backup restore clone/go.mod, SQL backup restore clone/Dockerfile — go 1.26.0 → 1.26.8, golang:1.25.14-alpine3.23 → golang:1.26.8-alpine3.23 --- Container image optimizer/Dockerfile | 2 +- Container image optimizer/go.mod | 2 +- SQL backup restore clone/Dockerfile | 2 +- SQL backup restore clone/go.mod | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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/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/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/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 From d3f68a65e67ec371d681a63ffe05c1317ce769c5 Mon Sep 17 00:00:00 2001 From: DevOps-spb-ru Date: Tue, 22 Sep 2026 10:29:43 +0300 Subject: [PATCH 2/2] =?UTF-8?q?Update:=20govulncheck=20v1.8.0=20=D0=B8=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=20Go=201.26.8=20=D0=B2=20C?= =?UTF-8?q?I=20=D0=B8=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update: .github/workflows/ci.yml — govulncheck@v1.8.0: модуль сканера требует Go >= 1.26, что теперь соответствует go.mod Update: .work/ver-govuln-ci.ps1 — тулчейн go1.26.8 и сканер v1.8.0 в эмуляции job'а vulncheck Update: .work/security/run-baseline.ps1, .work/security/run-after.ps1 — govulncheck v1.8.0 в локальных сканах Update: README.md, CONTRIBUTING.md — требование Go 1.26.8 и версия сканера в чеклисте проверок Update: Container image optimizer/README.md, SQL backup restore clone/README.md — требование Go 1.26.8 Update: .github/ISSUE_TEMPLATE/bug_report.yml — пример версий с Go 1.26.8 Update: Container image optimizer/CHANGELOG.md, SQL backup restore clone/CHANGELOG.md — раздел Unreleased: Go 1.26.8 и govulncheck v1.8.0 --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/workflows/ci.yml | 6 +++--- CONTRIBUTING.md | 6 +++--- Container image optimizer/CHANGELOG.md | 9 +++++++++ Container image optimizer/README.md | 2 +- README.md | 2 +- SQL backup restore clone/CHANGELOG.md | 9 +++++++++ SQL backup restore clone/README.md | 2 +- 8 files changed, 28 insertions(+), 10 deletions(-) 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/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/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/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` | ## Установка и первый запуск