Sync OpenAPI spec to v2-20260710 and fix docs drift#58
Merged
Conversation
- Add openapi-specs/openapi-2026-07-12.yml (v2-20260710-57729b61b9) - Update OPENAPI-BACKLOG.md with spec changes: new Task Lists resource family, aging reports, asset reinvestment reserve endpoints, time entry resume/stop, webhook activate/deactivate; external sales invoices synchronization is now official - Fix docs drift: contacts usage-charge naming (createAdditionalCharge/ getAdditionalCharges), nonexistent client accessors in external sales invoice attachment/payment examples, wrong sub-endpoint method names - Document previously undocumented methods: synchronization() on six resources, estimates all(), sales invoice reminder template getters - Expand CLAUDE.md: docs site sync rules, spec sync procedure, sub-endpoint access pattern, specs/ vs openapi-specs/ distinction
- run-tests.yml: trigger on pull_request and pushes to main, drop the path filter so the Tests status is always present (path-filtered workflows can't be used as required checks) - Add phpstan.yml: composer analyse on PRs and main. PHPStan level 5 with the 65 pre-existing errors pinned in phpstan-baseline.neon so CI only fails on new errors - Add docs-build.yml: build-only Astro check on PRs touching docs/** (deploy remains main-only) - composer.json: add phpstan/phpstan dev dependency and analyse script - CLAUDE.md: fix stale commands (composer format, PHPUnit not Pest), document the CI setup
- actions/checkout v6 -> v7 in all workflows (v7 blocks pwn-request patterns by default in pull_request_target workflows; our only pull_request_target workflow, dependabot-auto-merge, never checks out PR code) - Add composer-audit.yml: composer audit with latest Composer against a prefer-stable resolution, on main pushes, PRs, and a weekly cron. Prefer-stable is required: prefer-lowest resolves Saloon v3, whose known advisories are accepted for backwards compatibility - Document both in CLAUDE.md CI section
- Extend the test matrix from PHP 8.2/8.3 to 8.2-8.5, matching the versions currently supported by the PHP project - Run PHPStan and composer audit on PHP 8.5 - composer.json "php": "^8.2" already matches the supported set exactly; no constraint change needed - Document the PHP support policy in CLAUDE.md (drop 8.2 from matrix and constraint after its 2026-12-31 EOL)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v2-20260710-57729b61b9, saved asopenapi-specs/openapi-2026-07-12.yml) and refreshOPENAPI-BACKLOG.mdagainst itCLAUDE.mdwith docs-site sync rules and the spec sync procedureSpec changes (v2-20251223 → v2-20260710)
Docs fixes
createUsageCharge()/getUsageCharges()with actualcreateAdditionalCharge()/getAdditionalCharges()(moved the already-corrected straydocs/contacts.mdinto place)$client->externalSalesInvoiceAttachments()/externalSalesInvoicePayments()accessors with$client->externalSalesInvoices()->attachments()/->payments(), and fix sub-endpoint example method namessynchronization()on estimates, external sales invoices, financial mutations, financial statements, general (journal) documents;all()on estimates; sales invoice reminder template gettersCI changes
pull_request+ pushes tomain, path filter removed — previously PRs could merge with no test status at all (fork PRs got zero checks)composer analyseon PRs and main. PHPStan level 5; the 65 pre-existing errors (mostly the intentionalnew static()DTO pattern and Saloon v3/v4method_existscompat checks) are pinned inphpstan-baseline.neon, so CI fails only on new errorsdocs/**— catches docs build breakage pre-merge (previously only discovered when the Pages deploy failed on main)composer.json: addsphpstan/phpstan(dev) and theanalysescriptCLAUDE.md: fixed stale commands (composer format, PHPUnit not Pest) and documented the CI setup.github/workflows/, so it must be merged by a user withworkflowscope (the GitHub UI merge button works fine).Follow-up for repo settings (admin-only): mark Tests and PHPStan as required checks on
mainonce this lands.