From 4ef76f72dcc3d8a439b994cc4f615409104dc459 Mon Sep 17 00:00:00 2001 From: Matt Aitken Date: Thu, 22 Jun 2023 10:38:53 +0100 Subject: [PATCH] Separate GitHub repo into owner and repo, to match official SDK/API --- examples/nextjs-example/src/jobs/github.ts | 36 ++++++++++++++-------- examples/nextjs-example/src/trigger.ts | 6 ++-- integrations/github/src/index.ts | 5 ++- integrations/github/src/sources.ts | 19 +++++++++--- 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/examples/nextjs-example/src/jobs/github.ts b/examples/nextjs-example/src/jobs/github.ts index 04eb80d9b..4a796d2e4 100644 --- a/examples/nextjs-example/src/jobs/github.ts +++ b/examples/nextjs-example/src/jobs/github.ts @@ -14,7 +14,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onIssue, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -28,7 +29,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onIssueOpened, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -42,7 +44,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onIssueAssigned, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -56,7 +59,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onIssueComment, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -70,7 +74,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onStar, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -84,7 +89,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onNewStar, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -98,7 +104,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onNewRepository, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -112,7 +119,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onNewBranchOrTag, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -126,7 +134,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onNewBranch, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -140,7 +149,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onPush, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -154,7 +164,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onPullRequest, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); @@ -168,7 +179,8 @@ new Job(client, { version: "0.1.0", trigger: githubApiKey.triggers.repo({ event: events.onPullRequestReview, - repo: "triggerdotdev/empty", + owner: "triggerdotdev", + repo: "empty", }), run: async (payload, io, ctx) => { await io.logger.info("This is a simple log info message"); diff --git a/examples/nextjs-example/src/trigger.ts b/examples/nextjs-example/src/trigger.ts index b3f1aaa4a..54e50d742 100644 --- a/examples/nextjs-example/src/trigger.ts +++ b/examples/nextjs-example/src/trigger.ts @@ -542,7 +542,7 @@ new Job(client, { enabled, trigger: eventTrigger({ name: "new.repo", - schema: z.object({ repo: z.string() }), + schema: z.object({ owner: z.string(), repo: z.string() }), }), run: async (payload, io, ctx) => { return await io.registerTrigger( @@ -550,6 +550,7 @@ new Job(client, { dynamicOnIssueOpenedTrigger, payload.repo, { + owner: payload.owner, repo: payload.repo, } ); @@ -619,7 +620,8 @@ new Job(client, { }, trigger: github.triggers.repo({ event: events.onIssueOpened, - repo: "ericallam/basic-starter-12k", + owner: "ericallam", + repo: "basic-starter-12k", }), run: async (payload, io, ctx) => { await io.wait("wait", 5); // wait for 5 seconds diff --git a/integrations/github/src/index.ts b/integrations/github/src/index.ts index f8994770b..ec19b4733 100644 --- a/integrations/github/src/index.ts +++ b/integrations/github/src/index.ts @@ -441,6 +441,7 @@ type CreateRepoTriggerReturnType = < TEventSpecification extends GitHubEvents >(args: { event: TEventSpecification; + owner: string; repo: string; }) => ExternalSourceTrigger< TEventSpecification, @@ -452,14 +453,16 @@ function createRepoTrigger( ): CreateRepoTriggerReturnType { return ({ event, + owner, repo, }: { event: TEventSpecification; + owner: string; repo: string; }) => { return new ExternalSourceTrigger({ event, - params: { repo }, + params: { owner, repo }, source, }); }; diff --git a/integrations/github/src/sources.ts b/integrations/github/src/sources.ts index 7278982f7..b4e2a9b93 100644 --- a/integrations/github/src/sources.ts +++ b/integrations/github/src/sources.ts @@ -33,25 +33,30 @@ export function createRepoEventSource( integration: TriggerIntegration> ): ExternalSource< TriggerIntegration>, - { repo: string }, + { owner: string; repo: string }, "HTTP" > { return new ExternalSource("HTTP", { id: "github.repo", version: "0.1.1", - schema: z.object({ repo: z.string() }), + schema: z.object({ owner: z.string(), repo: z.string() }), integration, - key: (params) => params.repo, + key: (params) => `${params.owner}/${params.repo}`, properties: (params) => [ + { + label: "Owner", + text: params.owner, + url: `https://github.com/${params.owner}`, + }, { label: "Repo", text: params.repo, - url: `https://github.com/${params.repo}`, + url: `https://github.com/${params.owner}/${params.repo}`, }, ], filter: (params) => ({ repository: { - full_name: [params.repo], + full_name: [`${params.owner}/${params.repo}`], }, }), handler: webhookHandler, @@ -64,6 +69,7 @@ export function createRepoEventSource( const newWebhookData = await io.integration.updateWebhook( "update-webhook", { + owner: params.owner, repo: params.repo, hookId: httpSource.data.id, url: httpSource.url, @@ -82,6 +88,7 @@ export function createRepoEventSource( } const webhooks = await io.integration.listWebhooks("list-webhooks", { + owner: params.owner, repo: params.repo, }); @@ -94,6 +101,7 @@ export function createRepoEventSource( const updatedWebhook = await io.integration.updateWebhook( "update-webhook", { + owner: params.owner, repo: params.repo, hookId: existingWebhook.id, url: httpSource.url, @@ -109,6 +117,7 @@ export function createRepoEventSource( } const webhook = await io.integration.createWebhook("create-webhook", { + owner: params.owner, repo: params.repo, events, url: httpSource.url,