
EventCatalog can now sync users and teams directly from GitHub. Point it at your org, and ownership data stays accurate without manual upkeep.
EventCatalog can now sync users and teams directly from GitHub, so you can assign ownership across your services, events, and domains using the people and teams you already have on GitHub, and keep them in sync automatically.
flowchart LR
GH[GitHub org] --> C[GitHub connector]
C --> EC[EventCatalog]
EC --> U[Users & Teams]
The problem with hand-maintained ownership
Teams and users in EventCatalog are how you assign ownership on services, events, domains, and everything else. Ownership is only useful when it is accurate.
Keeping a list accurate by hand is not sustainable. People join and leave teams. Teams get restructured. The catalog falls behind, owners become stale, and nobody trusts the data. Your source of truth for team membership almost certainly already exists somewhere, and for most engineering organizations, that place is GitHub.
How it works
The new @eventcatalog/connectors package ships a githubDirectory connector. You configure it in eventcatalog.config.js with your org, the teams you want to sync, and a token. When the catalog loads, it fetches teams and their members from the GitHub API and writes them into EventCatalog as users and teams.
Example eventcatalog.config.js file
// ...rest of your config
directory: {
sources: [
githubDirectory({
org: "acme",
teams: ["platform", "payments", "architecture"],
users: true,
token: process.env.GITHUB_TOKEN,
}),
],
},
};
Not using GitHub?
If your team data lives somewhere else, such as an HR tool, LDAP, Okta, Microsoft Entra, or anything with an API, you can build your own connector using defineDirectorySource. It expects a loadTeams() and loadUsers() function, both returning plain objects. The same sync mechanism runs regardless of the source.
Read the guide at Create your own connector.
Plan availability
Directory sync is a Scale plan feature (and available on Enterprise). The connector package and defineDirectorySource are open source, so you can build and test connectors locally.
Getting started
Install the package and add the configuration above:
npm install @eventcatalog/connectors
Set GITHUB_TOKEN in your environment with read:org scope, then start the catalog. Users and teams will populate on the next load.
Full setup instructions: Sync from GitHub.
Not on GitHub? You can also create your own connector to sync users and teams from any system you already use.
Questions or feedback? Find us on Discord or open an issue on GitHub.