Задания и отчёты по актуализации проекта согласно agents/README.md: синхронизация git-состояния, обновление зависимостей, разбор PR #63. Правок workflow ветка не несёт: обновления GitHub Actions доставляются слиянием PR Dependabot #44 и #46, чтобы не применить одно и то же дважды. PR #45 (cosign-installer) не принят — релизный workflow на pull request не выполняется, поэтому зелёные проверки его не покрывают. Также добавлена записка передачи состояния, закоммитить её разрешил владелец. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
8.1 KiB
Отчёт: обновление зависимостей GitHub Actions и NuGet
- Задание:
../inbox/2026-08-18-deps-update.md - Агент:
claude - Дата: 2026-08-18
- Ветка / коммиты:
claude/deps-update. Правок workflow эта ветка не несёт — см. «Как доставлено».
Что сделано
Разобрано отставание зависимостей и проверены три открытых PR Dependabot по GitHub Actions. Проверка была содержательной, а не сводилась к «CI зелёный».
actions/download-artifactv4.1.8 → v8.0.1 (PR #46). Затрагивает одну точку —linux-release.yml:256; это была последняя старая ссылка в дереве,linux-platform-matrix.ymlуже использовал v8.0.1 (SHA3e5f45b2…). Обновление приводит репозиторий к одной версии.docker/setup-qemu-action→ v4.2.0 (PR #44). Одна точка,linux-control-agent.yml:83; прежняя ссылка была закреплена по SHAc7c53464…с комментарием# v3без минорной версии.sigstore/cosign-installerv3.5.0 → v4.1.2 (PR #45). Не принят, причина в разделе «Вопросы к приёмке».
Все три правки я предварительно применял локально и построчно сверял с ветками Dependabot — совпадение полное. Затем правки из ветки сняты, чтобы не применить одно и то же дважды: доставка идёт слиянием PR Dependabot.
NuGet не обновлялся — см. «Что не сделано».
Как доставлено
Решением владельца от 2026-08-18: сливаются PR #44 и #46, правки из этой ветки сняты. В ветке остаются только задания, отчёты и записка передачи состояния. PR #45 остаётся открытым.
Как проверено
Сверка применённых правок с ветками Dependabot (до снятия правок):
$ git diff -- .github/ | grep -E '^[+-][^+-]' | sort > mine.lines
$ for b in dependabot/github_actions/actions/download-artifact-8.0.1 \
dependabot/github_actions/sigstore/cosign-installer-4.1.2 \
dependabot/github_actions/docker/setup-qemu-action-4.2.0; do
git diff origin/main...origin/$b -- .github/
done | grep -E '^[+-][^+-]' | sort > pr.lines
$ diff pr.lines mine.lines
СОВПАДАЕТ построчно
Старых версий после применения в дереве не оставалось:
$ grep -rn "download-artifact@fa0a91b8\|cosign-installer@v3\|setup-qemu-action@c7c53464" .github/workflows/
старых версий не осталось
YAML всех шести workflow разбирается:
$ for f in .github/workflows/*.yml; do python -c "import sys,yaml;yaml.safe_load(open(sys.argv[1],encoding='utf-8'));print('OK',sys.argv[1])" "$f"; done
OK .github/workflows/linux-control-agent.yml
OK .github/workflows/linux-platform-matrix.yml
OK .github/workflows/linux-release.yml
OK .github/workflows/release-verification.yml
OK .github/workflows/windows-build.yml
OK .github/workflows/windows-release.yml
Текущее состояние ветки — правок workflow нет:
$ git diff 23eb3f5 --stat -- .github/
(пусто)
Что не сделано
NuGet не обновлён — нет .NET SDK на машине.
$ dotnet --version
bash: dotnet: command not found
PS> Get-Command dotnet
dotnet not found on PATH
В Directory.Build.props включён RestorePackagesWithLockFile=true, в CI
сборка идёт с -p:RestoreLockedMode=true, и в дереве семь
packages.lock.json. Поднять версию в Directory.Packages.props без
пересборки lock-файлов — гарантированно уронить CI. Без SDK пересобрать их
нечем, поэтому файлы не тронуты.
Отставание по данным api.nuget.org на 2026-08-18 (запрошены версии,
dotnet list package --outdated не запускался):
| Пакет | В репозитории | Актуальная |
|---|---|---|
| Microsoft.AspNetCore.Authentication.Certificate | 10.0.10 | 10.0.11 |
| Microsoft.AspNetCore.Mvc.Testing | 10.0.10 | 10.0.11 |
| Microsoft.Data.Sqlite | 10.0.10 | 10.0.11 |
| Microsoft.Extensions.Configuration.* (4 пакета) | 10.0.10 | 10.0.11 |
| System.Security.Cryptography.ProtectedData | 10.0.0 | 10.0.11 |
Microsoft.NET.ILLink.Tasks (Directory.Build.props) |
10.0.10 | 10.0.11 |
| Microsoft.Windows.SDK.BuildTools | 10.0.28000.2270 | 10.0.28000.2526 |
| Microsoft.Windows.SDK.BuildTools.WinApp | 0.4.0 | 0.6.0 |
| Microsoft.WindowsAppSDK | 2.2.0 | 2.4.0 |
| Microsoft.NET.Test.Sdk | 18.8.1 | 18.9.0 |
| xunit.v3 | 3.2.2 | 4.0.0 (мажорная) |
| xunit.runner.visualstudio | 3.1.5 | 4.0.0 (мажорная) |
| SQLitePCLRaw.bundle_e_sqlite3 | 3.0.5 | 3.0.5 — актуален |
Открытых PR Dependabot по NuGet нет, хотя в .github/dependabot.yml
экосистема nuget настроена с недельным интервалом. Причина не определена.
Замечено рядом
Вне границ задачи; предлагаю отдельными заданиями.
sigstore/cosign-installerзакреплён тегом, а не SHA. Все остальные действия в репозитории закреплены по коммиту с комментарием версии; cosign-installer — единственное исключение, и это единственное действие, от которого зависит подпись релиза. Тег подвижен.Microsoft.Windows.SDK.BuildTools.WinApp0.4.0 — версия ниже 1.0, мажорных гарантий совместимости нет; переход на 0.6.0 делать отдельно.- xunit 3 → 4 — мажорный переход для двух пакетов, отдельной задачей с прогоном тестов.
Вопросы к приёмке
PR #45 (cosign-installer 3.5.0 → 4.1.2) не принят к слиянию.
Зелёные проверки на #45 и #46 про релиз ничего не доказывают:
linux-release.yml запускается только по push тега v* и по
workflow_dispatch (строки 3–12), на pull request он не выполняется вовсе.
Мажорная смена installer меняет версию cosign у producer, а
deploy/ochenstarik-server-monitor-manager.sh:34 фиксирует у consumer
COSIGN_VERSION="v3.1.3" с проверкой SHA-256. Какую версию cosign ставит
installer 4.1.2 по умолчанию — не проверял, это не определено.
docs/release-policy.md показывает четыре поломки контракта
producer/consumer по cosign: alpha.12, alpha.13, alpha.17, alpha.18.
Предлагаю до слияния #45 прогнать Release pipeline через
workflow_dispatch на репетиционном теге — с оговоркой из
agents/claude/notes/2026-08-18-передача-состояния.md: репетиция идёт по
refs/heads/main и пропускает шаги под условием refs/tags/*, так был
сожжён alpha.19. Значит проверять нужно ещё и то, что нужные шаги вообще
исполнялись.
Второй вопрос: обновлять ли NuGet отдельным заданием на машине с .NET SDK.