Skip to content
Garot Conklin edited this page Dec 8, 2024 · 3 revisions

fleXRPL Discord Bot Wiki

Welcome to the fleXRPL Discord Bot Wiki! This wiki serves as the central knowledge base for our GitHub-Discord integration bot.

Quick Navigation

Core Documentation

Contributing

Getting Started

The fleXRPL Discord Bot provides seamless GitHub integration for Discord servers. This section will help you get started with the project.

Prerequisites

  • Python 3.11+
  • Discord Developer Account
  • GitHub Organization Admin access
  • Railway.app Account

Local Development Setup

  1. Clone the repository:
git clone https://github.com/fleXRPL/flexrpl-discord-bot.git
cd flexrpl-discord-bot
  1. Install dependencies:
pip install -r requirements.txt
pip install -r requirements-dev.txt
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your configuration

Architecture Overview

The bot follows a modular architecture designed for reliability and maintainability:

Core Components

  • Bot Layer (/src/bot/)

    • Command handling
    • Event processing
    • Discord interactions
  • Webhook Handler (/src/handlers/)

    • GitHub webhook processing
    • Event validation
    • Notification dispatch
  • Utilities (/src/utils/)

    • Message formatting
    • Permission management
    • Configuration handling

Technology Stack

  • Framework: discord.py
  • API: FastAPI
  • Security: PyNaCl
  • Testing: pytest

Development Guide

Code Structure

flexrpl-discord-bot/
├── src                  # Source code
│   ├── bot             # Discord bot implementation
│   ├── handlers        # Webhook and event handlers
│   └── utils           # Utility functions and helpers
├── tests               # Test suite
│   ├── bot             # Bot functionality tests
│   ├── handlers        # Handler tests
│   └── utils           # Utility function tests
└── docs                # Additional documentation

Testing

Run the test suite:

pytest

Code Style

We follow strict Python standards using:

  • Black for code formatting
  • Flake8 for linting
  • isort for import sorting

Command Reference

See our Command Reference guide for detailed bot commands documentation.

Deployment Guide

See our Deployment Guide for details on hosting and configuration.

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.


This documentation is maintained by the fleXRP team.

[[TOC]]

Clone this wiki locally