Welcome to the events-backend-module-gitlab backend module!
This package is a module for the events-backend backend plugin
and extends the event system with an GitlabEventRouter.
The event router will subscribe to the topic gitlab
and route the events to more concrete topics based on the value
of the provided $.event_name payload field.
Examples:
$.event_name |
topic |
|---|---|
push |
gitlab.push |
merge_request |
gitlab.merge_request |
Please find all possible webhook event types at the official documentation.
# From your Backstage root directory
yarn --cwd packages/backend add @backstage/plugin-events-backend-module-gitlab
// packages/backend/src/index.ts
import { eventsModuleGitlabEventRouter } from '@backstage/plugin-events-backend-module-gitlab/alpha';
// ...
backend.add(eventsModuleGitlabEventRouter);
// packages/backend/src/plugins/events.ts
const eventRouter = new GitlabEventRouter({ events: env.events });
await eventRouter.subscribe();
// packages/backend/src/index.ts
import { eventsModuleGitlabWebhook } from '@backstage/plugin-events-backend-module-gitlab/alpha';
// ...
backend.add(eventsModuleGitlabWebhook);
Add the token validator for the topic gitlab:
// packages/backend/src/plugins/events.ts
+ import { createGitlabTokenValidator } from '@backstage/plugin-events-backend-module-gitlab';
// [...]
const http = HttpPostIngressEventPublisher.fromConfig({
config: env.config,
events: env.events,
ingresses: {
+ gitlab: {
+ validator: createGitlabTokenValidator(env.config),
+ },
},
logger: env.logger,
});
events:
modules:
gitlab:
webhookSecret: your-secret-token
The module "gitlab" for the Backstage backend plugin "events-backend" adding an event router and token validator for GitLab.