[PAID] A Github to Discourse content sync (repo file → topic)

What would you like done?

  • To build a plugin for Discourse that publishes content from specific files within a repo directly into a topic
    • The intended use case a plugin of this type would be to manage content within Github first (with version control, issues, pull requests, etc.) but keeps the head always in sync with a specific topic
    • Use cases would include things like handbooks, a knowledge base, ideas repo
      • Quite specifically our internal use case is that we’re using Discourse as our hub for knowledge, but find that we want more fine-tuned control over updating and editing the content, so that’s where the Git flow comes in
  • A couple additional notes
    • Only needs to work with .md files
    • We would love for this to be open sourced (we will cover initial development costs)

When do you need it done?

  • Timeline is not immediate, but in the next few months

What is your budget, in $ USD that you can offer for this task?

  • Not even entirely clear on the scope, so would need to determine that first.
  • Open to bids.
4 Likes

What is it that is missing from discourse in this regard? Can discourse be improved to meet your needs so you don’t need to use github at all?

You mention pull requests, so maybe the need is for the ability to request changes that are then reviewed and approved by someone else before a change is finalized? I guess you could do this in a “discourse way” by replying to the post to request a review or by assigning it to someone after you make the change. I have had some success with setting a topic timer to auto-delete replies, so the topic doesn’t get bogged down by lots of little replies.

Another idea would be to use the policy plugin. A group could be notified that a topic was changed and requested to confirm they read and agree to the change.

All that said, I think this is a pretty sweet idea and I’d like to see it implemented. I can see this being useful even for meta! We have many topics here about github repos and it would be nice to see updates to those repo readme.md files in the OP so they don’t have to be maintained in two places.

For Discourse for Teams it could be a useful feature as well, so that teams who use github heavily can also still use Teams as their “single source of truth” for reference, without everyone having to also log into their github all the time. I guess it could be part of or a companion to the code review plugin?

2 Likes

The biggest thing here is branching. The core motivation here is actually that there is a mechanism where something can be branched, improved, reviewed, and then merged. Similarly, it allows a reviewer to go through a similar process, where they make more minor changes to a branch itself, giving more fine-tuned control over changes.

While I’d love for that to be the case, the missing pieces are a bit non-trivial:

  • Branching
  • One-click merge changes

That’s a great hack for anyone who doesn’t care as much about the branching aspect as I do in this case.

Feels like this could be immensely helpful in many ways. Whenever I do find the right person to hire for this, I would love to collaborate a bit. Perhaps this tool could eventually find its way into becoming an “official” plugin! (one could only hope).

2 Likes

If the central use case are .md files and common language, I’d still think Discourse has a big advantage in that it is conversational and supports people actually talking to each other in plain language. As you said, you generally want that conversation about knowledge happening on Discourse. So I think it’s worth looking at how to keep most of it right there, otherwise you drive attention and focus away from what you’d want as your main platform.

I could imagine a setup like:

  • Readme.md as a wiki topic on Discourse, synced to GitHub
  • Discussion about this Readme as follow-up-posts on Discourse, regularly deleted (similar to the current setup on meta)
  • Additional files and folders in a repo handled on GitHub and with branching. The current repo structure could be synced to Discourse, so that it shows up with the wiki post like a table of contents.
2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.