Removendo environments do Github

Uma das pequenas coisas que afetam bastante o dia a dia é quando uma pequena ação tem um resultado particularmente destrutivo e irreversível. Deixar sua xícara favorita cair pode ser uma dessas ações, caso a xícara quebre, suas imperfeições estéticas podem estragar a beleza que a xícara tinha. Deixando de lado as xícaras e a subjetividade da beleza, o Github implementou para repositórios que utilizam ferramentas de deploy externas os "Environments" uma aba especial do repositório dedicada a exibir um log dos deploys feitos por aquela ferramenta que contém um problema particularmente destrutivo e (quase) irreversível.

A problemática
É difícil de início perceber a ligação entre essa feature e uma ação irreversível, até que seja tarde demais. Brincadeiras a parte, quando se usa um serviço de deploy integrado ao Github e ele adiciona um environment ao seu repositório, não existe uma maneira simples de removê-lo. Caso a adição tenha sido intencional e desejada, não existem problemas, mas se por alguma razão você adicionou o serviço de deploy ao repositório errado, não gostou do serviço e deploy, não quer mais utilizar o serviço ou simplesmente não quer a aba de deploy no seu repositório, então o Github não oferta uma maneira simples e intuitiva de solucionar seu problema.
Na data de escrita desse post, não existia nenhuma forma pela interface gráfica do Github de remover os environments. Então uma vez adicionados já era, perdeu-se...
...Ou era o que eu pensava, existe uma solução, não é trivial, mas resolve o problema.
A Solução
O Github possui uma série de apis robustas e confiáveis, possuindo inclusive apis que permitem a remoção de environments (o porquê disso não ter sido adicionado à interface é um mistério).
O colega Spersico fez um bom trabalho em automatizar as chamadas às apis e deixou disponível nesse snippet do Stackblitz.
Para remover então os environments do seu repositório alguns passos são necessários:
- Primeiramente, acesse o snippet de remoção de environments.

- No topo do snippet, existem alguns parâmetros que precisam ser preenchidos (TOKEN, REPO e USER_OR_ORG, no meu caso, quero remover os environments do meu repositório chamado "torugo-chatbot" da minha conta "victormagalhaess"


- O próximo passo antes de executar o snippet é adicionar o parâmetro TOKEN, para isso, é necessário ir até a área de criação de tokens do seu Github: https://github.com/settings/tokens/new e criar um novo token com permissão de repo-deployment:

Lembre-se de copiar o token, é impossível ver ele novamente sem ter que regerá-lo

- Após copiar o token, cole-o no snippet:

Imediatamente ao fazer isso, se todos os parâmetros foram passados corretamente, a lateral do snippet deve exibir a seguinte mensagem mostrando que os environments foram removidos:

E ao voltar ao seu repositório, o campo de environments terá desaparecido:
Antes:

Depois:

Conclusão
Dessa forma, você poderá controlar e gerenciar a exibição dos environments nos seus repositórios. Caso você não se sinta confortável em executar o snippet pelo Stackblitz, você pode fazer download do projeto e executar localmente. Uma outra dica para manter sua segurança é revogar o token após finalizar a remoção de todos os environments que você desejar.
Espero que tenha sido útil pra você esse post e que ajude na sua organização e satisfação com seus repositórios no Github! 🎉🎃

