Skip to content

S440 — sample-theme codeload lock + gate parity (finish-S246) - #1

Merged
detain merged 1 commit into
masterfrom
s440-sample-theme-gate
Sep 5, 2026
Merged

S440 — sample-theme codeload lock + gate parity (finish-S246)#1
detain merged 1 commit into
masterfrom
s440-sample-theme-gate

Conversation

@detain

@detain detain commented Sep 5, 2026

Copy link
Copy Markdown
Owner

S440 — sample-theme codeload lock + gate parity (finish-S246)

sample-theme was the last of the 11 plugin repositories with no dependency-drift gate at all: no committed lock, no gate script, no CI leg. The S246 sweep recorded it as gated using TRAKT's statistics (a wrong-directory measurement) — the repo itself was never checked on disk until S440.

This PR brings it to parity with the ten gated siblings (trakt/omdb/anilist/anidb/hub/…), mirroring the trakt/omdb exemplar structure:

  • composer.lock — committed lock of its actual codeload/GitHub-zipball deps (derived at tip 1ea573b): 5 require + 28 require-dev = 33 packages.
  • scripts/security-audit-check.php — the whole-lock audit gate (composer audit --locked, no --no-dev), corpus floored at 28 total / 24 dev.
  • .github/workflows/test.yml — a composer-audit job (name Security Audit) kept LAST, no continue-on-error, no if:, runs on pull_request.
  • tests/SecurityAuditCheckTest.php — the guard test that fails on each neutering edit.

Acceptance (planted-drift RED → GREEN)

Against a /tmp copy of the real committed lock, drifting squizlabs/php_codesniffer to the affected 4.0.1 and planting CVE-2026-67434:

::error::Security audit FAILED — 1 advisory/ies affecting 1 package(s) (0 require, 1 require-dev).
  squizlabs/php_codesniffer [require-dev] locked at 4.0.1 (affected: <3.13.6|>=4.0.0,<4.0.2)
    [HIGH] CVE-2026-67434 — OS command injection in the diff/report writer

Restoring the version / clearing advisories → Security audit passed. (exit 0). Local suite: phpunit 42/42, phpstan level 9 clean, phpcs clean.

Notes

  • .gitignore still lists /composer.lock (matching every gated sibling) — the lock is force-added and tracked, exactly as trakt/omdb do.
  • No *.md added to the repo (P-1).

Add the committed composer.lock (5 require + 28 require-dev, GitHub zipball
dists), scripts/security-audit-check.php gate, a last-position composer-audit
CI job, and tests/SecurityAuditCheckTest.php. sample-theme is the last of the
11 plugin repos left ungated: S246 recorded it as gated using TRAKT's stats
(wrong-directory measurement); the repo itself was never audited on disk.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@detain
detain merged commit 0d8769a into master Sep 5, 2026
3 checks passed
@detain
detain deleted the s440-sample-theme-gate branch September 5, 2026 22:21
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