Skip to content

build: refresh dependencies, .NET 10.0.13 runtime and pinned CI tools (0.7.1) - #78

Merged
codegiveness merged 1 commit into
mainfrom
security/supply-chain-refresh-0.7.1
Oct 22, 2026
Merged

codegiveness merged 1 commit into
mainfrom
security/supply-chain-refresh-0.7.1

Conversation

@codegiveness

Copy link
Copy Markdown
Owner

Problem

Prepares 0.7.1, a patch release requested by the maintainer after reviewing the October 2026 GitHub Actions supply-chain news (GhostAction waves of 2026-10-07..12, the re-enabled Mini Shai-Hulud actions-cool actions of 2026-09-16, and the TeamPCP/Trivy compromise of March 2026).

Behavior change

None for users. Tool names, parameters, environment variables, CLI flags, the targets-file format and database-access behavior are unchanged. Only these change:

  • The version moves to 0.7.1 in the csproj and in npm/package.json (main package plus five platform optionalDependencies). README, CONTRIBUTING and the bug template follow.
  • Runtime: SDK 10.0.401 → 10.0.402, so the bundled runtime moves 10.0.12 → 10.0.13. The container sdk:10.0/runtime:10.0 digests are re-pinned to the current MCR manifest lists. These are newer than build(deps): bump dotnet/sdk from e70cdb7 to 0d99ebf #72/build(deps): bump dotnet/runtime from b89586d to 9395557 #74.
  • NuGet:
    • ModelContextProtocol 2.2.0 → 2.3.0
    • Microsoft.Extensions.* 10.0.12 → 10.0.13
    • Microsoft.Extensions.AI.Abstractions 10.10.1 → 10.11.0
    • Microsoft.SourceLink.GitHub 10.0.401 → 10.0.402
    • Verifier/fuzz only: FsCheck 3.4.0 → 3.6.0, plus new central transitive pins FSharp.Core 5.0.2 → 11.0.100 and dnlib 4.4.0 → 4.5.0
    • CycloneDX tool 6.2.0 → 6.3.1
    • All 28 lock files were checked. The changed ones were regenerated per CONTRIBUTING: portable, plus explicit -p:RuntimeIdentifier/RuntimeIdentifiers for each of the five RIDs.
  • Workflows:
    • github/codeql-action v4.38.3 → v4.39.1 (CodeQL bundle 2.27.3)
    • ossf/scorecard-action v2.4.4 → v2.5.0
    • Trivy 0.75.0 → 0.76.1
    • Release npm job: Node 24.21.0 → 24.22.1 (Node security release of 2026-10-20) and npm 12.2.1 (exact tarball + SHA-512 integrity)
    • The Trivy gate now uses $RUNNER_TEMP instead of ${{ runner.temp }} inside run: (zizmor template-injection finding).
  • Verifier fixtures: PostgreSQL 14–18 digests are refreshed (same minors, rebuilt base). PostgreSQL 19 moves from 19beta4-bookworm to 19rc1-bookworm. HypoPG 1.4.3-1.pgdg12+2 is still published for 13–19.

Supersedes #72, #73, #74, #75, #76 and #77. Dependabot closes them once main contains the updates.

Compatibility and security impact

  • Action pins. Each new SHA was resolved from the upstream tag via the GitHub API, dereferencing annotated tags:
  • Permissions and triggers. No permission, trigger, environment or secret usage changes.
  • Downloaded tools. Trivy's SHA-256 comes from trivy_0.76.1_checksums.txt. npm's SHA-512 equals the registry dist.integrity, and a local download matched it.
  • Review against the news, with no compromise indicators found:
    • Only the eight known workflow files (plus Dependabot) have ever run. Every run's actor is codegiveness or dependabot[bot].
    • No security-audit.yml/github_actions_security.yml exists on any branch.
    • No actions-cool action is used.
    • No committed .claude/, .vscode/ or other editor/agent hook files.
    • No deploy keys or webhooks. One collaborator.
    • No open Dependabot, secret-scanning or repository advisories. The open code-scanning alerts are the three Scorecard practice checks.
  • Repository settings already match the published mitigations:
    • Only GitHub-owned actions plus ossf/scorecard-action and NuGet/login are allowed.
    • Full-SHA pinning is required.
    • The default GITHUB_TOKEN is read-only.
    • Fork PRs need approval.
    • The release environment is limited to main.
  • Not changed (maintainer chose no settings changes). These remain recommendations:
    • The release environment still holds an unused NPM_TOKEN secret (npm publishing uses OIDC). Deleting it, and revoking the token on npmjs.com, removes the one long-lived registry credential a GhostAction-style harvester could name.
    • The environment has no required reviewer.

