chore(ci): gate paybot-sdk on npm run lint + ignore coverage/ artifacts#39
Conversation
Add `npm run lint` as a CI step in the build matrix job, positioned between `npm ci` (install) and `npm run type-check` so lint failures fast-fail before downstream type-check/test/coverage/build steps. Now possible because Task #14 (dual-mode dead-code fix in PR #36) eliminated the no-dupe-else-if blocker on `src/x402-v2.ts:251`. Lint passes clean on main (verified locally pre-commit). Why lint gate matters: paybot-sdk auto-publishes to npm on main push. Without a CI lint gate, lint regressions could ship to the registry. Note on Task #16 (coverage/ in .gitignore): already present on line 12 of `.gitignore`. No-op; not included in this PR. Closes #17 Refs #16 (no-op, pre-existing)
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
|
Warning Review limit reached
Your plan currently allows 1 review/hour. Refill in 21 minutes and 46 seconds. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more review capacity refills, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Merge authorization per .claude/rules/automated-pr-merge-authority.md (9th application — final chore PR of the day):
Closes Task #16 (no code change — verified pre-existing) + Task #17 (lint gate enforced in CI). This is the 11th paybot ecosystem merge today (9th application of automated-pr-merge-authority rule). |
Summary
Closes #17 (promote
npm run lintto a CI gate) and references #16 (coverage/ in.gitignore).This was unblocked by Task #14 / PR #36 (Story 14 — dual-mode refactor), which eliminated the
no-dupe-else-ifreal-bug lint failure onsrc/x402-v2.ts:251. Lint now passes clean on main, so we can promote it from local-only convention to CI-enforced gate.Why lint gate matters
paybot-sdkauto-publishes to npm on push tomain(seepublish:job in.github/workflows/ci.yml). Without an enforced lint step in thebuild:job that gates the publish job, a future lint regression could ship straight to the npm registry. Promotingnpm run lintto a CI step closes that exposure.What changed
.github/workflows/ci.yml— added aLintstep in thebuild:matrix job, positioned betweenInstall dependencies(npm ci) andType check(npm run type-check). Fast-fail ordering: lint runs first, type-check second, tests third, coverage fourth, build last. A lint failure halts the matrix entry before any downstream step burns CI minutes.Indentation matches the other matrix steps. No changes to
package.json(thelintscript already exists and is wired toeslint src --ext .ts).Task #16 —
coverage/in.gitignorePre-existing. Already present on line 12 of
.gitignore(added during the original repo setup, long before the Story 15 coverage gate). No-op — not included in this PR. Bookkeeping confirms #16 was already satisfied; closing the issue without a code change.Chain governance
9th application of
automated-pr-merge-authority.md(NON-NEGOTIABLE rule, established 2026-05-22). This PR uses the chore-style carve-out: no story, no acceptance criteria, no application code — pure CI/hygiene. Chain executes as:Anti-patterns avoided
gh pr checksand reported back. Hypothesis (per Story 15 PR feat(coverage): enable 80% coverage gate via 28+ new tests (Story 15) #38 precedent): lint runs inside thebuild (18)/build (20)matrix entries, so the existing 4 required_status_checks contexts remain unchanged. If a new context name surfaces, post-mergerequired_status_checksPATCH will be documented.Out of scope
src/(e.g., tests, scripts) — separate taskPre-merge verification (local)
npm run lintonmain@ 553cabf: PASS (zero warnings, zero errors)eslint src --ext .ts(perpackage.json)🤖 Generated with Claude Code