https://github.com/ecosyste-ms/package-manager-openapi-schemas
OpenAPI 3.0 specifications for package manager registry APIs.
https://github.com/ecosyste-ms/package-manager-openapi-schemas
openapi package-manager specs
Last synced: 2 months ago
JSON representation
OpenAPI 3.0 specifications for package manager registry APIs.
- Host: GitHub
- URL: https://github.com/ecosyste-ms/package-manager-openapi-schemas
- Owner: ecosyste-ms
- License: mit
- Created: 2025-11-13T19:55:14.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-11-14T10:58:41.000Z (3 months ago)
- Last Synced: 2025-11-14T12:25:15.173Z (3 months ago)
- Topics: openapi, package-manager, specs
- Homepage:
- Size: 87.9 KB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Package Manager OpenAPI Schemas
OpenAPI 3.0 specifications for many package manager registry APIs.
Initially extract from [packages.ecosyste.ms](https://github.com/ecosyste-ms/packages) and existing openapi specs.
## Available Schemas
| Ecosystem | Registry | Schema | Official Spec |
|-----------|----------|--------|---------------|
| **NPM** | registry.npmjs.org | [`npm.yaml`](openapi/npm.yaml) | - |
| **Go** | proxy.golang.org | [`go.yaml`](openapi/go.yaml) | - |
| **NuGet** | nuget.org | [`nuget.yaml`](openapi/nuget.yaml) | - |
| **PyPI** | pypi.org | [`pypi.yaml`](openapi/pypi.yaml) | - |
| **Maven** | repo1.maven.org | [`maven.yaml`](openapi/maven.yaml) | - |
| **Packagist** | packagist.org | [`packagist.yaml`](openapi/packagist.yaml) | - |
| **Rust** | crates.io | [`crates-io.json`](openapi/crates-io.json) | [OpenAPI 3.1.0](https://crates.io/api/openapi.json) |
| **RubyGems** | rubygems.org | [`rubygems.yaml`](openapi/rubygems.yaml) | - |
| **Pub** | pub.dev | [`pub.yaml`](openapi/pub.yaml) | - |
| **Hex** | hex.pm | [`hex.yaml`](openapi/hex.yaml) | - |
| **OpenVSX** | open-vsx.org | [`openvsx.json`](openapi/openvsx.json) | [OpenAPI 3.1.0](https://open-vsx.org/v3/api-docs/registry) |
| **Deno** | apiland.deno.dev | [`deno.yaml`](openapi/deno.yaml) | - |
| **Homebrew** | formulae.brew.sh | [`homebrew.yaml`](openapi/homebrew.yaml) | - |
| **CPAN** | metacpan.org | [`cpan.yaml`](openapi/cpan.yaml) | - |
| **Conda** | anaconda.org | [`conda.yaml`](openapi/conda.yaml) | - |
| **Docker** | hub.docker.com | [`docker.yaml`](openapi/docker.yaml) | - |
| **Puppet** | forgeapi.puppet.com | [`puppet.yaml`](openapi/puppet.yaml) | - |
| **Elm** | package.elm-lang.org | [`elm.yaml`](openapi/elm.yaml) | - |
| **Cocoapods** | cocoapods.org | [`cocoapods.yaml`](openapi/cocoapods.yaml) | - |
| **Clojars** | clojars.org | [`clojars.yaml`](openapi/clojars.yaml) | - |
| **Terraform** | registry.terraform.io | [`terraform.yaml`](openapi/terraform.yaml) | - |
| **ArtifactHub** | artifacthub.io | [`artifacthub.yaml`](openapi/artifacthub.yaml) | - |
| **WordPress** | api.wordpress.org | [`wordpress.yaml`](openapi/wordpress.yaml) | - |
| **Drupal** | packages.drupal.org | [`drupal.yaml`](openapi/drupal.yaml) | - |
## Usage
### Generate API Clients
```bash
openapi-generator-cli generate -i openapi/npm.yaml -g python -o npm-client
openapi-generator-cli generate -i openapi/cargo.json -g typescript-axios -o cargo-client
# 50+ languages supported
```
### Interactive Documentation
```bash
docker run -p 8080:8080 -e SWAGGER_JSON=/schemas/openapi/npm.yaml -v $(pwd):/schemas swaggerapi/swagger-ui
```
### Mock Servers
```bash
npm install -g @stoplight/prism-cli
prism mock openapi/npm.yaml
```
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
**Quick start:**
1. Copy an existing schema as template
2. Document the API endpoints
3. Validate: `swagger-cli validate openapi/your_ecosystem.yaml`
4. Update this README
5. Submit PR
## License
MIT License - see [LICENSE](LICENSE) for details.
Note: Schemas sourced from official specifications (marked in the table above) retain their original licenses as defined in the respective spec files.