diff --git a/src/api/routes/webhooks/#webhook_id/#token/github.ts b/src/api/routes/webhooks/#webhook_id/#token/github.ts
index 9b2a5fe8..1938ba1b 100644
--- a/src/api/routes/webhooks/#webhook_id/#token/github.ts
+++ b/src/api/routes/webhooks/#webhook_id/#token/github.ts
@@ -1,4 +1,4 @@
-import { route } from "@spacebar/api";
+import { getProxyUrl, route } from "@spacebar/api";
import { capitalize, EmbedType, WebhookExecuteSchema } from "@spacebar/util";
import { NextFunction, Request, Response, Router } from "express";
import { HTTPError } from "lambert-server";
@@ -40,6 +40,10 @@ function transformGitHubToDiscord(
): WebhookExecuteSchema | null {
switch (eventType) {
case "star":
+ if (payload.action !== "created") {
+ return null;
+ }
+
return {
username: "GitHub",
// TODO: Provide a static avatar for GitHub
@@ -51,6 +55,13 @@ function transformGitHubToDiscord(
color: 0xffd700,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -68,6 +79,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -85,6 +103,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -102,6 +127,13 @@ function transformGitHubToDiscord(
color: 0xf04747,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -119,6 +151,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -136,6 +175,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -156,6 +202,13 @@ function transformGitHubToDiscord(
: 0xf04747,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -173,6 +226,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -190,6 +250,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -210,6 +277,13 @@ function transformGitHubToDiscord(
: 0xf04747,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -232,6 +306,13 @@ function transformGitHubToDiscord(
: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -249,6 +330,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -270,6 +358,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// TODO: Improve this by adding `fields` to show recent commits
// @ts-expect-error Validate using string in schema
@@ -289,6 +384,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -296,22 +398,7 @@ function transformGitHubToDiscord(
],
};
case "watch":
- return {
- username: "GitHub",
- embeds: [
- {
- title: `👀 ${payload.repository?.full_name} is now watched`,
- type: EmbedType.rich,
- description: `${payload.sender?.login} started watching the repository`,
- color: 0x7289da,
- thumbnail: {
- url: payload.sender?.avatar_url,
- },
- // @ts-expect-error Validate using string in schema
- timestamp: new Date().toISOString(),
- },
- ],
- };
+ return null;
case "check_run":
return {
username: "GitHub",
@@ -329,6 +416,13 @@ function transformGitHubToDiscord(
: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -352,6 +446,13 @@ function transformGitHubToDiscord(
: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -369,6 +470,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
@@ -386,6 +494,13 @@ function transformGitHubToDiscord(
color: 0x7289da,
thumbnail: {
url: payload.sender?.avatar_url,
+ proxy_url: getProxyUrl(
+ new URL(payload.sender?.avatar_url),
+ 80,
+ 80,
+ ),
+ width: 80,
+ height: 80,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
|