# Bidirectional sync between Discourse Topics/Categories and GitHub/Gitlab Issue Trackers

**URL:** https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780
**Category:** Feature
**Tags:** code-review
**Created:** [September 16, 2021, 5:10pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780 "2021-09-16T17:10:52Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![elsiehupp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elsiehupp/32/578380_2.png) [@elsiehupp](https://meta.discourse.org/u/elsiehupp)
#### Post date: [September 16, 2021, 5:10pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/1 "2021-09-16T17:10:52Z")

</div>

I’m replying here rather than starting a new Topic. Other related Topics are [here](https://meta.discourse.org/t/migrate-a-topic-to-github/45058), [here](https://meta.discourse.org/t/mention-github-issues/131970), [here](https://meta.discourse.org/t/code-review-issues-migrator/167409) and [here](https://meta.discourse.org/t/add-issues-support-to-github-plugin/196315). (This Topic thread in particular is just both relatively recent and relatively long.)

I asked on [the Topic for Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142) about whether it had any support for GitHub Issues:

> [@Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142/52):
>
> I found my way here from the link at the top of [Introducing GitHub Issues to Discourse](https://meta.discourse.org/t/introducing-github-issues-to-discourse/46671). The plugin discussed in that topic specifically synchronizes GitHub Issues.
> 
> It is unclear to me whether Discourse Code Review synchronizes Issue creation in addition to [“Issue comments”](https://docs.github.com/en/developers/webhooks-and-events/events/github-event-types#issuecommentevent), commits, Pull Requests, and the like. Looking at the GitHub REST API doesn’t really make it any clearer to me, mainly due to my unfamiliarity, though [`IssuesEvent`](https://docs.github.com/en/developers/webhooks-and-events/events/github-event-types#issuesevent) does appear to be a separate type from `IssueCommentEvent` .
> 
> Could you update the above documentation to specify whether or not Discourse Code Review synchronizes Issue creation and other Issue events in addition to Issue Comments? Also, if this is indeed supported, and if you are so inclined, could you add instructions for setting up Issue syncing without necessarily setting up Pull Review syncing? Thanks!

> [@Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142/54):
>
> Hi @osioke—thanks for replying!
> 
> In the following quote:
> 
> > [@Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142/1):
> >
> > Each commit to a repository becomes a topic. Replies to the topic are mirrored on GitHub.
> 
> Issues (and Pull Requests) aren’t the same thing as commits. An Issue doesn’t even involve a commit. It makes sense that comments on commits would synchronize with Discourse, but that doesn’t say anything about new Issues.
> 
> (I don’t know how one would create a Pull Request from Discourse, considering everything involved, but an Issue is just a glorified comment thread that’s not directly tied to any code, so creating a new Topic and having it appear as an Issue would make as much sense as the reverse.)
> 
> > [@Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142/53):
> >
> > What about these images, do they not help?
> 
> I hadn’t looked closely at the images previously—instead I had done “search within page” in my browser—but on closer inspection the images only show comments on commits, not creating or syncing Issues or Pull Requests.
> 
> Specifically the use case I’m asking about is when a project has both a Discourse and a GitHub Issue Tracker, and [sometimes people post in one when they should post in the other](https://github.com/nextcloud/nextcloud-snap/issues/1817#issuecomment-903365844). Having Issue threads bidirectionally synchronize between Discourse and GitHub would help avoid the problem of misplaced threads falling through the cracks.

> [@Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142/55):
>
> Hi Elsie! I recently tested the code review plugin for Discourse for Teams. This plugin only syncs commits and pull requests from github → discourse, and replies to commits and pull requests from Discourse → github. It does not touch github issues at all.
> 
> I can see how it would be useful to select and move issues to discourse. I am not sure of the status of the tool described in [Introducing GitHub Issues to Discourse](https://meta.discourse.org/t/introducing-github-issues-to-discourse/46671) - as indicated it is not maintained and I am not able to find it myself.

> [@Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142/56):
>
> It’s unfortunate that Discourse Code Review doesn’t support Issues at this time.
> 
> The tool described in [Introducing GitHub Issues to Discourse](https://meta.discourse.org/t/introducing-github-issues-to-discourse/46671) is a one-way import rather than a two-way sync, so it isn’t really suitable for all cases even if it indeed still works despite being unmaintained.
> 
> I imagine the older tool’s codebase could be a useful starting point for adding Issue support to Discourse Code Review, though.

tl;dr some degree of bidirectional sync of GitHub Issues and Discourse Topics as a feature of Discourse Code Review could be helpful for projects that currently have some ambiguity and redundancy between the two.

Cross-posting here because the other thread auto-deletes replies after a month.

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [September 16, 2021, 11:55pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/2 "2021-09-16T23:55:39Z")

</div>

Hi Elsie! I do think you want a new #Contribute > Feature topic here because the github plugin you are referring to is not the code review plugin.

I can see you are super keen. I believe adding support for issues to [Discourse Code Review](https://meta.discourse.org/t/discourse-code-review/103142) is PR welcome, but am not sure. If you could lay out here in some more detail what you have in mind, maybe someone in the community can pick it up. If you have a budget for it, you can also post it to #Marketplace.

---

<div class="post-metadata">

### Author: ![elsiehupp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elsiehupp/32/578380_2.png) [@elsiehupp](https://meta.discourse.org/u/elsiehupp)
#### Post date: [September 17, 2021, 4:17am UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/3 "2021-09-17T04:17:31Z")

</div>

Hi @tobiaseigen—thanks for your response. I’m not an administrator on any Discourse forums, and my suggestion is mainly based on a recurring experience I’ve had as a user and sometimes contributor on a variety of projects.

The reason I picked out Discourse Code Review is that it seems to be _de facto_ the sole Discourse GitHub integration, unless there are other currently maintained projects I’m not aware of. Regardless, I’m going to rename this Topic to make it a little more generalized.

Basically the problem is triage: usually projects that have both a Discourse instance and a public GitHub issue tracker tend to have their users concentrated more on the Discourse instance, and when a user Topic is more properly a GitHub Issue, sometimes there will be friction in the process of the Topic finding its way to the people responsible for handling it.

Another way of looking at this is as inboxes or buckets: if end users are more active on the Discourse instance, and the developers are more active on the GitHub repository, essentially the developers or someone tasked with triage has to keep track of multiple redundant places for people to post their problems and figure out a consistent way of migrating Issues and Topics when necessary.

What I’m imagining with GitHub Issue sync is something like [the Discourse WordPress plugin](https://wordpress.org/plugins/wp-discourse/), where the Issue tracker and a corresponding Discourse Category are, to the end user, different views for the same underlying set of conversations.

Again, I’m not in a position to spend money on this feature. I’m posting here based on my experience and frustration with it being unclear where to post different types of feedback on certain projects and the tendency of misplaced feedback to fall through the cracks.

(Oh, and preferably there would be exactly the same functionality for Gitlab as for GitHub…)

---

<div class="post-metadata">

### Author: ![elsiehupp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elsiehupp/32/578380_2.png) [@elsiehupp](https://meta.discourse.org/u/elsiehupp)
#### Post date: [September 17, 2021, 4:22am UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/4 "2021-09-17T04:22:09Z")

</div>

Yet another way of framing this is that Issue trackers are just forums (or, to use older parlance, “bulletin board services”) with a thick layer of Agile project management slathered on top. Weirdly, they’re also kind of mailing lists, because people can interact with them entirely via email. Discourse is in the unique, central position of tying these superficially different (but in many ways functionally similar) services together in order to reduce fragmentation.

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [September 17, 2021, 4:38am UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/5 "2021-09-17T04:38:39Z")

</div>

Thanks for explaining all this. Really it sounds like you need to ask the projects you are contributing to that are using Discourse to work on this. Right now it’s not even clear to me how many projects are making use of Discourse Code Review and how it’s working out for them. Feel free to PM me with some details so we can get specific.

> [@elsiehupp](#):
>
> What I’m imagining with GitHub Issue sync is something like [the Discourse WordPress plugin](https://wordpress.org/plugins/wp-discourse/)

That plugin is different.. the discussions live only in Discourse and are embedded at the bottom of WordPress posts. They are not synced.

---

<div class="post-metadata">

### Author: ![elsiehupp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elsiehupp/32/578380_2.png) [@elsiehupp](https://meta.discourse.org/u/elsiehupp)
#### Post date: [September 17, 2021, 3:50pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/6 "2021-09-17T15:50:56Z")

</div>

> [@tobiaseigen](#):
>
> That plugin is different… the discussions live only in Discourse and are embedded at the bottom of WordPress posts. They are not synced.

Right, yes, the fact that WordPress is so much more modular would facilitate that in a way that GitHub wouldn’t.

---

<div class="post-metadata">

### Author: ![Nick\_Chomey](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nick_chomey/32/215378_2.png) [@Nick\_Chomey](https://meta.discourse.org/u/Nick_Chomey)
#### Post date: [February 21, 2022, 5:54pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/7 "2022-02-21T17:54:11Z")

</div>

@elsiehupp Did you ever make progress with this? I’d like to implement something similar - bidirectional syncing of Github issues to a discourse topic.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [February 21, 2022, 6:42pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/8 "2022-02-21T18:42:12Z")

</div>

I’ve been working on this for a few different projects. There’s a POC here

> **[GitHub - angusmcleod/discourse-code-review at issue\_support](https://github.com/angusmcleod/discourse-code-review/tree/issue_support)**
>
> issue\_support

I’m hoping to have a test version live in a few projects in the next few weeks.

---

<div class="post-metadata">

### Author: ![sunjam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sunjam/32/175682_2.png) [@sunjam](https://meta.discourse.org/u/sunjam)
#### Post date: [May 2, 2022, 9:35pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/9 "2022-05-02T21:35:53Z")

</div>

> [@angus](#):
>
> I’m hoping to have a test version live in a few projects in the next few weeks.

Happy to help test once you are ready!

---

<div class="post-metadata">

### Author: ![abidiqbal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/abidiqbal/32/272519_2.png) [@abidiqbal](https://meta.discourse.org/u/abidiqbal)
#### Post date: [September 16, 2022, 6:49am UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/10 "2022-09-16T06:49:12Z")

</div>

@elsiehupp @angus @sunjam Did you guys have been able to create bidirectional sync between GitHub issues and discourse topics. I am also looking for this feature. Any help or guidance in this regard would be very appreciating.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [September 19, 2022, 7:33am UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/11 "2022-09-19T07:33:19Z")

</div>

I haven’t done any further work on the branch I posted, but perhaps it still works

> **[GitHub - angusmcleod/discourse-code-review at issue\_support](https://github.com/angusmcleod/discourse-code-review/tree/issue_support)**
>
> issue\_support

You can try it out and report back if you like.

---

<div class="post-metadata">

### Author: ![satonotdead](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/satonotdead/32/447830_2.png) [@satonotdead](https://meta.discourse.org/u/satonotdead)
#### Post date: [May 31, 2025, 10:51pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/12 "2025-05-31T22:51:34Z")

</div>

I wonder if this can be updated with relatively low effort, it’s a must for non-very-technical communities.

---

<div class="post-metadata">

### Author: ![Carol-Freirer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/carol-freirer/32/550442_2.png) [@Carol-Freirer](https://meta.discourse.org/u/Carol-Freirer)
#### Post date: [April 13, 2026, 2:55pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/13 "2026-04-13T14:55:22Z")

</div>

Hello! I’m new here on Discourse Meta and I need a specific integration that, from what I’ve researched, was discontinued because syncing discussions between GitHub and Discourse became chaotic. However, what I need doesn’t require synchronization. I’m looking for a feature that allows a specific post or reply to become a static GitHub issue—just to pull the information and create the issue, after which the issue proceeds independently on GitHub without syncing back to Discourse.

To provide context, I work in the business team for several government solutions. Our solutions are used by many public agencies, as our scope of responsibility recently expanded to include States and Municipalities. As a result, we have a huge community. We’ve tried managing it through GitHub, but GitHub isn’t as user-friendly as Discourse, and Discourse is wonderful for community management. Currently, a team of six people handles the back-and-forth for suggestions, bug reports, and so on for this large community. I just need a feature that allows a post to become an issue in a specific repository—either a single one or selectable, it doesn’t matter. Our bottleneck is getting it to GitHub, from where we manage everything.

I’m not on the technical team, so unfortunately, I don’t have the technical knowledge to contribute, even though I really enjoy it and am curious. I have no knowledge of Ruby at all, so if anyone can help, I’d greatly appreciate it!

Edit: I wasn’t sure where to post. Since there’s already a discussion about the relationship between issues and posts, I didn’t want to open another topic.

---

<div class="post-metadata">

### Author: ![elsiehupp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elsiehupp/32/578380_2.png) [@elsiehupp](https://meta.discourse.org/u/elsiehupp)
#### Post date: [September 20, 2026, 9:44pm UTC](https://meta.discourse.org/t/bidirectional-sync-between-discourse-topics-categories-and-github-gitlab-issue-trackers/203780/14 "2026-09-20T21:44:03Z")

</div>

I just came across another instance of Discourse-Gitlab siloing being a problem:

> **[Advertising not allowed](https://forum.f-droid.org/t/advertising-not-allowed/34802)**
>
> Recently it is seen a lot of users create an account and start advertising their apps. Whether the app has been submitted as an RFP, or a MR is open, or not, they start advertising their apps here. F-Droid is lenient, but advertising is not...

tl;dr because the F-Droid Discourse is siloed from the F-Droid Gitlab, people on the Discourse do not have convenient access to RFPs or MRs, and consequently people feel inclined to created Discourse Topics for Gitlab MRs, but this is seen as spam.

Bidirectional sync between Discourse and Gitlab would allow F-Droid Discourse users convenient access to the F-Droid Gitlab that would not be perceived as spam.

(I came across this in the past hour or two, and I have not previously used the F-Droid Discourse, so I have to wait for my GitHub login to be approved, but I will try and cross-post this to an appropriate place there when I am able.)
