Repository navigation
ci(checks): run the full e2e and coverage on every PR; drop the diff-aware section selector - #409
Conversation
File size check0 over a hard cap (fails), 30 warning(s).
Split the file, wrap the line, shorten or exempt the comment, or list the path in 5 managed file(s) skipped; repo-platform owns them. |
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The implementation is coherent and tested; only a non-blocking stale nightly workflow comment remains.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Runs complete e2e, fuzz, and endpoint coverage checks for every PR while consolidating import scanning into the architecture lint.
Changes:
- Removes diff-aware section selection and workflow gates.
- Runs the complete test corpus on every event.
- Adds architecture scanner and repository-layout coverage.
| File | Description |
|---|---|
.github/scripts/arch-lint.ts |
Absorbs import scanning and resolution. |
.github/scripts/changed-sections.ts |
Removes the section selector. |
.github/workflows/checks.yml |
Runs complete PR checks unconditionally. |
CONTRIBUTING.md |
Documents the expanded PR checks. |
src/sections/shared/repo-secrets.ts |
Removes obsolete selector reference. |
src/sections/shared/repo-variables.ts |
Removes obsolete selector reference. |
src/sections/shared/schema-helpers.ts |
Removes obsolete selector reference. |
test/architecture/architecture.test.ts |
Expands import scanner coverage. |
test/docs/checks-sections-gate.test.ts |
Removes obsolete workflow-token tests. |
test/layout.test.ts |
Adds repository-layout census tests. |
test/scripts/changed-sections.test.ts |
Removes selector tests. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
9d30930 to
1baad6f
Compare
25f1809 to
cf38681
Compare
1baad6f to
4f17e1c
Compare
4f17e1c to
8957f19
Compare
cf38681 to
a1d11d4
Compare
a074e0c to
d594a11
Compare
a1d11d4 to
eb5ed44
Compare
d594a11 to
e2f48d7
Compare
e2f48d7 to
769a4bd
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The layout census fails to detect top-level mock and generator helpers under src/.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (1)
Resolved since last review (1)
…aware section selector Every pull request now runs the whole scenario corpus, 25 fuzz iterations, and the endpoint-coverage tripwire; the e2e-smoke and endpoint-coverage jobs lose their diff step, their skip conditions, and the full-history checkout only the diff needed. The selector script and its test are deleted, and the workflow test that pinned its printed tokens goes with them. arch-lint.ts absorbs the import scanner and resolver it shared with the selector, reading every load form from the one oxc parse it already makes, so Bun.Transpiler and the shebang special case go. The layout census the selector's test carried moves to test/layout.test.ts: src/ holds code only, and a file named after a section lives in the mirror directory of its key, never flat beside the directories. The mirror root has one owner, SECTIONS_TEST_ROOT in test/e2e/schema.ts, which scenarioRoots() defaults to and the census imports. CONTRIBUTING.md and the three shared-module headers that named the selector are updated.
769a4bd to
bd84e6c
Compare


Before
After
How
.github/scripts/changed-sections.ts, its test, and the workflow test that pinned itsall/nonetokens in checks.yml.importSpecifiersreads every module-load form (static imports and re-exports,import(),require(),import("./x.js").T,import X = require()) from the one oxc parse it already makes;resolveImportmoves in unchanged.Bun.Transpilerand the shebang regex go.test/layout.test.tskeeps the one non-selector fact the deleted test pinned (src/ holds no tests, mocks, generators, scenarios, or docs prose) and adds the flat-file rule: a file named after a section lives in the section mirror directory, never flat beside the directories.test/e2e/schema.tsexportsSECTIONS_TEST_ROOT, the defaultscenarioRoots()already used; the census imports it, so a mirror move edits that one line. The census reads the root directly (readdirSyncfails by path on a missing root) and asserts it holds at least one section directory; there is no fallback between roots.src/sections/shared/*.tsheaders no longer name the selector.Proof
test/layout.test.ts,test/architecture,test/docs,test/schema-corpus.test.tsgreen.src/sections/labels/x.test.tsand a flattest/sections/labels-x.test.tseach fail the census by name; removed, green. Control:SECTIONS_TEST_ROOTpointed at a missing directory fails the file with ENOENT naming the path. The src/ census matches basenames, so a top-levelsrc/mock.tsfails it too (proved red with a temporary file).require(("x")),require("x" as string)) were red against the prior scanner (it threw "computed specifier") and resolve now; the four callee-wrapped ones ((require)(x),require!(x),(require as any)(x),require<T>(x)) resolved before and after, and are pinned as parity cases.Technical details
wt/octokit-schemas), which deletes the fetch-test-artifacts action and its two steps in the same checks.yml jobs this change edits; the base is that branch so the diff shows only this change, and GitHub retargets to main when chore(test): take the OpenAPI and GraphQL schemas from the Octokit packages instead of fetching them #406 merges. PR refactor(test): fold the section test mirror into test/sections #402 moves the mirror totest/sections; it edits theSECTIONS_TEST_ROOTline and the census follows.ALL_SELECTING_PREFIXESand the "every top-level src entry is all-selecting" test, the section-path classifiers, the name-status parser, and the checks.yml token pins. The parse, computed-specifier, dangling-import, and layout guards survive in arch-lint.ts and test/layout.test.ts.Reviewer note
test/sections/webhooks-events.test.ts; its move totest/sections/webhooks/events.test.tshas since landed on main, so the census here starts clean.BEGIN_COMMIT_OVERRIDE
ci(checks): run the full e2e and coverage on every PR; drop the diff-aware section selector
Every pull request now runs the whole scenario corpus, 25 fuzz iterations, and the endpoint-coverage tripwire; the e2e-smoke and endpoint-coverage jobs lose their diff step, their skip conditions, and the full-history checkout only the diff needed.
The selector script and its test are deleted, and the workflow test that pinned its printed tokens goes with them.
arch-lint.ts absorbs the import scanner and resolver it shared with the selector, reading every load form from the one oxc parse it already makes, so Bun.Transpiler and the shebang special case go.
The layout census the selector's test carried moves to test/layout.test.ts: src/ holds code only, and a file named after a section lives in the mirror directory of its key, never flat beside the directories.
The mirror root has one owner, SECTIONS_TEST_ROOT in test/e2e/schema.ts, which scenarioRoots() defaults to and the census imports.
CONTRIBUTING.md and the three shared-module headers that named the selector are updated.
END_COMMIT_OVERRIDE