diff --git a/integrations/github/package.json b/integrations/github/package.json index a0fef5c9e..a36a509d1 100644 --- a/integrations/github/package.json +++ b/integrations/github/package.json @@ -30,10 +30,11 @@ "@octokit/request-error": "^4.0.1", "@octokit/webhooks": "^10.4.0", "@trigger.dev/sdk": "workspace:^2.0.0-next.1", + "@trigger.dev/integration-kit": "workspace:^2.0.0-next.1", "octokit": "^2.0.14", "zod": "^3.20.2" }, "engines": { "node": ">=18" } -} \ No newline at end of file +} diff --git a/integrations/github/src/sources.ts b/integrations/github/src/sources.ts index b678006b8..7278982f7 100644 --- a/integrations/github/src/sources.ts +++ b/integrations/github/src/sources.ts @@ -6,6 +6,7 @@ import { HandlerEvent, } from "@trigger.dev/sdk"; import type { Logger } from "@trigger.dev/sdk"; +import { safeJsonParse, omit } from "@trigger.dev/integration-kit"; import { Octokit } from "octokit"; import { z } from "zod"; import { tasks } from "./tasks"; @@ -229,29 +230,6 @@ function parseBody(body: any) { return body; } -function safeJsonParse(data: string) { - try { - return JSON.parse(data); - } catch (e) { - return null; - } -} - -function omit, K extends keyof T>( - obj: T, - keys: K[] -): Omit { - const result: any = {}; - - for (const key of Object.keys(obj)) { - if (!keys.includes(key as K)) { - result[key] = obj[key]; - } - } - - return result; -} - async function webhookHandler(event: HandlerEvent<"HTTP">, logger: Logger) { logger.debug("[inside github integration] Handling github repo event"); diff --git a/integrations/github/tsconfig.json b/integrations/github/tsconfig.json index 1b60e1db5..25fc92894 100644 --- a/integrations/github/tsconfig.json +++ b/integrations/github/tsconfig.json @@ -6,6 +6,12 @@ "paths": { "@trigger.dev/sdk/*": ["../../packages/trigger-sdk/src/*"], "@trigger.dev/sdk": ["../../packages/trigger-sdk/src/index"], + "@trigger.dev/integration-kit/*": [ + "../../packages/integration-kit/src/*" + ], + "@trigger.dev/integration-kit": [ + "../../packages/integration-kit/src/index" + ] }, "declaration": false, "declarationMap": false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 33a949e9e..662f913db 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -567,6 +567,7 @@ importers: '@octokit/types': ^9.2.3 '@octokit/webhooks': ^10.4.0 '@octokit/webhooks-types': ^6.10.0 + '@trigger.dev/integration-kit': workspace:^2.0.0-next.1 '@trigger.dev/sdk': workspace:^2.0.0-next.1 '@trigger.dev/tsconfig': workspace:* '@types/node': '18' @@ -578,6 +579,7 @@ importers: '@octokit/request': 6.2.5 '@octokit/request-error': 4.0.1 '@octokit/webhooks': 10.5.1 + '@trigger.dev/integration-kit': link:../../packages/integration-kit '@trigger.dev/sdk': link:../../packages/trigger-sdk octokit: 2.0.14 zod: 3.20.2 @@ -678,10 +680,10 @@ importers: prisma: latest typescript: ^4.8.4 dependencies: - '@prisma/client': 4.15.0_prisma@4.15.0 + '@prisma/client': 4.16.0_prisma@4.16.0 typescript: 4.9.5 devDependencies: - prisma: 4.15.0 + prisma: 4.16.0 packages/emails: specifiers: @@ -730,6 +732,20 @@ importers: '@types/react': 18.0.26 typescript: 4.9.5 + packages/integration-kit: + specifiers: + '@trigger.dev/tsconfig': workspace:* + '@types/node': '18' + rimraf: ^3.0.2 + tsup: ^6.5.0 + tsx: ^3.12.1 + devDependencies: + '@trigger.dev/tsconfig': link:../../config-packages/tsconfig + '@types/node': 18.15.13 + rimraf: 3.0.2 + tsup: 6.6.3 + tsx: 3.12.2 + packages/internal: specifiers: '@trigger.dev/tsconfig': workspace:* @@ -6499,8 +6515,8 @@ packages: webpack: 5.80.0_uhpfu7q6noim4yjdo6qt2aajgu dev: true - /@prisma/client/4.15.0_prisma@4.15.0: - resolution: {integrity: sha512-xnROvyABcGiwqRNdrObHVZkD9EjkJYHOmVdlKy1yGgI+XOzvMzJ4tRg3dz1pUlsyhKxXGCnjIQjWW+2ur+YXuw==} + /@prisma/client/4.16.0_prisma@4.16.0: + resolution: {integrity: sha512-CBD+5IdZPiavhLkQokvsz1uz4r9ppixaqY/ajybWs4WXNnsDVMBKEqN3BiPzpSo79jiy22VKj/67pqt4VwIg9w==} engines: {node: '>=14.17'} requiresBuild: true peerDependencies: @@ -6509,16 +6525,16 @@ packages: prisma: optional: true dependencies: - '@prisma/engines-version': 4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944 - prisma: 4.15.0 + '@prisma/engines-version': 4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c + prisma: 4.16.0 dev: false - /@prisma/engines-version/4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944: - resolution: {integrity: sha512-sVOig4tjGxxlYaFcXgE71f/rtFhzyYrfyfNFUsxCIEJyVKU9rdOWIlIwQ2NQ7PntvGnn+x0XuFo4OC1jvPJKzg==} + /@prisma/engines-version/4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c: + resolution: {integrity: sha512-tMWAF/qF00fbUH1HB4Yjmz6bjh7fzkb7Y3NRoUfMlHu6V+O45MGvqwYxqwBjn1BIUXkl3r04W351D4qdJjrgvA==} dev: false - /@prisma/engines/4.15.0: - resolution: {integrity: sha512-FTaOCGs0LL0OW68juZlGxFtYviZa4xdQj/rQEdat2txw0s3Vu/saAPKjNVXfIgUsGXmQ72HPgNr6935/P8FNAA==} + /@prisma/engines/4.16.0: + resolution: {integrity: sha512-M6XoMRXnqL0rqZGQS8ZpNiHYG4G1fKBdoqW/oBtHnr1in5UYgerZqal3CXchmd6OBD/770PE9dtjQuqcilZJUA==} requiresBuild: true /@radix-ui/number/1.0.0: @@ -19606,7 +19622,7 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.0.6 + lilconfig: 2.1.0 yaml: 1.10.2 dev: true @@ -19622,7 +19638,7 @@ packages: ts-node: optional: true dependencies: - lilconfig: 2.0.6 + lilconfig: 2.1.0 postcss: 8.4.21 yaml: 1.10.2 dev: true @@ -19989,13 +20005,13 @@ packages: react: 18.2.0 dev: false - /prisma/4.15.0: - resolution: {integrity: sha512-iKZZpobPl48gTcSZVawLMQ3lEy6BnXwtoMj7hluoGFYu2kQ6F9LBuBrUyF95zRVnNo8/3KzLXJXJ5TEnLSJFiA==} + /prisma/4.16.0: + resolution: {integrity: sha512-kSCwbTm3LCephyGfZMJYqBXpPJXdJStg5xwfzeFmR5C05zfkOURK9pQpJF6uUQvFWm3lI9ZMSNkObmFkAPnB+g==} engines: {node: '>=14.17'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 4.15.0 + '@prisma/engines': 4.16.0 /prismjs/1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}