Setting up Discord to GitHub issue sync
Everything you need to connect a Discord forum channel to a GitHub repository.
DiscoHub links one Discord forum channel to one or more GitHub repositories. Once linked, new forum posts become GitHub issues, new issues become forum posts, and the two stay in sync. Setup takes a few minutes and needs the Manage Server permission on Discord plus admin access to the GitHub repository (or organization) you're connecting.
1. Add the bot to your server
Add DiscoHub to Discord and pick the server. The bot asks only for the permissions it uses: view channels, send messages (including in threads), create and manage threads, manage messages, embed links, attach files, and read message history. It never needs Administrator.
2. Set up from the dashboard (recommended)
Sign in with Discord at the dashboard and press Set up on your server. The wizard walks you through each step, and you can come back any time: the same page doubles as the manage view.
- Install the GitHub App. The wizard sends you to GitHub to install DiscoHub on the account or organization that owns your repo. Choose Only select repositories if you like; you can add more later. If you've already installed it for another server you own, the wizard offers to reuse that installation.
- Link a repo to a forum channel. Pick the forum channel, the repository, and the forum tag that marks posts belonging to that repo. One forum channel can host several repos, each with its own tag.
- Configure tag actions. Decide what happens on GitHub when a forum tag is added or removed: add or remove a label, close or reopen the issue, lock or unlock it. Labels sync back the other way too, using the same mapping.
- Backfill (paid tiers). Optionally import existing open issues as forum posts, or existing threads as issues, so history lines up on day one.
Or use slash commands
Everything above is also available in Discord. Each command needs Manage Server.
/link-repo: pick a forum channel, a repo, and a tag to link them. If the GitHub App isn't installed yet, the command hands you an install link and picks up where you left off./unlink-repo owner/repo: remove a link. Existing threads and issues are left as they are./config: set the tag actions for a channel (label, close/reopen, lock/unlock on tag add or remove)./sync: backfill issues or threads that predate the link (paid tiers)./sync-thread: run inside a forum post to create a GitHub issue from it on demand, even if the post has no repo tag.
What syncs, in which direction
- Posts and issues. A new forum post tagged for a linked repo becomes a GitHub issue with the same title and body. A new GitHub issue becomes a forum post carrying the repo's tag.
- Comments. Messages in the thread become issue comments; issue comments become thread messages. Edits and deletions on GitHub are mirrored.
- Open, close, lock. Closing or reopening an issue closes or reopens the thread, and vice versa through tag actions. Locking a thread locks the issue; locking the issue locks the thread.
- Labels and tags. A forum tag mapped to a label in your tag actions is mirrored both ways. GitHub labels with no mapped tag are left alone, and DiscoHub never creates forum tags for you.
- Attachments. Images posted in Discord are hosted by DiscoHub so they show up in the GitHub issue. Images in a GitHub issue body are embedded in the forum post; images in comments arrive as follow-up messages. For private repositories GitHub doesn't let apps fetch attachments, so those sync as a working link instead of an inline image.
Good to know
- DiscoHub skips its own echoes: an issue it created from a post never turns back into a second post, and comments it mirrored aren't mirrored again.
- Renaming a forum tag is always safe (everything keys on tag ids). Renaming a GitHub label means re-saving the affected tag action, since the label is stored by name.
- The Free tier links one repo per server with three tag actions per channel and no backfill. See pricing for the paid tiers.
- Questions? The FAQ covers the common ones, and the support Discord is open.