PHPackages                             elidrissidev/openapi-merge - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. elidrissidev/openapi-merge

ActiveApplication[API Development](/categories/api)

elidrissidev/openapi-merge
==========================

Merge multiple OpenAPI YML/JSON files into one

1.5.2(2y ago)017MITPHPPHP ~8.0.0 || ~8.1.0 || ~8.2.0

Since Oct 23Pushed 2y agoCompare

[ Source](https://github.com/elidrissidev/openapi-merge)[ Packagist](https://packagist.org/packages/elidrissidev/openapi-merge)[ RSS](/packages/elidrissidev-openapi-merge/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (8)Versions (13)Used By (0)

OpenAPI Merge
=============

[](#openapi-merge)

[![Test Status](https://github.com/marcelthole/openapi-merge/workflows/Tests/badge.svg)](https://github.com/marcelthole/openapi-merge/actions)[![Docker Build Status](https://github.com/marcelthole/openapi-merge/workflows/Docker-Build/badge.svg)](https://github.com/marcelthole/openapi-merge/actions)[![codecov](https://camo.githubusercontent.com/4a28342db117bf1b06e3fdcbabc19246d425c41ba43880b232da187d9bc9da76/68747470733a2f2f636f6465636f762e696f2f67682f6d617263656c74686f6c652f6f70656e6170692d6d657267652f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d64666656626871787667)](https://codecov.io/gh/marcelthole/openapi-merge)[![Mutation testing badge](https://camo.githubusercontent.com/764981330214c273139579342db0c3ae602ea95f6c0ae65a460d068687f9206a/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f7374796c653d666c61742675726c3d687474707325334125324625324662616467652d6170692e737472796b65722d6d757461746f722e696f2532466769746875622e636f6d2532466d617263656c74686f6c652532466f70656e6170692d6d657267652532466d61696e)](https://dashboard.stryker-mutator.io/reports/github.com/marcelthole/openapi-merge/main)[![Latest Stable Version](https://camo.githubusercontent.com/e94d54eadee28a53ed4143e8383ba101c249d079d2b257a506244489ff33d8ee/68747470733a2f2f706f7365722e707567782e6f72672f6d617263656c74686f6c652f6f70656e6170692d6d657267652f76)](//packagist.org/packages/marcelthole/openapi-merge)[![License](https://camo.githubusercontent.com/b3354bf20e89dcbe1ed55f1b433ead955795581cdd7f466b68b46e7c75dbdf3f/68747470733a2f2f706f7365722e707567782e6f72672f6d617263656c74686f6c652f6f70656e6170692d6d657267652f6c6963656e7365)](//packagist.org/packages/marcelthole/openapi-merge)

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](https://github.com/cebe/php-openapi)

Installation
============

[](#installation)

```
composer require marcelthole/openapi-merge

```

Usage
=====

[](#usage)

CLI
---

[](#cli)

```
$ vendor/bin/openapi-merge --help

Usage:
    openapi-merge basefile.yml additionalFileA.yml additionalFileB.yml [...]  > combined.yml

```

### Arguments

[](#arguments)

ArgumentMeaning--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 stdoutDocker
------

[](#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= --no-cache -t marcelthole/openapi-merge:dev docker
docker run -v $PWD:/app --rm marcelthole/openapi-merge:dev [arguments]

```

Outputformat
------------

[](#outputformat)

The output format is determined by the basefile extension.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 95% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~97 days

Recently: every ~178 days

Total

12

Last Release

951d ago

Major Versions

0.3 → 1.02020-11-27

PHP version history (4 changes)0.1PHP ^7.4 || ^8.0

1.0PHP ^7.4 || ~8.0.0

1.4PHP ^7.4 || ~8.0.0 || ~8.1.0

1.5PHP ~8.0.0 || ~8.1.0 || ~8.2.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/7b9b4dfe8a826d6a1e8e44dfcd5d13425188ed2e161286de88c0cce8f3a4adf6?d=identicon)[elidrissidev](/maintainers/elidrissidev)

---

Top Contributors

[![marcelthole](https://avatars.githubusercontent.com/u/850125?v=4)](https://github.com/marcelthole "marcelthole (57 commits)")[![elidrissidev](https://avatars.githubusercontent.com/u/67818913?v=4)](https://github.com/elidrissidev "elidrissidev (2 commits)")[![bcremer](https://avatars.githubusercontent.com/u/55820?v=4)](https://github.com/bcremer "bcremer (1 commits)")

---

Tags

openapimerge

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/elidrissidev-openapi-merge/health.svg)

```
[![Health](https://phpackages.com/badges/elidrissidev-openapi-merge/health.svg)](https://phpackages.com/packages/elidrissidev-openapi-merge)
```

###  Alternatives

[marcelthole/openapi-merge

Merge multiple OpenAPI YML/JSON files into one

1886.4k4](/packages/marcelthole-openapi-merge)[dsuurlant/response2schema

Generate an OpenAPI schema definition for an object based on a JSON response.

9153.5k](/packages/dsuurlant-response2schema)[psx/api

Parse and generate API specification formats

37178.0k4](/packages/psx-api)[onmoon/openapi-server-bundle

Symfony bundle to create a fully-featured API server from an OpenAPI v3 specification

1117.7k](/packages/onmoon-openapi-server-bundle)[wapmorgan/openapi-generator

OpenApi configuration generator directly from PHP code (PhpDoc, functions signature and type hints) and projects (for yii2, slim, laravel). Can be used with a large monolithic backend to maintain big API documentation

202.8k](/packages/wapmorgan-openapi-generator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
