test: root-skip the update permission family; hermetic identity in initRepoAt #138

Merged
hexajon merged 1 commit from refs/pull/138/head into main 2026-07-16 00:28:57 +00:00
hexajon commented 2026-07-16 00:28:53 +00:00 (Migrated from codeberg.org)

Summary

Completes the CI-under-root cleanup the first live Actions runs exposed. (1) All eight cmd/update permission-family tests (preflight refusal, permission-denied hints, sudo elevation/degradation, integrity-repair variants) use a 0o555 directory barrier that root walks through, so they failed in the root CI job container while passing on every dev machine - they now share a skipIfRoot helper with the rationale documented. (2) internal/mcp's initRepoAt fixture never set a committer identity, so the three foreign-dir tests that seed commits failed in CI where no global gitconfig exists - the fixture now sets repo-local user.name/user.email, matching the pattern every other git fixture in the repo already uses. Verified non-root locally (all three packages pass, tests execute) and as root inside the pinned CI image (update family skips, foreign-dir trio passes). Refs #47.

## Summary Completes the CI-under-root cleanup the first live Actions runs exposed. (1) All eight cmd/update permission-family tests (preflight refusal, permission-denied hints, sudo elevation/degradation, integrity-repair variants) use a 0o555 directory barrier that root walks through, so they failed in the root CI job container while passing on every dev machine - they now share a skipIfRoot helper with the rationale documented. (2) internal/mcp's initRepoAt fixture never set a committer identity, so the three foreign-dir tests that seed commits failed in CI where no global gitconfig exists - the fixture now sets repo-local user.name/user.email, matching the pattern every other git fixture in the repo already uses. Verified non-root locally (all three packages pass, tests execute) and as root inside the pinned CI image (update family skips, foreign-dir trio passes). Refs #47.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea!138
No description provided.