
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@eventcatalog/generator-github
Advanced tools
Pull and sync your schemas (e.g Avro, Protobuf, JSON) from GitHub to EventCatalog
EventCatalog is technology agnostic, meaning it can integrate with any schemas, specs or brokers.
EventCatalog supports generators.
Generators are scripts are run to pre build to generate content in your catalog. Generators can use the EventCatalog SDK.
Many teams keep there schemas in GitHub. This is great as it allows you to version control your schemas and follow best practices (e.g pull requests, code reviews, etc).
Using this plugin you can pull your schemas from any GitHub repository and keep them in sync with your documentation. This let's you document your schemas, and architecture whilst keeping your schemas in your documentation up to date.
This is done by defining your generators in your eventcatalog.config.js file.
...
generators: [
// Basic example mapping schemas from confluent schema registry to services without any topics
[
'@eventcatalog/generator-github',
{
// The GitHub repository to pull the schemas from
repo: 'event-catalog/eventcatalog',
// The path to the folder containing the schemas
path: 'examples/default',
// Here we define the services, we want to map the schemas to (producers/consumer relationships)
services: [
{
id: 'Inventory Service',
version: '1.0.0',
sends: [{
id: 'app.orders.created',
version: '1.0.0', // optional, defaults to latest
type: 'event', // event, command or query
// The path in your github repository to the schema
schemaPath: 'domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.avro',
}],
receives:[{
id: 'app.orders.updated',
version: '1.0.0', // optional, defaults to latest
type: 'command', // command, query or event
// The path in your github repository to the schema
schemaPath: 'domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.avro',
}]
},
],
// All the services are assigned to this domain (optional)
domain: { id: 'orders', name: 'Orders', version: '0.0.1' },
},
],
// Example of just mapping schemas to events, commands and queries (without services or domains)
[
'@eventcatalog/generator-github',
{
// The url of your Confluent Schema Registry
repo: 'event-catalog/eventcatalog',
path: 'examples/default',
messages: [
{
id: 'app.orders.created',
version: '1.0.0',
type: 'event',
// The path in your github repository to the schema
schemaPath: 'domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.avro',
},
{
id: 'app.orders.updated',
version: '1.0.0',
type: 'command',
schemaPath: 'domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.avro',
},
{
id: 'app.orders.create',
version: '1.0.0',
type: 'query',
schemaPath: 'domains/Orders/services/InventoryService/events/InventoryAdjusted/schema.avro',
},
],
},
]
],
...
In the example above we have two types of usecases for the generator:
Make sure you are on the latest version of EventCatalog.
npm i @eventcatalog/generator-github
Configure your eventcatalog.config.js file (see example)
Set credentials for your GitHub. Create a .env file in the root of your project and add the following:
The machine you are running the generator on needs to have access to the GitHub repository.
# From eventcatalog.cloud (14 day free trial)
EVENTCATALOG_LICENSE_KEY_GITHUB=
npm run generate
npm run dev
Raise a GitHub issue on this project, or contact us on our Discord server.
This generator requires a license to be used with EventCatalog. You can get a 14 day free trial at https://eventcatalog.cloud or email us at hello@eventcatalog.dev.
FAQs
Pull and Sync schemas from GitHub to EventCatalog
The npm package @eventcatalog/generator-github receives a total of 164 weekly downloads. As such, @eventcatalog/generator-github popularity was classified as not popular.
We found that @eventcatalog/generator-github demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.