| 1234567891011121314151617181920212223242526272829303132333435363738 |
- import z from '@deepseek-ai/schemastery'
- import { WebhookRuleId } from '@deepseek-ai/dsh-webhook'
- export const name = 'github-webhook-real-e2e-rule'
- export const inject = ['webhookRuntime']
- export const Config = z.object({
- source: z.string().required(),
- repository: z.string().required(),
- workspacePath: z.string().required(),
- marker: z.string().required(),
- agentPreset: z.string().required(),
- permissionPreset: z.string().required(),
- })
- export function apply(ctx, config) {
- ctx.effect(() => ctx.webhookRuntime.register({
- id: WebhookRuleId('github-real-e2e'),
- kind: 'github',
- run(delivery, signal) {
- if (delivery.source !== config.source) return null
- if (delivery.event.name !== 'pull_request') return null
- const { payload } = delivery.event
- if (payload.action !== 'ready_for_review') return null
- if (payload.repository?.full_name !== config.repository) return null
- signal.throwIfAborted()
- return {
- workspacePath: config.workspacePath,
- title: 'GitHub webhook real e2e',
- prompt: `Reply with exactly ${config.marker} and no other text. Do not call tools.`,
- agentPreset: config.agentPreset,
- permissionPreset: config.permissionPreset,
- }
- },
- }))
- }
|