Skip to content

Bannawat01/RepoRadar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RepoRadar πŸ›°οΈ

Automated DevOps & GitHub monitoring bot. Captures GitHub Webhooks (Push, PR, Issues), validates & normalizes the payload via a TypeScript (Fastify) API, routes the data through n8n, and delivers Rich Embed messages to Discord in real time.

GitHub Webhook ──▢ API (validate + normalize) ──▢ n8n (route) ──▢ Discord (rich embed)
   push/PR/issue      HMAC verify, zod parse         switch on event      channel + embed

Repo layout

RepoRadar/
β”œβ”€β”€ api/                      # TypeScript Fastify webhook receiver + validator
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ server.ts         # Fastify bootstrap
β”‚   β”‚   β”œβ”€β”€ config/env.ts     # env loading + validation (zod)
β”‚   β”‚   β”œβ”€β”€ plugins/
β”‚   β”‚   β”‚   └── verifySignature.ts   # GitHub HMAC-SHA256 verification
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”‚   └── webhook.ts     # POST /webhooks/github
β”‚   β”‚   β”œβ”€β”€ schemas/github.ts # zod schemas: push / pull_request / issues
β”‚   β”‚   β”œβ”€β”€ transformers/
β”‚   β”‚   β”‚   └── toNormalized.ts       # raw GitHub payload -> normalized event
β”‚   β”‚   └── types/index.ts
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tsconfig.json
β”‚   β”œβ”€β”€ .env.example
β”‚   └── .gitignore
β”œβ”€β”€ n8n/
β”‚   └── reporadar-workflow.json   # importable workflow stub
β”œβ”€β”€ docs/
β”‚   └── ARCHITECTURE.md       # full end-to-end wiring
β”œβ”€β”€ .gitignore
└── README.md

The three pieces

Piece Runs where Responsibility
API Local Node (this repo) Verify GitHub signature, parse & validate payload, emit a clean normalized JSON event, forward to n8n webhook
n8n Hosted (n8n Cloud / self-host) Receive normalized event, branch on event type, build the Discord embed, POST to Discord
Discord Discord server Renders the rich embed in the target channel

Quick start (API)

cd api
cp .env.example .env      # fill in secrets
npm install
npm run dev               # Fastify on http://localhost:3000

Expose it to GitHub during development (choose one):

npx localtunnel --port 3000
# or: ngrok http 3000  |  cloudflared tunnel --url http://localhost:3000

Point the GitHub webhook at https://<public-url>/webhooks/github.

See docs/ARCHITECTURE.md for the full end-to-end flow, env vars, and n8n setup.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages