Como pretende monitorar cada branch de cada projeto para fazer deploy? Isso não me parece escalável ou eu não compreendi sua explicação para o CD. De todo modo, seria mais interessante você disponibilizar uma api para fazer isso por meio do github actions, jenkins ou gitlab. Alias, pelo que eu entendi você só iria suportar Github. Parabéns pelo projeto
Olá, obrigado por participar!
Pela sua pergunta, acredito que você tenha imaginado um processo de polling, onde meu servidor ficaria constantemente consultando alterações nos projetos e realizando o deploy. Existem várias maneiras de alcançar esse resultado, mas a mais comum e adequada é escutar eventos.
Um exemplo disso é o GitHub Actions, onde você pode definir um pipeline para cada branch, conforme sua necessidade, e quando ele recebe um evento, o mesmo e ativado. O approach mais apropriado para esse tipo de funcionalidade seria, então, a utilização de webhooks.
Entendi. Então você terá um endpoint (api) que pode ser acionado. E como funciona com projetos privados? Por exemplo, se eu quiser usar o Gitlab em um repo privado, como a sua solução faria para fazer o deploy?
OBS: Não entenda minhas perguntas como críticas.
Entendi onde você quer chegar. Nesse caso, teríamos que implementar um CLI para nossa plataforma, onde você poderia fazer login através de um token ou com usuário e senha e, em seguida, enviar o projeto para nossa plataforma para o deploy. Porém, a automação do CI/CD e suas regras poderiam ser configuradas por você.