Skip to content

Security audit: SHA-pin remaining GitHub Actions workflow - #41

Merged
RudrenduPaul merged 1 commit into
mainfrom
fix/security-audit-2026-08-24
Aug 25, 2026
Merged

Security audit: SHA-pin remaining GitHub Actions workflow#41
RudrenduPaul merged 1 commit into
mainfrom
fix/security-audit-2026-08-24

Conversation

@Sourav-Nandy-ai

Copy link
Copy Markdown
Collaborator

Summary

Fresh security-audit pass over this repo. Rescanned the three items flagged in a prior review and fixed the one still open:

  • Fixed: codeql.yml was the only workflow still referencing third-party actions by mutable tag (actions/checkout@v4, github/codeql-action/{init,autobuild,analyze}@v3). Pinned all four steps to the same commit SHAs already used elsewhere in this repo for these exact tags (verified against the GitHub API as real commits on the respective upstream repos).
  • Already fixed (no change needed): every other workflow (ci.yml, release.yml — which holds the PyPI publish token, benchmark.yml, scorecard.yml) was already SHA-pinned from a prior campaign.
  • Already fixed (no change needed): the Windows path-separator bug in LocalDirRemoteFixtureBackend.list_keys (src/agent_trace/exporters/remote_fixture.py) was fixed in 0.1.7 (commit 5ce05fe) via .as_posix(), with a regression test that runs on real windows-latest CI runners.
  • Verified, not a bug: the published PyPI package name is agent-observability-trace-cli (live at 0.1.11), matching pyproject.toml's name field and every install command in the repo's README. agent-trace is the CLI entry-point command ([project.scripts]), not a separate installable package name.

Test plan

  • uv run --frozen pytest tests/unit/ --cov=src/ --cov-fail-under=80 → 1202 passed, 3 skipped, 90.49% coverage (CI's exact quality job command)
  • uv run --frozen ruff check src/ tests/ benchmarks/ → all checks passed
  • uv run --frozen ruff format --check src/ tests/ benchmarks/ → passed
  • Manually verified codeql.yml's new SHAs resolve to real commits on actions/checkout and github/codeql-action via gh api

Note: a full uv sync/uv lock re-resolution currently fails independent of this PR — pydantic-ai>=2.0 (via fastmcp-slim, capped at mcp<2.0) conflicts with the mcp-server extra's mcp[cli]>=2.0.0 floor. The committed uv.lock itself still installs cleanly via --frozen (confirmed above), so this doesn't block CI today, but a fresh uv lock will fail until one of those two extras' version constraints is relaxed. Flagging since it's a live, unrelated supply-chain fragility — out of scope for this PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QyJoCc6YtjnErv6HKa6NPu

codeql.yml was the only workflow still referencing third-party actions by
mutable major-version tag (actions/checkout@v4, github/codeql-action/
{init,autobuild,analyze}@V3). Every other workflow (ci.yml, release.yml,
benchmark.yml, scorecard.yml) was already SHA-pinned from a prior
campaign, including release.yml, which holds the PyPI publish token.
Pinned all four steps to the same commit SHAs already used elsewhere in
this repo for these exact tags, verified against the GitHub API as real
commits on the respective upstream repos.

Rescanned the two other items flagged for this pass and found both
already resolved on main, so no further code change was needed:

- The Windows path-separator bug in LocalDirRemoteFixtureBackend.list_keys
  (src/agent_trace/exporters/remote_fixture.py) was already fixed in
  0.1.7 (commit 5ce05fe) via .as_posix(), with a regression test
  (tests/unit/test_remote_fixture.py::test_list_keys_returns_matching_prefix)
  that runs on real windows-latest CI runners.
- The published package name is confirmed as agent-observability-trace-cli
  (live on PyPI at 0.1.11; pyproject.toml name field matches). agent-trace
  is the CLI entry-point command, not a separate installable package name.
@RudrenduPaul
RudrenduPaul merged commit 20c3b07 into main Aug 25, 2026
16 checks passed
@RudrenduPaul
RudrenduPaul deleted the fix/security-audit-2026-08-24 branch August 25, 2026 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants