io.registerTrigger() allows you to register a DynamicTrigger with the specified trigger data.
io.registerTrigger()
run()
//1. create a DynamicTrigger const dynamicOnIssueOpenedTrigger = client.defineDynamicTrigger({ id: "github-issue-opened", event: events.onIssueOpened, source: github.sources.repo, }); //2. create a Job that is attached to the dynamic trigger client.defineJob({ id: "listen-for-dynamic-trigger", name: "Listen for dynamic trigger", version: "0.1.1", trigger: dynamicOnIssueOpenedTrigger, integrations: { slack, }, run: async (payload, io, ctx) => { await io.slack.postMessage("Slack 📝", { text: `New Issue opened on repo: ${payload.issue.html_url}. \n\n${JSON.stringify(ctx)}`, channel: "C04GWUTDC3W", }); }, }); client.defineJob({ id: "new-repo", name: "New repo", version: "0.1.1", trigger: github.triggers.org({ event: events.onNewRepository, org: "triggerdotdev", }), run: async (payload, io, ctx) => { //3. Register the dynamic trigger so you get notified when an issue is opened return await io.registerTrigger( "register-repo", dynamicOnIssueOpenedTrigger, payload.repository.name, { owner: payload.repository.owner.login, repo: payload.repository.name, } ); }, });
Was this page helpful?