
Security News
TeamPCP and BreachForums Launch $1,000 Contest for Supply Chain Attacks
TeamPCP and BreachForums are promoting a Shai-Hulud supply chain attack contest with a $1,000 prize for the biggest package compromise.
@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
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
TeamPCP and BreachForums are promoting a Shai-Hulud supply chain attack contest with a $1,000 prize for the biggest package compromise.

Security News
Packagist urges PHP projects to update Composer after a GitHub token format change exposed some GitHub Actions tokens in CI logs.

Research
GemStuffer abuses RubyGems as an exfiltration channel, packaging scraped UK council portal data into junk gems published from new accounts.