Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatizar lista de contribuidores(as) #177

Open
trevineju opened this issue Sep 27, 2023 · 11 comments
Open

Automatizar lista de contribuidores(as) #177

trevineju opened this issue Sep 27, 2023 · 11 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@trevineju
Copy link
Member

Descrição

Temos uma página que lista os nomes de quem apoia o QD, em diversos repositórios. Esta lista é manual e de manutenção muito difícil. Uma melhoria seria automatizar a criação e exposição da lista de contribuidores.

Algumas ideias:

  • criar um script que consome a API do GitHub (o código precisaria ir para o repositório querido-diario-backend) e adaptar o frontend para isso
  • usar alguma ferramenta que faça isso

Referências:

Não é necessário seguir as ideias ou referências se tiver outra solução melhor

@trevineju trevineju added the enhancement New feature or request label Sep 27, 2023
@nkzren
Copy link

nkzren commented Oct 4, 2023

@trevineju posso pegar essa? Estou pensando em fazer usando o próprio GitHub Actions, que tem uma cota grátis: https://docs.github.com/pt/actions/learn-github-actions/usage-limits-billing-and-administration

@trevineju
Copy link
Member Author

pode sim @nkzren!!

@nkzren
Copy link

nkzren commented Oct 5, 2023

Adicionei uma versão inicial da action utilizando a spec do all-contributors. Tem um exemplo de como vai ficar na branch main do meu fork. São basicamente 2 alterações:

Esses 2 itens são independentes, e é possível alterar pra qualquer posição de qualquer outra página markdown.

Automação

O job que faz a atualização é executado toda vez que é feito um push na branch main (isso pode ser configurável para responder a outros eventos listados aqui nessa doc). É possível executar manualmente também pra minimizar o problema da cota grátis que eu descrevi abaixo

Limitações

Por ser uma versão inicial, eu fiz funcionar somente para este repositório. Se achar que ficou bom, eu posso criar uma versão que faça isso a nível de organização E atualize o JSON do site também

Isso vai dar um trabalhinho a mais e possivelmente pode consumir bem rápido toda a cota grátis da API do GitHub (mesmo ela sendo razoavelmente generosa). A conta por cima seria:

  • 1 request pras infos da oganização
  • 1 request pra pegar a lista de repositórios
  • 1 request pra pegar as infos de cada pessoa contribuidora em cada repositório

@ogecece
Copy link
Member

ogecece commented Oct 5, 2023

Eu achei legal! A possibilidade de atualizar o JSON do site brilha os olhos demais!

Sobre a cota, faço o mesmo comentário que fiz lá no PR, acredito que seja melhor fazer uma atualização periódica e não baseada em push. Assim ficaria mais previsível. Se pra cada repositório poderia atualizar uma vez por semana, no site poderia ser uma vez a cada duas semanas ou uma por mês. Algo assim.

O que acharam @trevineju @tigreped @rasrbk @lguima ?

@nkzren
Copy link

nkzren commented Oct 6, 2023

Respondi e apliquei as sugestões do PR

@nkzren
Copy link

nkzren commented Oct 6, 2023

Eu acabei de perceber que o propósito original da issue era a atualização do JSON, não a que eu fiz da lista de contribuições no repo 😅

Enfim, sobre a atualização do JSON: pensando melhor aqui seria bem difícil atualizar da mesma forma que foi feita pro repo (Action + bash script simples no Docker). Tudo bem fazer em uma action separada?

@lguima
Copy link
Collaborator

lguima commented Oct 7, 2023

Muito massa, @nkzren! Valeu demais! 🎉🙌

Fiquei com uma dúvida, abaixo do avatar tem o tipo de contribuição que foi feito e de todo mundo está "Doc", essa info vem de onde?

E se for possível atualizar o JSON em uma action diferente e mantendo a cota gratuita, não vejo problema.

@nkzren
Copy link

nkzren commented Oct 9, 2023

Fiquei com uma dúvida, abaixo do avatar tem o tipo de contribuição que foi feito e de todo mundo está "Doc", essa info vem de onde?

Eu deixei doc como valor padrão lá no .github/actions/contributors/entrypoint.sh. Alterado conforme o comentário do @ogecece

@nkzren
Copy link

nkzren commented Oct 11, 2023

Temos um JSON!

A má notícia é que eu não sei como fazer ele substituir o JSON existente por conta da estrutura. Está um pouco complexo de marcar os pontos exatos para substituir 😬

Teria como ajustar a aplicação para que essa substituição fique mais fácil?

ogecece added a commit that referenced this issue Oct 22, 2023
Adiciona arquivo `contributors.json` listando as pessoas
contribuidoras por repositório de forma a permitir que a
atualização automática dessas informações seja mais fácil.

Sugestão de mudança parte desse comentário na discussão em #177:
#177 (comment)
@ogecece
Copy link
Member

ogecece commented Oct 22, 2023

@nkzren abri esse PR aqui (#212) para ficar mais fácil de substituir. Segue o formato que você propôs :)

Assim que mesclarmos ele podemos seguir com a automatização, beleza?

ogecece added a commit that referenced this issue Oct 25, 2023
Adiciona arquivo `contributors.json` listando as pessoas
contribuidoras por repositório de forma a permitir que a
atualização automática dessas informações seja mais fácil.

Sugestão de mudança parte desse comentário na discussão em #177:
#177 (comment)
ogecece pushed a commit that referenced this issue Oct 25, 2023
Adiciona arquivo `contributors.json` listando as pessoas
contribuidoras por repositório de forma a permitir que a
atualização automática dessas informações seja mais fácil.

Sugestão de mudança parte desse comentário na discussão em #177:

#177 (comment)

**Português (BR)** | [English
(US)](?quick_pull=1&template=PULL_REQUEST-en-US.md)

## Comunidade

* [X] Eu li e segui o [Guia de
Contribuição](https://github.com/okfn-brasil/querido-diario-frontend/blob/main/docs/CONTRIBUTING.md).
* [X] Eu li e segui o [Código de
Conduta](https://github.com/okfn-brasil/querido-diario-comunidade/blob/main/.github/CODE_OF_CONDUCT.md).

## Tipo de alteração

* [ ] 🐞 Correção de problema
* [X] ✨ Melhoria ou nova funcionalidade
* [ ] 📰 Nova postagem no blog

## Issues relacionadas
Issues que são relacionadas a esta Pull Request.

#177 
<!--
Considere abrir uma issue relacionada à alteração ou conversar com
alguém para que seja aberta e assim termos mapeadas as alterações.

Caso esta Pull Request resolva uma ou mais issues existentes, vincule-as
com uma palavra-chave para que ao ser mergeada, a issue seja fechada.

Ex.: Resolve #123

Mais informações:
https://docs.github.com/pt/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue
-->

## Validação

* [x] Validei a alteração no link gerado pelo bot da Netlify (Deploy
Preview/Preview on mobile)
* [x] Validei o Layout responsivo (desktop/mobile) após a implementação
* [x] Verifiquei o registro do deploy (Latest deploy log) e nenhum novo
alerta ou erro foi adicionado

## Evidências
Anexe evidências do antes e do depois da alteração (quando necessário).

<!-- Você pode arrastar imagens para cá. -->

## Documentação

* [ ] A documentação deste repositório foi atualizada (quando
necessário).
* [ ] Esta alteração requer que a documentação externa seja atualizada.
@ogecece
Copy link
Member

ogecece commented Oct 25, 2023

@nkzren o PR foi mesclado. O arquivo fica em assets/pages/support/contributors.json

@ogecece ogecece added the good first issue Good for newcomers label Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

4 participants