mirror of
https://github.com/outline/outline.git
synced 2026-01-01 08:23:04 -06:00
* Listen to GitHub webhooks to update issue-sources cache * Add `GitHubWebhookTask` * review
27 lines
686 B
TypeScript
27 lines
686 B
TypeScript
import { IntegrationService } from "@shared/types";
|
|
import BaseTask from "@server/queues/tasks/BaseTask";
|
|
import { Hook, PluginManager } from "@server/utils/PluginManager";
|
|
|
|
type Props = {
|
|
headers: Record<string, unknown>;
|
|
payload: Record<string, unknown>;
|
|
};
|
|
|
|
export default class GitHubWebhookTask extends BaseTask<Props> {
|
|
public async perform({ headers, payload }: Props): Promise<void> {
|
|
const plugins = PluginManager.getHooks(Hook.IssueProvider);
|
|
const plugin = plugins.find(
|
|
(p) => p.value.service === IntegrationService.GitHub
|
|
);
|
|
|
|
if (!plugin) {
|
|
return;
|
|
}
|
|
|
|
await plugin.value.handleWebhook({
|
|
headers,
|
|
payload,
|
|
});
|
|
}
|
|
}
|