Repository navigation
Add the shared OSV and secret scans beside the local audit - #22
Conversation
The
|
| change | source |
|---|---|
v4.3.3 → v4.3.5 banner |
Tailwind |
@supports … (margin-trim:inline) → (margin-trim:block) |
Tailwind's own feature-detection guard |
| ring/shadow custom-property ordering | Tailwind's emitter |
The JS bundle is byte-identical. That is the load-bearing evidence: a real change of ours would have moved it. The licence-banner guard still finds laranail/artisan-ui, lint is clean, and the 37 JS tests pass.
This will happen again, and that is structural
Three rules of this estate are jointly unsatisfiable for a byte-comparison gate:
- libraries track no lockfile, so CI resolves fresh every run;
resources/distis committed, because consumers install through Composer and never run npm;- dependencies float on a range.
So any Tailwind release that changes a byte of output turns this repository red with no commit of its own — exactly what happened here, and the same shape as tayari-ui's Playwright baselines. Worth a decision rather than a rebuild each time; raised with the owner separately.
Summary
Adds a
sharedjob callinglaranail/.github's reusablesecurity.yml, bringing this repository an OSV.dev scan and a ggshield secret scan it has never had.Measured 2026-11-13 across laranail: of 88 packages calling a reusable
laranail/.githubworkflow,security.ymlhad 1 caller againsttests.yml's 39, while 23 packages shipped a standalonesecurity.ymlrunningcomposer auditand nothing else. The estate was unshared rather than unscanned; what this adds is the two scans.The local
auditjob is deliberately untouchedIt is not a duplicate, and neither job is a superset of the other:
composer update --prefer-stableand audits everything, including dev dependencies;composer installthencomposer audit --locked --no-dev, which skips the dev tree — whereroave/security-advisoriesand the test toolchain live.The local job also caches composer and pins its own PHP, which the shared workflow does not. Replacing it would have been a removal dressed as a migration. These repositories are public, so the second
composer auditrun costs nothing.The secret scan before the credential exists
The shared workflow declares
OP_SERVICE_ACCOUNT_TOKENoptional and, when absent, emits a warning and skips the ggshield step rather than failing.secrets: inheritis therefore correct both now and once the credential is set. Failing closed is right for a finding and wrong for a missing setting.Rolled out after a five-repo pilot
package-tools,console,db-tools,package-managementandchronowent first. The pilot earned its keep: it found that the shared workflow'sosv-scanjob hardcodedphp-version: '8.4'whilecomposer-audithonoured the input, so every caller with a PHP floor above 8.4 failed with composer's "Your requirements could not be resolved" — an error naming neither PHP nor a version, inside a job called "OSV.dev scan". Fixed in laranail/.github#29 before this rollout, which is whyphp-versionhere is this repository's own value rather than a default.