Compare commits

..

16 Commits
feeels ... main

Author SHA1 Message Date
af4ecf3b69 Merge pull request 'Add code.ts' (#25) from probablycorey-patch-5 into main
Reviewed-on: #25
2025-11-13 21:42:30 +00:00
5e29aa5212 Add code.ts 2025-11-13 21:10:39 +00:00
7814a6cde8 Merge pull request 'Update readme.md' (#24) from probablycorey-patch-4 into main
Reviewed-on: #24
2025-11-13 19:26:12 +00:00
db16756354 Update readme.md 2025-11-13 19:26:05 +00:00
2ed70c6a0a Merge pull request 'Update readme.md' (#22) from probablycorey-patch-2 into main
Reviewed-on: #22
2025-11-13 19:06:10 +00:00
bcd5b3e9c2 Update readme.md 2025-11-13 19:02:25 +00:00
1ae23d1a62 Merge pull request 'Update readme.md' (#21) from A-patch-2 into main
Reviewed-on: #21
2025-11-13 18:38:00 +00:00
27a12431a0 Update readme.md 2025-11-13 18:37:18 +00:00
e2b1569d63 Merge pull request 'Update readme.md' (#20) from oh-wow into main
Reviewed-on: #20
2025-11-13 18:35:06 +00:00
e4030a5514 Update readme.md 2025-11-13 18:33:33 +00:00
39cab5bfc5 Update readme.md 2025-11-13 18:33:13 +00:00
62156db231 Merge pull request 'Update readme.md' (#19) from not-weird into main
Reviewed-on: #19
2025-11-13 17:29:06 +00:00
f3547a061e Update readme.md 2025-11-13 17:28:42 +00:00
553475f316 Merge pull request '!@' (#18) from weird into main
Reviewed-on: #18
2025-11-13 17:27:07 +00:00
0217a925b0 Update readme.md 2025-11-13 00:25:07 +00:00
102d560d2b Merge pull request 'Update readme.md' (#17) from feeels into main
Reviewed-on: #17
2025-11-13 00:22:59 +00:00
2 changed files with 80 additions and 3 deletions

79
code.ts Normal file
View File

@ -0,0 +1,79 @@
import { serve } from "bun"
import { handleGiteaWebhook } from "./gitea/webhook-handler"
import "./discord/index" // Make suer the discord client is initialized
import { getConfig } from "./config"
interface ErrorLog {
timestamp: string
message: string
stack?: string
payload: any
}
const errors: ErrorLog[] = []
const server = serve({
port: parseInt(process.env.PORT || "3000"),
routes: {
"/": {
GET: () => new Response("🌵"),
POST: () => new Response("Use /gitea/webhook for POST requests", { status: 400 }),
},
"/wtf/delete-the-db": {
GET: () => {
const dbPath = getConfig("dbPath")
Bun.file(dbPath).delete()
return new Response(`DB is no more`)
},
},
"/gitea/webhook": {
POST: async (req) => {
const payload = await req.json()
const eventType = req.headers.get("X-Gitea-Event") || "unknown"
console.log(`🌵 Received Gitea webhook ${eventType}`)
try {
await handleGiteaWebhook(payload, eventType as any)
return new Response("OK", { status: 200 })
} catch (error) {
const errorLog: ErrorLog = {
timestamp: new Date().toISOString(),
message: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
payload,
}
errors.push(errorLog)
console.error("💥 Webhook error 💥")
console.error(error)
return new Response("Error", { status: 500 })
}
},
},
"/errors": {
GET: () => {
return new Response(JSON.stringify(errors, null, 2), {
headers: { "Content-Type": "application/json" },
})
},
},
"/discord/auth": async () => {
const permissions = 536870912 // from https://discord.com/developers/applications
const authorizeUrl = `https://discord.com/oauth2/authorize?client_id=${process.env.DISCORD_CLIENT_ID}&scope=bot&permissions=${permissions}`
const html = (
<html>
<body>
<h1>Authenticate spike</h1>
<a href={authorizeUrl}>Authorize</a>
</body>
</html>
)
return new Response(html.toString(), { headers: { "Content-Type": "text/html" } })
},
},
development: process.env.NODE_ENV !== "production" && { hmr: true, console: true },
})
console.log(`Spike running at ${server.url}:${server.port}`)

View File

@ -1,3 +1 @@
ok neat A PR!!
FEEELLLS