A Discord bot that integrates with GitHub to manage Discord server configurations through version-controlled configuration files.
GitCord is a Discord bot that allows you to manage your Discord server's channel structure and configuration through Git. It provides a seamless way to version control your Discord server setup and automatically sync changes from your GitHub repository.
This project is currently in early development and does not have any functional features yet. The bot exists as a basic framework, but the core functionality described in this README is not yet implemented.
We have detailed plans and are actively working on bringing these features to life. Code is on the way! Check back soon for updates, or feel free to contribute to help accelerate development.
To get started in using GitCord, you can either design your own server channel structure from scratch or fork the gitcord-template. This template provides a sample structure that demonstrates how to define your server's categories and channels using organized JSON configuration files.
Once it's ready, you'll have to link the GitCord bot to your own repository, finally, you will be able to discuss and organize your Discord server all in a transparent, team-friendly GitHub repository. To manually synchronize with your repository, you can run /gitcord pull on the server.
- Version-Controlled Configuration: Store your Discord server configuration in a Git repository
- Automatic Sync: Webhook-based synchronization when configuration changes are pushed to GitHub
- Manual Pull: Use
/gitcord pullcommand to manually sync configuration changes - Category and Channel Management: Organize your server structure through YAML configuration files
This project is currently in development. See the roadmap for current development status and planned features.
- POC Phase: Basic Discord bot with manual pull functionality
servermap/
├── category1/
│ ├── category.yaml
│ ├── channel1.yaml
│ └── channel2.yaml
├── category2/
│ ├── category.yaml
│ └── channel3.yaml
└── ...
- Discord Bot: Built with Discord.py, handles slash commands and server management
- Webhook Server: Flask-based server to receive GitHub webhook events
- Configuration Parser: Processes yaml configuration files to apply Discord server changes
- Create hello world bot on Discord side
- Bot pulls from
/servermap/to apply channel configuration upon a/gitcord pullcommand- Categories will be placed within subdirs of
/servermap/ - Each category will be described via a
category.yamlfile - Within a category's subdir, each channel will be described via a
channelname.yaml
- Categories will be placed within subdirs of
gitcord/
├── roadmap/ # Development roadmap and planning
├── LICENSE # GNU GPL v3 License
└── README.md # This file
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
For detailed development plans and current status, see the roadmap directory:
If you encounter any issues or have questions, please open an issue on this GitHub repository.
Note: This project is currently in active development. Features and documentation may change as the project evolves.