-
-
Notifications
You must be signed in to change notification settings - Fork 16
Description
Overview
Investigate and design an integration pipeline: GitHub API → Supabase Vault (secret storage) → Discord Bot Embeds for the discordsh bot.
The goal is to have the Discord bot pull data from GitHub (issues, PRs, task boards, branch status) using tokens stored securely in Supabase Vault, then render rich embed messages in Discord channels.
Architecture
GitHub API ──→ discordsh bot ──→ Discord Embeds
↕
Supabase Vault
(GitHub PAT storage)
Components
-
Supabase Vault — Store GitHub PATs and bot tokens securely via
vault.create_secret(). The bot retrieves tokens at runtime instead of hardcoding them in env vars or config. -
GitHub API Integration — Fetch repo data (issues, PRs, branch protection status, commit activity, stagnation detection) using the stored PAT.
-
Discord Embeds — Render structured, styled embed messages for notice boards, task boards, and status updates.
Example Embeds
Notice Board Embed
For surfacing blockers, stagnation, and cross-department coordination issues:
import discord
from datetime import datetime, timezone
notice_embed = discord.Embed(
title="[Blocker] AI Pathfinding Mismatch",
description="Doorway dimensions and corridor widths are preventing coherent navmesh generation. Requires 3D ↔ Programming coordination.",
color=0xE67E22,
timestamp=datetime.now(timezone.utc)
)
notice_embed.add_field(name="Ticket ID", value="`NB-0007`", inline=True)
notice_embed.add_field(name="Department", value="`3D Art / Programming`", inline=True)
notice_embed.add_field(name="Priority", value="`HIGH`", inline=True)
notice_embed.add_field(
name="Reporter",
value="Kron (`1234567890`)",
inline=False
)
notice_embed.add_field(
name="Task",
value="[UE Test Asset Integration](https://github.com/KronStudios-Games/abovetheline)",
inline=False
)
notice_embed.add_field(
name="Stagnation",
value="`3 days`\nLast activity: `2026-03-02 13:40 UTC`",
inline=False
)
notice_embed.set_footer(text="Notice Board • 2026-03-05 19:42 UTC")Task Board Embed
For phase-based project tracking with per-department task breakdowns:
import discord
from datetime import datetime, timezone
task_board_embed = discord.Embed(
title="🧩 Task Board — Phase 0: Infrastructure Setup",
description="Establish foundational infrastructure: GitHub enforcement, Discord automation, and UE base integration.",
color=0x3498DB,
timestamp=datetime.now(timezone.utc)
)
task_board_embed.add_field(
name="Phase Success Criteria",
value=(
"• Bot deployed with core commands\n"
"• Branch protections enforced\n"
"• 3+ tasks merged successfully\n"
"• Workflow discipline validated"
),
inline=False
)
task_board_embed.add_field(
name="Programming",
value=(
"• ***Git Branch Validation Script*** — **Owner** — ***Status: MERGED***\n"
"• ***Bot – Task Board Automation*** — **Owner** — ***Status: OPEN***"
),
inline=False
)
task_board_embed.add_field(
name="3D Art",
value="• ***Blockout Kit Prototype*** — **Owner** — ***Status: OPEN***",
inline=False
)
task_board_embed.add_field(
name="Narrative",
value="• ***Settlement Interaction Framework*** — **Owner** — ***Status: OPEN***",
inline=False
)
task_board_embed.add_field(
name="Repository",
value="https://github.com/KronStudios-Games/abovetheline",
inline=False
)
task_board_embed.set_footer(text="Updated by Kron • 2026-03-05 19:42 UTC")Tasks
- [DISCORDSH] Design Supabase Vault schema for GitHub PAT storage #7850 — Design Supabase Vault schema for GitHub PAT storage
- [DISCORDSH] Implement vault secret retrieval in discordsh bot #7851 — Implement vault secret retrieval in discordsh bot
- [DISCORDSH] Build GitHub API client for repo data fetching #7852 — Build GitHub API client for repo data fetching
- [DISCORDSH] Implement Notice Board embed generator #7853 — Implement Notice Board embed generator
- [DISCORDSH] Implement Task Board embed generator #7854 — Implement Task Board embed generator
- [DISCORDSH] Add slash commands and scheduled triggers for embeds #7855 — Add slash commands and scheduled triggers for embeds
- [DISCORDSH] End-to-end testing with live GitHub repo data #7856 — End-to-end testing with live GitHub repo data