Skip to content

Radar sends you GitHub-related notifications in Slack. It handles intelligent notifications for PRs, issues, reviews, and comments.

License

Notifications You must be signed in to change notification settings

zlwaterfield/radar

Repository files navigation

logo-full-dark

Note: 🚧 this is still in early development so it may be buggy, please create a Github issue with feedback / bug reports and we will get them resolved!

A Slack application that connects GitHub activity to your team's Slack workspace, delivering customizable notifications about Pull Requests, Issues, Discussions, etc. in near real-time.

Radar was built with inspiration from Toast and Graphite. I wanted something simpler and lighter than Graphite but with a few key features that Toast was missing. I built it to be more configurable and feature-rich yet still simple and fast.

✨ Features

Core Functionality

  • Smart Notifications: Routing based on user roles (author, reviewer, assignee)
  • Real-time Delivery: Fast notifications from GitHub webhooks to Slack
  • Full Event Support: PRs, issues, reviews, comments, discussions, and more
  • Keyword-Based Notifications: Smart keyword matching (using AI 👀)
  • Digest Notifications: Configurable scheduled summaries of pull requests activity
  • Open Source Mode: Run self-hosted with full features enabled (no billing required)

🛠 Tech Stack

Frontend

Backend

Integrations

Setup and Installation

Prerequisites

  • Node.js 18+
  • npm package manager
  • Slack workspace with admin privileges
  • GitHub account with access to repositories you want to track
  • Docker and Docker Compose (optional, for containerized deployment)

Local Installation

  1. Clone the repository:

    git clone https://github.com/zlwaterfield/radar.git
    cd radar
  2. Install dependencies for both backend and frontend:

    # Install backend dependencies
    cd app
    npm install
    
    # Install frontend dependencies
    cd ../client
    npm install
  3. Set up environment variables:

    Backend (app directory):

    cd app
    # Create .env file with your configuration
    # See Configuration section below for required variables

    Frontend (client directory):

    cd client
    # Create .env.local file with your configuration
    # See Configuration section below for required variables
  4. Set up the database:

    cd app
    # Generate Prisma client
    npx prisma generate
    
    # Run database migrations
    npx prisma migrate dev
  5. Run the applications:

    Start the backend (NestJS API):

    cd app
    npm run start:dev

    The API will be available at http://localhost:3000

    Start the frontend (Next.js app):

    cd client
    npm run dev

    The frontend will be available at http://localhost:3001

  6. Set up Trigger.dev:

You'll need a Trigger account and to configure your environment variables.

# Login to Trigger.dev
npx trigger login

# Make sure to set TRIGGER_SECRET_KEY and TRIGGER_SECRET_KEY in your app/.env file
# You can find this in your Trigger.dev dashboard
  1. Set up a tunnel for webhooks (recommended):

For local development, you'll need a public URL for GitHub webhooks and Slack events. We recommend using ngrok:

# Install ngrok (if not already installed)
# Visit https://ngrok.com/download for installation instructions

# Start ngrok tunnel on port 3003 (where your app will receive webhooks)
ngrok http 3003

Copy the HTTPS URL provided by ngrok (e.g., https://abc123.ngrok.io) and use it for:

  • GitHub webhook URLs
  • Slack event subscriptions
  • Update your environment variables accordingly
  1. Run Trigger.dev:

    cd app
    npx trigger.dev@latest dev

Configuration

See the documentation for detailed setup instructions including:

Environment Variables

The application requires several environment variables to be set. See the two .env.example for a complete list with descriptions.

Key environment variables include:

  • Slack API credentials
  • GitHub API credentials
  • Application settings
  • Trigger credentials
  • Payment settings (optional - set PAYMENT_ENABLED=false for open-source mode)

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

MIT License - see LICENSE file for details.

About

Radar sends you GitHub-related notifications in Slack. It handles intelligent notifications for PRs, issues, reviews, and comments.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages