composer/API Surface Check for PHP

Comment on a pull request with the public API surface changes (added, removed, modified symbols) detected.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 4, 2026
License
None

Pinned Snippet

workflow.ymlSHA-pinned
uses: composer/api-surface-check@bba9f1cb940df6e02271b1b6158679ac0b3f39d3 # 1.0.1

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
pathsPathspec patterns of files to analyze (whitespace or newline separated).nosrc/**/*.php
source-rootsDirectories used to resolve parent classes/interfaces, comma or whitespace separated.nosrc
output-dirDirectory inside the runner where the analysis output is written.noapi-surface-result
include-internalInclude symbols marked with @internal or @private.nofalse
typesComma-separated list of symbol kinds to report (class,interface,trait,enum,method,property,constant).noclass,interface,trait,enum,method,property,constant
visibilityComma-separated visibilities to report (public,protected,private).nopublic,protected
show-removedInclude removed symbols in the report.notrue
show-modifiedInclude symbols whose signature changed.notrue
comment-markerHTML comment marker used to identify previous bot comments.no<!-- api-surface-bot -->
headingMarkdown heading for the comment body.no## API Surface Changes
working-directoryDirectory the analysis runs from (must be a git repo with the analyzed files). Defaults to the workflow's working directory.no.
install-dependenciesRun composer install in the analyzed project so vendor classes are resolvable when walking parent hierarchies. Composer is invoked with --no-scripts and --no-plugins so PR-controlled code never executes.nofalse
composer-working-directoryDirectory containing the analyzed project's composer.json. Empty (default) means use the value of working-directory.no""

no outputs