From 18ea0bc7932f51435bc1c421bd1dddfd2c84ac11 Mon Sep 17 00:00:00 2001 From: msmsrep <113223770+msmsrep@users.noreply.github.com> Date: Fri, 23 Oct 2026 07:09:26 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E6=97=A2=E7=9F=A5=E3=81=AE=E8=84=86?= =?UTF-8?q?=E5=BC=B1=E6=80=A7=E3=81=8C=E3=81=82=E3=82=8B=E3=83=91=E3=83=83?= =?UTF-8?q?=E3=82=B1=E3=83=BC=E3=82=B8=E3=82=92=E4=BF=AE=E6=AD=A3=E7=89=88?= =?UTF-8?q?=E3=81=B8=E4=B8=8A=E3=81=92=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dotnet list package --vulnerable で High が検出されたため更新する。 - Microsoft.AspNetCore.Components.WebAssembly.Server 10.0.10(GHSA-g27p-qf6j-c96c・GHSA-qjpx-jqm5-h2c4) ほか Microsoft.* の 10.0.10 をすべて 10.0.13 に揃える - System.Security.Cryptography.Pkcs 9.0.4(SqlClient 6.1.1 経由。GHSA-846f-f764-76mx ほか)は Infrastructure から 10.0.13 を直接参照して上書きする - AspNetCore.OpenApi 10.0.13 が要求する Microsoft.OpenApi 2.12.2 へ直接参照も上げる(NU1605 の解消) - dotnet-ef ツールを EF Core と同じ 10.0.13 に揃える Co-Authored-By: Claude Opus 5.5 --- dotnet-tools.json | 2 +- src/MesApp.Api/MesApp.Api.csproj | 10 +++++----- src/MesApp.Client.Web/MesApp.Client.Web.csproj | 8 ++++---- src/MesApp.Core/MesApp.Core.csproj | 2 +- src/MesApp.Infrastructure/MesApp.Infrastructure.csproj | 8 +++++--- tests/MesApp.Api.Tests/MesApp.Api.Tests.csproj | 2 +- 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/dotnet-tools.json b/dotnet-tools.json index cce89d8..39007e0 100644 --- a/dotnet-tools.json +++ b/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "dotnet-ef": { - "version": "10.0.10", + "version": "10.0.13", "commands": [ "dotnet-ef" ], diff --git a/src/MesApp.Api/MesApp.Api.csproj b/src/MesApp.Api/MesApp.Api.csproj index 10f09cb..228060b 100644 --- a/src/MesApp.Api/MesApp.Api.csproj +++ b/src/MesApp.Api/MesApp.Api.csproj @@ -12,14 +12,14 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/src/MesApp.Client.Web/MesApp.Client.Web.csproj b/src/MesApp.Client.Web/MesApp.Client.Web.csproj index 8e0565a..0f9138e 100644 --- a/src/MesApp.Client.Web/MesApp.Client.Web.csproj +++ b/src/MesApp.Client.Web/MesApp.Client.Web.csproj @@ -9,10 +9,10 @@ - - - - + + + + diff --git a/src/MesApp.Core/MesApp.Core.csproj b/src/MesApp.Core/MesApp.Core.csproj index 87007c0..ee850e5 100644 --- a/src/MesApp.Core/MesApp.Core.csproj +++ b/src/MesApp.Core/MesApp.Core.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/MesApp.Infrastructure/MesApp.Infrastructure.csproj b/src/MesApp.Infrastructure/MesApp.Infrastructure.csproj index df4494a..250f842 100644 --- a/src/MesApp.Infrastructure/MesApp.Infrastructure.csproj +++ b/src/MesApp.Infrastructure/MesApp.Infrastructure.csproj @@ -5,11 +5,13 @@ - - - + + + + + diff --git a/tests/MesApp.Api.Tests/MesApp.Api.Tests.csproj b/tests/MesApp.Api.Tests/MesApp.Api.Tests.csproj index d01b176..bb1decf 100644 --- a/tests/MesApp.Api.Tests/MesApp.Api.Tests.csproj +++ b/tests/MesApp.Api.Tests/MesApp.Api.Tests.csproj @@ -9,7 +9,7 @@ - + From 18e91326b8955a09314809cc43783bb896a35801 Mon Sep 17 00:00:00 2001 From: msmsrep <113223770+msmsrep@users.noreply.github.com> Date: Fri, 23 Oct 2026 08:08:37 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BE=9D=E5=AD=98=E3=83=91=E3=83=83?= =?UTF-8?q?=E3=82=B1=E3=83=BC=E3=82=B8=E3=81=AE=E6=9B=B4=E6=96=B0=E7=A2=BA?= =?UTF-8?q?=E8=AA=8D=E3=81=A8=E8=84=86=E5=BC=B1=E6=80=A7=E3=83=81=E3=82=A7?= =?UTF-8?q?=E3=83=83=E3=82=AF=E3=82=92=E5=AE=9A=E6=9C=9F=E5=AE=9F=E8=A1=8C?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dependabot(nuget・github-actions):毎週月曜 09:00(JST)に確認し、dev 向けの PR を作る。 担当者を自分に割り当て、GitHub の通知(Inbox)と Assigned の一覧に出す。 Microsoft.* / System.* は版ずれ(NU1605)を避けるため1つの PR にまとめる - Vulnerability ワークフロー:push・PR と週1回の定期実行で、推移的な依存も含めて 既知の脆弱性を一覧にし、見つかったら失敗させる。復元時の NuGet 監査は警告がエラー扱いで 一覧が出る前に落ちるため、復元では止めてこの手順で判定する Co-Authored-By: Claude Opus 5.5 --- .github/dependabot.yml | 51 ++++++++++++++++++++++ .github/workflows/vulnerability.yml | 66 +++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/vulnerability.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..0031fbc --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,51 @@ +# 依存パッケージの更新確認(週1回)。更新があれば dev 向けの PR を作る +# PR は担当者に自分を割り当て、GitHub の通知(Inbox)と「Assigned」の一覧に出す +version: 2 +updates: + - package-ecosystem: nuget + directory: / + target-branch: dev + schedule: + interval: weekly + day: monday + time: "09:00" + timezone: Asia/Tokyo + assignees: + - msmsrep + commit-message: + prefix: "依存更新" + groups: + # Microsoft.* / System.* は同じサービシングで揃えて上げる(版がずれると NU1605 の格下げエラーになる) + dotnet: + patterns: + - "Microsoft.*" + - "System.*" + update-types: + - minor + - patch + others: + patterns: + - "*" + exclude-patterns: + - "Microsoft.*" + - "System.*" + update-types: + - minor + - patch + + - package-ecosystem: github-actions + directory: / + target-branch: dev + schedule: + interval: weekly + day: monday + time: "09:00" + timezone: Asia/Tokyo + assignees: + - msmsrep + commit-message: + prefix: "依存更新" + groups: + actions: + patterns: + - "*" diff --git a/.github/workflows/vulnerability.yml b/.github/workflows/vulnerability.yml new file mode 100644 index 0000000..eeec040 --- /dev/null +++ b/.github/workflows/vulnerability.yml @@ -0,0 +1,66 @@ +# 依存パッケージの既知の脆弱性チェック(推移的な依存も含む)。見つかったら失敗させる +# コードを触っていない期間に公開された脆弱性にも気づけるよう、週1回の定期実行もかける +# (定期実行は既定ブランチ main で動く) +name: Vulnerability + +on: + push: + branches: [main, dev] + pull_request: + schedule: + # 毎週月曜 09:00(JST)。Dependabot の確認と同じ時刻 + - cron: "0 0 * * 1" + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: vulnerability-${{ github.ref }} + cancel-in-progress: true + +jobs: + vulnerable-packages: + # ソリューションに MesApp.Desktop(net10.0-windows)を含むため Windows で復元する + runs-on: windows-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: 10.0.x + + # 警告をエラーにしているため、復元時の NuGet 監査(NU1901〜1904)で先に落ちて一覧が出ない。 + # 復元では監査を止め、次の手順でパッケージ・重大度・アドバイザリを一覧にして判定する + - name: 復元 + run: dotnet restore ParallelFactoryMES.slnx -p:NuGetAudit=false + + - name: 脆弱なパッケージの確認 + shell: pwsh + run: | + $json = dotnet list ParallelFactoryMES.slnx package --vulnerable --include-transitive --no-restore --format json | Out-String + if ($LASTEXITCODE -ne 0) { Write-Output $json; exit 1 } + $report = $json | ConvertFrom-Json + $found = foreach ($project in $report.projects) { + foreach ($framework in @($project.frameworks)) { + foreach ($package in @($framework.topLevelPackages) + @($framework.transitivePackages)) { + if (-not $package) { continue } + foreach ($v in @($package.vulnerabilities)) { + [pscustomobject]@{ + Project = Split-Path $project.path -Leaf + Package = $package.id + Version = $package.resolvedVersion + Severity = $v.severity + Advisory = $v.advisoryurl + } + } + } + } + } + if ($found) { + $found | Sort-Object Package, Advisory -Unique | Format-Table -AutoSize | Out-String -Width 300 | Write-Output + Write-Output "::error::既知の脆弱性があるパッケージが $(@($found | Sort-Object Package -Unique).Count) 件あります。修正版へ更新してください。" + exit 1 + } + Write-Output "脆弱なパッケージはありません。"