{"id":43376261,"url":"https://github.com/allthingslinux/gitcord","last_synced_at":"2026-02-02T06:50:23.702Z","repository":{"id":302947195,"uuid":"1014011736","full_name":"allthingslinux/gitcord","owner":"allthingslinux","description":"A Discord bot for Managing your discord's channel and role structure and roles via Git - GitOps","archived":false,"fork":false,"pushed_at":"2025-08-03T00:38:50.000Z","size":734,"stargazers_count":18,"open_issues_count":20,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-31T19:34:32.474Z","etag":null,"topics":["discord-bot","gitops","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/allthingslinux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"allthingslinux"}},"created_at":"2025-07-04T21:52:07.000Z","updated_at":"2026-01-30T08:51:09.000Z","dependencies_parsed_at":"2025-08-03T02:31:32.059Z","dependency_job_id":"4d02bf18-28c7-4d5f-a19a-39fbf31c4942","html_url":"https://github.com/allthingslinux/gitcord","commit_stats":null,"previous_names":["evolvewithevan/gitcord","allthingslinux/gitcord"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/allthingslinux/gitcord","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allthingslinux%2Fgitcord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allthingslinux%2Fgitcord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allthingslinux%2Fgitcord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allthingslinux%2Fgitcord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/allthingslinux","download_url":"https://codeload.github.com/allthingslinux/gitcord/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allthingslinux%2Fgitcord/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29007296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T06:37:10.400Z","status":"ssl_error","status_checked_at":"2026-02-02T06:37:09.383Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord-bot","gitops","python"],"created_at":"2026-02-02T06:50:22.521Z","updated_at":"2026-02-02T06:50:23.696Z","avatar_url":"https://github.com/allthingslinux.png","language":"Python","readme":"# GitCord\n\nA Discord bot for GitOps-based Discord server management. Manage your server's channels and categories using YAML templates, version control, and GitHub integration.\n\n[![Documentation](https://img.shields.io/badge/docs-mdBook-blue)](https://evolvewithevan.github.io/gitcord/)\n[![License: GPL v3](https://img.shields.io/badge/license-GPLv3-blue.svg)](LICENSE)\n\n---\n\n## 🚀 Getting Started\n\n### Option 1: Use Pre-Hosted Bot (Recommended)\n\nThe easiest way to get started is to invite the pre-hosted GitCord bot to your Discord server:\n\n**[📥 Invite GitCord Bot](https://discord.com/oauth2/authorize?client_id=1391153955936927824)**\n\nAfter inviting the bot, you can start using commands immediately. See the [Quick Start Guide](https://evolvewithevan.github.io/gitcord/getting-started/quick-start.html) for usage examples.\n\n### Option 2: Self-Host (Advanced Users)\n\nIf you prefer to run your own instance of GitCord:\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/evolvewithevan/gitcord.git\n   cd gitcord\n   ```\n2. **Install dependencies (requires Python 3.9+ and [uv](https://github.com/astral-sh/uv))**\n   ```bash\n   uv sync\n   ```\n3. **Set up environment variables:**\n   ```bash\n   cp .env.example .env\n   # Edit .env and add your Discord bot token\n   ```\n4. **Run the bot:**\n   ```bash\n   python -m gitcord\n   ```\n\nFor detailed self-hosting setup, see the [Installation Guide](https://evolvewithevan.github.io/gitcord/getting-started/installation.html).\n\n---\n\n## 📝 What is GitCord?\n\nGitCord is a Discord bot that lets you manage your server's structure using YAML configuration files, stored in Git and optionally synced with GitHub. It enables:\n- **Version-controlled server configuration**\n- **Automated and manual sync of categories/channels**\n- **Bulk creation of channels/categories from templates**\n- **Easy server setup and reproducibility**\n\n---\n\n## ✨ Features\n- **Template-based Channel \u0026 Category Creation**: Use YAML files to define your server structure\n- **Manual \u0026 Planned Automatic Sync**: Pull changes from a GitHub repo or local files\n- **Slash \u0026 Prefix Commands**: Use `/createcategory`, `/createchannel`, `!createcategory`, etc.\n- **Permission Management**: Follows Discord's permission system\n- **Extensible**: Modular cog system for easy extension\n- **Open Source**: GPL-3.0 License\n\nSee the [full feature list](https://evolvewithevan.github.io/gitcord/introduction.html#key-features).\n\n---\n\n## 🛠️ Example Usage\n\n- **Create a channel from YAML:**\n  ```yaml\n  # general.yaml\n  name: general\n  type: text\n  topic: General discussion\n  position: 0\n  nsfw: false\n  ```\n  Use: `!createchannel`\n\n- **Create a category with channels:**\n  ```yaml\n  # community.yaml\n  name: Community\n  type: category\n  position: 0\n  channels:\n    - general\n    - memes\n    - off-topic\n  ```\n  Use: `!createcategory` or `/createcategory`\n\nSee [Quick Start](https://evolvewithevan.github.io/gitcord/getting-started/quick-start.html) and [Templates Guide](https://evolvewithevan.github.io/gitcord/templates/category-templates.html).\n\n---\n\n## 🧩 Main Commands\n\n- `!hello` / `/hello` — Greet the bot\n- `!ping` / `/slashping` — Check bot latency\n- `!createchannel` — Create a channel from YAML\n- `!createcategory` / `/createcategory [yaml_path]` — Create a category with channels\n- `!fetchurl \u003curl\u003e` / `/fetchurl \u003curl\u003e` — Fetch text from a website (admin)\n- `!synccommands` / `/synccommands` — Update slash commands (admin)\n- `!help` / `/help` — Show help and links\n\nSee [Commands Reference](https://evolvewithevan.github.io/gitcord/user-guide/commands.html).\n\n---\n\n## 📁 Project Structure\n\n```\ngitcord/\n├── src/gitcord/           # Main source code\n│   ├── bot.py            # Main bot entry point\n│   ├── config.py         # Configuration management\n│   ├── events.py         # Discord event handlers\n│   ├── cogs/             # Discord.py cogs (command modules)\n│   ├── utils/            # Utility functions\n│   ├── views/            # Discord UI components\n│   └── constants/        # Constants and messages\n├── gitcord-template/     # Example template repository\n├── docs/                 # Documentation (mdBook)\n├── requirements.txt      # Python dependencies\n├── pyproject.toml        # Project metadata\n└── README.md             # Project documentation\n```\n\n---\n\n## 📈 Project Status \u0026 Roadmap\n\n- **Alpha**: Core features implemented, active development\n- See the [Roadmap](https://github.com/users/evolvewithevan/projects/4) for planned features and progress\n- [Planned Features](https://evolvewithevan.github.io/gitcord/templates/category-templates.html#future-enhancements):\n  - Webhook-based automatic sync\n  - Advanced template features (inheritance, variables)\n  - More admin tools\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! Please read [CONTRIBUTING.md](.github/CONTRIBUTING.md) for:\n- Coding standards (PEP8, type hints, docstrings)\n- How to set up your dev environment\n- Testing and documentation guidelines\n- Pull request process\n\n---\n\n## 🆘 Support \u0026 Troubleshooting\n\n- [Common Issues](https://evolvewithevan.github.io/gitcord/troubleshooting/common-issues.html)\n- [Error Messages](https://evolvewithevan.github.io/gitcord/troubleshooting/error-messages.html)\n- [GitHub Issues](https://github.com/evolvewithevan/gitcord/issues)\n- [Discussions](https://github.com/evolvewithevan/gitcord/discussions)\n\n---\n\n## 📜 License\n\nThis project is licensed under the GNU General Public License v3.0. See [LICENSE](LICENSE).\n\n---\n\nMade with ❤️ by the GitCord Team. [Full Documentation](https://evolvewithevan.github.io/gitcord/)\n","funding_links":["https://opencollective.com/allthingslinux"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallthingslinux%2Fgitcord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallthingslinux%2Fgitcord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallthingslinux%2Fgitcord/lists"}