From 5518dac3175e1962e599d37bb6834eac11ac84ad Mon Sep 17 00:00:00 2001 From: Mincong Huang Date: Wed, 5 Feb 2025 14:05:43 +0100 Subject: [PATCH 1/2] Add hook for GitHub --- apps/github-server/api/hook.ts | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 apps/github-server/api/hook.ts diff --git a/apps/github-server/api/hook.ts b/apps/github-server/api/hook.ts new file mode 100644 index 0000000..3dcf94b --- /dev/null +++ b/apps/github-server/api/hook.ts @@ -0,0 +1,43 @@ +import { VercelRequest, VercelResponse } from '@vercel/node'; +import { createHmac, timingSafeEqual } from 'crypto'; + +const GITHUB_SECRET = process.env.GITHUB_SECRET || ''; + +function verifySignature(req: VercelRequest): boolean { + const signature = req.headers['x-hub-signature-256'] as string; + if (!signature || !GITHUB_SECRET) { + return false; + } + + const hmac = createHmac('sha256', GITHUB_SECRET); + const digest = 'sha256=' + hmac.update(JSON.stringify(req.body)).digest('hex'); + return timingSafeEqual(Buffer.from(signature), Buffer.from(digest)); +} + +export default async function handler(req: VercelRequest, res: VercelResponse) { + if (req.method !== 'POST') { + return res.status(405).json({ error: 'Method Not Allowed' }); + } + + if (!verifySignature(req)) { + return res.status(401).json({ error: 'Invalid signature' }); + } + + const event = req.headers['x-github-event']; + console.log(`Received GitHub event: ${event}`); + console.log('Payload:', req.body); + + // Handle specific GitHub events if needed + switch (event) { + case 'push': + console.log('Push event detected'); + break; + case 'pull_request': + console.log('Pull request event detected'); + break; + default: + console.log('Unhandled event type'); + } + + return res.status(200).json({ message: 'Webhook received' }); +} From a8db5e66ef5860a5d74eb4aece232500c4ab0106 Mon Sep 17 00:00:00 2001 From: Mincong Huang Date: Wed, 5 Feb 2025 14:17:43 +0100 Subject: [PATCH 2/2] Update diagram --- docs/diagrams/architecture-overview.png | Bin 41607 -> 46779 bytes docs/diagrams/architecture-overview.puml | 22 ++++++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/diagrams/architecture-overview.png b/docs/diagrams/architecture-overview.png index 40844143c5ea30cc72bd644853d3fb3316a3a924..feb7f30c81ac4aedb4bb290459431d8e3e4d5183 100644 GIT binary patch literal 46779 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 diff --git a/docs/diagrams/architecture-overview.puml b/docs/diagrams/architecture-overview.puml index 9023470..32888f9 100644 --- a/docs/diagrams/architecture-overview.puml +++ b/docs/diagrams/architecture-overview.puml @@ -35,14 +35,14 @@ HIDE_STEREOTYPE() AddElementTag("service_account", $bgColor="#1E9EA6", $fontColor="#FFFFFF", $borderColor="#000000") -Person(composable_users, "User", "Vertesia users and staff") -System_Ext(service_account, "Service Account", "Integration for GitHub", $sprite="robot2", $tags="service_account") +Person(vertesia_users, "User", "Vertesia users and staff") +System_Ext(sys_github, "GitHub", "Organizations and repositories subscribed to the Vertesia GitHub AI Agent.", $tags="service_account") System_Boundary(sys_composable, "Vertesia") { System_Boundary(sys_composable_nginx, "https://github.vertesia.dev") { - Container(composable_github_server, "GitHub Server", "", "Webhook for GitHub.") + Container(vertesia_github_server, "GitHub Server", "", "Webhook for GitHub.") } - Container(composable_github_worker, "GitHub Agent", "", "Temporal worker for GitHub.") + Container(vertesia_github_agent, "GitHub Agent", "", "Temporal worker for GitHub.") } System_Boundary(sys_temporal, "https://cloud.temploral.io") { @@ -50,13 +50,15 @@ System_Boundary(sys_temporal, "https://cloud.temploral.io") { } ' Clients -composable_users <---> composable_github_server -service_account <---> composable_github_server +vertesia_users ---> vertesia_github_server: send\nevents +vertesia_users -r-> sys_github: uses +sys_github ---> vertesia_github_server: send\nevents -service_account -[hidden]r-> composable_users +sys_github -[hidden]l-> vertesia_users ' Backend -composable_github_server -r-> composable_github_worker -composable_github_server <-d-> temporal_server -composable_github_worker <-d-> temporal_server +vertesia_github_server -[hidden]r-> vertesia_github_agent +vertesia_github_server <-d-> temporal_server +vertesia_github_agent <-d-> temporal_server +vertesia_github_agent -u-> sys_github: provides\ninformation @enduml \ No newline at end of file