A Site Reliability Engineering (SRE) bot that integrates with Slack, GitHub, and Checkly to help manage incidents and improve Mean Time To Resolution (MTTR).
Duplicate the env.example file in the root directory and add your keys as per requirements
The project uses PostgreSQL as its database. To set it up using Docker:
Start the PostgreSQL container:
docker compose up -d
Run database migrations:
npm run db:migrate
(Optional) To explore the database using Prisma Studio:
npm run db:studio
To reset the database if needed:
docker compose down -v # Remove containers and volumes
docker compose up -d # Start fresh
npm run db:migrate # Run migrations again
npm install
Initialize the OpenAI assistant
npx ts-node scripts/init-assistant.ts
Go to the OpenAI Portal to find your assistant ID
There are several ways to run the application depending on your needs:
npm run dev
npm run bot:start
npm run build
npm start
npm test
/src/aggregator: Context aggregation logic for incidents/src/ai: AI assistant and tool implementations/src/checkly: Checkly API integration/src/github: GitHub API integration/src/routes: API routes for webhooks/src/slackbot: Slack bot implementation/src/sre-assistant: Main SRE assistant logic/prisma: Database schema and migrationsnpm run dev: Start development servernpm run bot:start: Start Slack bot onlynpm run build: Build the applicationnpm start: Start the built applicationnpm test: Run testsnpm run db:migrate: Run database migrationsnpm run db:studio: Open Prisma Studionpm run db:deploy: Deploy database migrationsnpm run db:generate: Generate Prisma clientsequenceDiagram
participant CLY as Checkly
participant APP as App
participant GHB as Github
participant NOT as Notion API
participant SLCK_API as Slack API
participant CLY_API as Checkly Api
participant AI as AI Model(OpenAI)
participant SLCK as Slack
CLY->>APP:Alert Webhook
critical Aggregate Context
APP->>GHB:Get Releases
GHB->>AI:Identify Relevant Releases
GHB->>AI:Identify Relevant Deployments
APP->>NOT:Get Knowledge Bases
APP->>SLCK_API:Get Channel Summary
SLCK_API->>AI:Summarize Channel
APP->>CLY_API:Get Alert Details
end
APP->>AI:Ananlyze context, Root Cause and Create Summary
AI->>APP:Alert Summary
APP->>SLCK:Send Alert Message
ISC License - see the LICENSE file for details
TypeScript
82.4%
Jupyter Notebook
17.6%
A Site Reliability Engineering (SRE) bot that integrates with Slack, GitHub, and Checkly to help manage incidents and improve Mean Time To Resolution (MTTR).
Duplicate the env.example file in the root directory and add your keys as per requirements
The project uses PostgreSQL as its database. To set it up using Docker:
Start the PostgreSQL container:
docker compose up -d
Run database migrations:
npm run db:migrate
(Optional) To explore the database using Prisma Studio:
npm run db:studio
To reset the database if needed:
docker compose down -v # Remove containers and volumes
docker compose up -d # Start fresh
npm run db:migrate # Run migrations again
npm install
Initialize the OpenAI assistant
npx ts-node scripts/init-assistant.ts
Go to the OpenAI Portal to find your assistant ID
There are several ways to run the application depending on your needs:
npm run dev
npm run bot:start
npm run build
npm start
npm test
/src/aggregator: Context aggregation logic for incidents/src/ai: AI assistant and tool implementations/src/checkly: Checkly API integration/src/github: GitHub API integration/src/routes: API routes for webhooks/src/slackbot: Slack bot implementation/src/sre-assistant: Main SRE assistant logic/prisma: Database schema and migrationsnpm run dev: Start development servernpm run bot:start: Start Slack bot onlynpm run build: Build the applicationnpm start: Start the built applicationnpm test: Run testsnpm run db:migrate: Run database migrationsnpm run db:studio: Open Prisma Studionpm run db:deploy: Deploy database migrationsnpm run db:generate: Generate Prisma clientsequenceDiagram
participant CLY as Checkly
participant APP as App
participant GHB as Github
participant NOT as Notion API
participant SLCK_API as Slack API
participant CLY_API as Checkly Api
participant AI as AI Model(OpenAI)
participant SLCK as Slack
CLY->>APP:Alert Webhook
critical Aggregate Context
APP->>GHB:Get Releases
GHB->>AI:Identify Relevant Releases
GHB->>AI:Identify Relevant Deployments
APP->>NOT:Get Knowledge Bases
APP->>SLCK_API:Get Channel Summary
SLCK_API->>AI:Summarize Channel
APP->>CLY_API:Get Alert Details
end
APP->>AI:Ananlyze context, Root Cause and Create Summary
AI->>APP:Alert Summary
APP->>SLCK:Send Alert Message
ISC License - see the LICENSE file for details
TypeScript
82.4%
Jupyter Notebook
17.6%