Skip to content
Mirun Kaushik
← All work

03Take-home assessment2026

GitHub Automation Console

A rule-based bot that triages issues and pull requests with AI

My part
Solo
Status
Built
Stack
Node.js, Express, BullMQ, Redis, Supabase, React, OpenRouter

Fig. — How data moves through it

  1. 01GitHub eventHMAC-signed webhook
  2. 02Verify + enqueuereturns 202
  3. 03BullMQRedis
  4. 04Idempotency checkunique delivery ID
  5. 05AI triagecategory + priority(model call)
  6. 06Rules enginelabels · comments · Slack
Model call Rules, data, queues

01Problem

Repository owners want issues and pull requests labelled, commented on and announced in Slack automatically, without the webhook handler timing out while a model thinks.

02Approach

The webhook handler only verifies the signature, queues the event and returns 202. A background worker does the slow work: AI triage, rule matching, GitHub and Slack calls, and an audit log of every action.

03What I built

  1. 01Set the scope and architecture, then built it with an AI coding agent and wrote down which parts the AI wrote and which decisions were mine.
  2. 02Rejected the AI’s first draft, which did everything inside the webhook handler, and moved the work onto a BullMQ queue. A unique delivery ID in Postgres makes GitHub’s retries harmless.
  3. 03Chose to keep the GitHub token inside a signed JWT so authenticated requests need no database read, and wrote down the trade-off: a revoked token stays valid until it expires.
  4. 04Tracked down why push events silently failed. GitHub’s delivery history showed 401s, and the cause was a placeholder secret that an earlier AI-written script had registered on the webhook.