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