marcelthole / openapi-merge
Merge multiple OpenAPI YML/JSON files into one
Package info
github.com/marcelthole/openapi-merge
Type:application
pkg:composer/marcelthole/openapi-merge
2.5.0
2026-02-15 19:12 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- php-openapi/openapi: ^2.0.1
- symfony/console: ^6.0 || ^7.0
Requires (Dev)
- doctrine/coding-standard: ^13.0.1
- infection/infection: ^0.29.6
- phpstan/phpstan: ^1.11.0
- phpstan/phpstan-phpunit: ^1.4.0
- phpunit/phpunit: ^10.1 || ^11.0
- roave/security-advisories: dev-master
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Read multiple OpenAPI 3.0.x YAML and JSON files and merge them into one large file.
This application is build on cebe/php-openapi
Installation
composer require marcelthole/openapi-merge
Usage
CLI
$ vendor/bin/openapi-merge --help
Usage:
openapi-merge basefile.yml additionalFileA.yml additionalFileB.yml [...] > combined.yml
Arguments
| Argument | Meaning |
|---|---|
| --match[=MATCH] | Use a RegEx pattern to determine the additionalFiles. If this option is set the additionalFiles could be omitted (multiple values allowed) |
| --resolve-references[=RESOLVE-REFERENCES] | Resolve the "$refs" in the given files [default: true] |
| -o, --outputfile[=OUTPUTFILE] | Defines the output file for the result. Defaults the result will printed to stdout |
Docker
Run the openapi-merge command within a docker container
docker pull ghcr.io/marcelthole/openapi-merge
docker run -v $PWD:/app --rm ghcr.io/marcelthole/openapi-merge [arguments]
Build the image locally from the sourcecode:
docker build --build-arg COMPOSER_REQUIRE_VERSION=<version> --no-cache -t marcelthole/openapi-merge:dev docker
docker run -v $PWD:/app --rm marcelthole/openapi-merge:dev [arguments]
Outputformat
The output format is determined by the basefile extension.