@lssm/app.action-pr
v4.0.1
Published
GitHub Action for ContractSpec PR checks
Maintainers
Readme
@lssm/action.pr
Website: https://contractspec.io
GitHub Action that runs ContractSpec validation checks on pull requests. Posts drift reports, validation results, and product views as PR comments.
What It Does
- Uses
@lssm/lib.contracts-specfor contract definitions - Uses
@lssm/bundle.workspacefor workspace analysis - Configured via
action.yml; nosrc/— logic lives in workspace bundle
Usage
name: ContractSpec PR
on: pull_request
jobs:
contractspec:
runs-on: ubuntu-latest
permissions:
contents: read
packages: read
pull-requests: write
steps:
- uses: actions/checkout@v6
- uses: lssm-tech/contractspec/packages/apps/action-pr@main
with:
github-packages-token: ${{ secrets.CONTRACTSPEC_PACKAGES_TOKEN }}
generate-command: 'bun contractspec generate'For affected private GitHub Packages dependencies, github-packages-token must be a GitHub token that can read the ContractSpec packages granted to the consuming repository, bot, or GitHub App.
Inputs
package-manager(default:bun) — Package manager to use (bun|npm|pnpm|yarn)working-directory(default:.) — Working directory for running commandsreport-mode(default:summary) — Report output mode (summary|comment|both|off)enable-drift(default:true) — Run drift detection after generatefail-on(default:any) — Fail on breaking, drift, any, or nevergenerate-command(default:bun contractspec generate) — Command to regenerate artifacts (required when enable-drift=true)validate-command— Override validation commandcontracts-dir— Directory containing contract specscontracts-glob— Glob pattern for contract specstoken(default:${{ github.token }}) — GitHub token for PR commentsgithub-packages-token— Optional token used to configure private GitHub Packages auth before dependency installs
Outputs
drift-detected— Whether drift was detectedbreaking-change-detected— Whether breaking changes were detectedvalidation-failed— Whether validation failed
Key Files
action.yml— GitHub Action definitionfixtures/— Test report data and validation fixtures.contractspec-ci/contracts.json— CI contract configuration
Local Commands
bun run test— bun test
Recent Updates
- Replace eslint+prettier by biomejs to optimize speed
- Stability
- Standardize tool naming to underscore notation
Notes
- Do not change
action.ymlinputs/outputs without updating downstream workflow consumers - Fixture files are used for CI testing — keep them valid