Evidence

Local run on Linux x64 with SDK 10.0.402 (checksum-verified from Microsoft's release metadata), Docker 29.1.3, on this branch:

Command Result
dotnet restore postgresql-sharp-mcp.slnx --locked-mode --force -p:NuGetAudit=true -p:NuGetAuditMode=all -p:NuGetAuditLevel=low -p:TreatWarningsAsErrors=true passed, no advisories
Throwaway script: every package in each project.assets.json vs nuget.org flat-container latest stable 42 packages, none outdated
dotnet build postgresql-sharp-mcp.slnx -c Release -p:RestoreLockedMode=true 0 warnings, 0 errors
dotnet format style --verify-no-changes --severity warn clean
Verify -- integration (PostgreSQL 17, new digest) ALL MCP INTEGRATION SCENARIOS PASSED
Build -- package then Verify -- packages passed: npm local/global/fresh-cache npx without .NET, platform selection, NuGet tool, MCP initialize/tools/shutdown
deps.json in linux-x64, win32-x64, darwin-arm64 npm tarballs runtimepack.Microsoft.NETCore.App.Runtime.<rid>/10.0.13
Fuzz -- campaign 30 (dnlib 4.5.0) 217,281 runs, no crash
docker build + dotnet --list-runtimes / --version Microsoft.NETCore.App 10.0.13, postgresql-sharp-mcp 0.7.1.0
Trivy 0.76.1 with the CI gate's flags against the built image 0 HIGH/CRITICAL (OS and .NET), exit 0
New PostgreSQL images 13–19: postgres --version and apt-cache madison postgresql-<M>-hypopg 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19rc1; 1.4.3-1.pgdg12+2 available for all
actionlint 1.7.12 (actionlint-py), zizmor 1.31.1 --offline --min-severity=low no findings

Not verified locally:

  • integration on 13–16, 18 and 19rc1 (CI matrix)
  • arm64 HypoPG availability
  • Windows/macOS native installation (CI)
  • CodeQL and Scorecard runs with the new pins
  • hosted release and registry publication

Authorship

Written by an AI coding agent (Claude Code) under the maintainer's authorization for this task: dependency refresh, PR, merge, v0.7.1 tag and release.yml dispatch with target all (npm stays staged for Windows 2FA approval).

Checklist

  • Title follows the commit format in docs/git-workflow.md
  • Affected docs, help and CHANGELOG.md updated
  • No credentials, real connection strings, customer SQL or database results anywhere in the change or this description
  • Workflow changes (if any) pin actions to full commit SHAs and keep least-privilege permissions

… (0.7.1)

Patch release 0.7.1. SDK 10.0.402 bundles the .NET 10.0.13 security runtime; NuGet packages, transitive pins, container digests, GitHub Actions pins, Trivy, the release job's Node/npm and the PostgreSQL fixture images move to their current releases. No tool, configuration or database-access contract changes.
@codegiveness codegiveness added dependencies Pull requests that update a dependency file security Security hardening or security process (not a vulnerability report) release Versioning, release notes and publication agent-authored Written by an AI agent; review accordingly labels Oct 22, 2026
@codegiveness
codegiveness marked this pull request as ready for review October 22, 2026 06:56
@codegiveness
codegiveness merged commit 5238ede into main Oct 22, 2026
22 checks passed
@codegiveness
codegiveness deleted the security/supply-chain-refresh-0.7.1 branch October 22, 2026 06:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-authored Written by an AI agent; review accordingly dependencies Pull requests that update a dependency file release Versioning, release notes and publication security Security hardening or security process (not a vulnerability report)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant