Conselho do Projeto GitHub
Para aliviar o fardo dos mantenedores do projeto, existe um Conselho de Projeto interno no GitHub usado para acompanhar o progresso dos PRs e problemas. O quadro está disponível apenas para a equipe @GersonRS/is-modern-gitops-stack
e está disponível https:/ /github.com/orgs/GersonRS/projects/3/[aqui]. Todos os repositórios do Modern Gitops Stack também estão conectados a este projeto no momento da criação.
A maneira como isso é feito é um tanto complicada, daí o motivo desta página de documentação.
Projeto Gitops Stack Moderno
O projeto em si foi criado manualmente na organização @GersonRS
, usando a interface web do GitHub (https://docs.github.com/en/issues/planning -e-rastreamento-com-projetos/criando-projetos/criando-um-projeto[documentação]). O projeto é privado (documentação) e acessível apenas à equipe @GersonRS/is-modern-gitops-stack
(https://docs.github.com/en/issues/planning-and-tracking-with-projects/managing-your-project/managing -acesso aos seus projetos[documentação]).
Todos os quadros e tabelas também foram criados manualmente. Nas configurações do projeto, existem fluxos de trabalho de automação (https://docs.github.com/en/issues/planning-and-tracking-with-projects/automating-your-project/using-the-built-in- automações[documentação]) que movimentam os problemas e PRs dependendo de seu status (aberto, fechado, mesclado, etc.).
Adicionando um PR/problema ao projeto
Como existem alguns limites de quantos repositórios podemos adicionar a um projeto usando os fluxos de trabalho padrão, fomos forçados a automatizar esse processo usando um fluxo de trabalho do GitHub, conforme sugerido em https://docs.github.com/en/issues/ planejando e rastreando com projetos/automatizando seu projeto/automatizando projetos usando ações#exemplo-fluxo de trabalho-autenticando-com-um-github-app[documentação oficial].
Embora a documentação oficial chame explicitamente a API com comandos gh
, optamos por usar uma ação oficial do GitHub (actions/add-to-project
) para conseguir isso. Além disso, para permitir que os fluxos de trabalho modificassem o projeto, precisávamos criar um aplicativo GitHub cujo único propósito é fornecer as permissões necessárias aos fluxos de trabalho.
Aplicativo de projeto moderno Gitops Stack
O aplicativo é chamado de Modern Gitops Stack Project
e está disponível https://github.com/apps/modern-gitops-stack-project [aqui].
Este aplicativo foi criado em nossa organização por um administrador e está configurado com um escopo limitado de permissões: ele só pode acessar os projetos da organização onde está instalado, bem como os PRs e Issues dos repositórios nos quais está instalado (https: //docs.github.com/en/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app[documentação oficial] sobre como criar um aplicativo GitHub).
Após a criação do aplicativo, foi necessário um administrador para instalá-lo na organização e em todos os repositórios do Modern Gitops Stack. Isso foi feito acessando a página do aplicativo e clicando no botão Instalar
e definindo as configurações adequadas após a instalação (tudo isso é feito nas configurações da organização, verifique https://docs.github.com/en/apps/ mantendo-github-apps/instalando-github-apps#instalando-seu-privado-github-app-on-seu-repositório[documentação oficial]).
IMPORTANTE: O motivo para não instalar o aplicativo em todos os repositórios por padrão foi limitar ainda mais o escopo do aplicativo, embora *isso adicione o fardo de instalá-lo manualmente em cada repositório sempre que um novo repositório do Modern Gitops Stack for criado *.
Fluxo de trabalho centralizado
A definição do fluxo de trabalho está disponível em repositório principal.
Unresolved include directive in modules/ROOT/pages/contributing/project_board.adoc - include::examples$github_workflows/pr-issues-project.yaml[]
NOTA: É a etapa Gerar token de autenticação do aplicativo GitHub que usa o aplicativo GitHub criado acima para gerar um token com as permissões adequadas que é então passado para a etapa Adicionar PR ou emitir ao quadro do projeto Modern Gitops Stack.