Criar um plugin para o Discourse que publique conteúdo de arquivos específicos dentro de um repositório diretamente em um tópico
O caso de uso pretendido para um plugin desse tipo seria gerenciar conteúdo no GitHub primeiro (com controle de versão, issues, pull requests, etc.), mas mantendo a versão principal sempre sincronizada com um tópico específico
Casos de uso incluiriam coisas como manuais, uma base de conhecimento, repositório de ideias
Mais especificamente, nosso caso de uso interno é que estamos usando o Discourse como nosso hub de conhecimento, mas percebemos que queremos um controle mais refinado sobre a atualização e edição do conteúdo, e é aí que o fluxo Git entra
Algumas observações adicionais
Precisa funcionar apenas com arquivos .md
Gostaríamos muito que isso fosse de código aberto (cobriremos os custos iniciais de desenvolvimento)
Quando você precisa que seja feito?
O cronograma não é imediato, mas nos próximos meses
Qual é o seu orçamento, em $ USD, que você pode oferecer para esta tarefa?
Nem mesmo totalmente claro sobre o escopo, então precisaria determinar isso primeiro.
O que está faltando no Discourse nesse aspecto? O Discourse pode ser melhorado para atender às suas necessidades, de modo que você não precise mais usar o GitHub?
Você menciona pull requests, então talvez a necessidade seja a capacidade de solicitar alterações que sejam revisadas e aprovadas por outra pessoa antes que uma mudança seja finalizada? Acredito que isso poderia ser feito de uma “maneira Discourse” respondendo à postagem para solicitar uma revisão ou atribuindo-a a alguém após fazer a alteração. Tive algum sucesso configurando um temporizador de tópico para excluir automaticamente as respostas, para que o tópico não fique sobrecarregado por muitas respostas pequenas.
Outra ideia seria usar o plugin de políticas. Um grupo poderia ser notificado quando um tópico fosse alterado e solicitado a confirmar que leu e concordou com a mudança.
Dito tudo isso, acho que essa é uma ideia muito legal e gostaria de vê-la implementada. Consigo ver isso sendo útil até mesmo para o meta! Temos muitos tópicos aqui sobre repositórios do GitHub, e seria bom ver atualizações nos arquivos readme.md desses repositórios na OP, para que não precisem ser mantidos em dois lugares.
Para o Discourse for Teams, isso também poderia ser um recurso útil, para que equipes que usam muito o GitHub ainda possam usar o Teams como sua “fonte única da verdade” para referência, sem que todos precisem fazer login no GitHub o tempo todo. Acredito que isso poderia fazer parte ou ser um complemento ao plugin de revisão de código.
A maior questão aqui é o branching. A motivação central é, na verdade, que exista um mecanismo pelo qual algo possa ser ramificado, melhorado, revisado e, em seguida, mesclado. Da mesma forma, permite que um revisor passe por um processo semelhante, onde faz alterações mais menores na própria ramificação, oferecendo um controle mais refinado sobre as mudanças.
Embora eu adoraria que fosse esse o caso, as peças que faltam são um pouco não triviais:
Branching
Mesclagem de alterações com um clique
Essa é uma ótima solução para quem não se importa tanto com o aspecto de branching quanto eu, neste caso.
Parece que isso poderia ser extremamente útil de várias maneiras. Sempre que eu encontrar a pessoa certa para contratar para isso, adoraria colaborar um pouco. Talvez essa ferramenta eventualmente possa se tornar um plugin “oficial”! (pode-se apenas esperar).
Se o caso de uso central são arquivos .md e uma linguagem comum, ainda acho que o Discourse tem uma grande vantagem: é conversacional e permite que as pessoas realmente conversem entre si em linguagem simples. Como você disse, geralmente você quer que essa conversa sobre conhecimento aconteça no Discourse. Então, acho que vale a pena ver como manter a maior parte disso ali mesmo; caso contrário, você desvia a atenção e o foco do que seria sua plataforma principal.
Posso imaginar uma configuração como:
Readme.md como um tópico de wiki no Discourse, sincronizado com o GitHub
Discussão sobre esse Readme como posts de acompanhamento no Discourse, regularmente excluídos (semelhante à configuração atual no meta)
Arquivos e pastas adicionais em um repositório gerenciados no GitHub e com ramificação. A estrutura atual do repositório poderia ser sincronizada com o Discourse, para que apareça junto com o post da wiki como um índice.