Skip to content

Fix CI traceability job: use full clone#31

Merged
flyingrobots merged 2 commits intomainfrom
fix/ci-traceability-shallow-clone
Mar 4, 2026
Merged

Fix CI traceability job: use full clone#31
flyingrobots merged 2 commits intomainfrom
fix/ci-traceability-shallow-clone

Conversation

@flyingrobots
Copy link
Owner

@flyingrobots flyingrobots commented Mar 4, 2026

Summary

  • Traceability CI job fails with Git command failed with code 128 because actions/checkout@v4 defaults to fetch-depth: 1 (shallow clone)
  • git-warp materializes by walking commit parent chains via git show — in a shallow clone, patch commit objects aren't present locally
  • Fix: set fetch-depth: 0 on the checkout step so the full object database is available before fetching WARP writer refs

Root cause

analyze → graphPort.getGraph() → WarpGraph.open({autoMaterialize: true})
  → _loadWriterPatches(writerId) → getNodeInfo(sha) → git show -s --format=... <sha>
  → exit code 128 (commit object not in shallow clone)

Test plan

  • Lint passes
  • 745 tests pass locally
  • CI traceability job passes after merge

Summary by CodeRabbit

  • Chores
    • Updated CI pipeline to fetch full repository history for improved traceability during builds
    • Enhanced CI automation with improved git configuration for repository operations

actions/checkout@v4 defaults to fetch-depth: 1 (shallow clone).
When git-warp materializes, it walks commit parent chains via
git show to read patch blobs. In a shallow clone, these commit
objects may not exist locally, causing 'git show' to fail with
exit code 128.

Setting fetch-depth: 0 ensures the full object database is
available before fetching WARP writer refs.
@coderabbitai
Copy link

coderabbitai bot commented Mar 4, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: cb7e04aa-3a56-405b-9faa-dbafa4f33051

📥 Commits

Reviewing files that changed from the base of the PR and between f1ec489 and 22949fb.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

📝 Walkthrough

Walkthrough

The CI workflow configuration is updated to enable full repository history fetching during checkout and adds a new setup step that configures git identity credentials (user.name and user.email) for graph materialization operations within the traceability job.

Changes

Cohort / File(s) Summary
CI Workflow Configuration
.github/workflows/ci.yml
Updated the traceability job's actions/checkout step to use fetch-depth: 0 for full history fetching. Added a new "Configure git identity for graph materialization" step that sets git user.name to "ci-bot" and git user.email to "ci@xyph.dev".

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A workflow takes flight with deeper roots,
Full history now flows through the system's shoots,
Git identity whispers "ci-bot" with care,
Graph materialization blooms in the air! 🌱

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix CI traceability job: use full clone' directly and clearly summarizes the main change: switching from a shallow clone to a full clone in the CI traceability job to fix git command failures.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/ci-traceability-shallow-clone

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

git-warp's auto-checkpoint calls git commit-tree during
materialization, which requires a committer identity. CI runners
have no git user configured, causing exit code 128
(fatal: empty ident name).

Sets a local git identity in the traceability job only.
@flyingrobots flyingrobots merged commit 52ef20c into main Mar 4, 2026
8 checks passed
@flyingrobots flyingrobots deleted the fix/ci-traceability-shallow-clone branch March 4, 2026 11:05
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.

1 participant