DEV Community

Cover image for Aumente sua produtividade com a Github CLI
Falcão
Falcão

Posted on

Aumente sua produtividade com a Github CLI

Se você usa o Github no dia e ainda não conhece a CLI do Github, eu recomendo que você continue lendo esse artigo. Hoje vamos aprender como aumentar nossa produtividade e qualidade de vida ao trabalhar com issues, pull requests, actions, e mais!

Sumário

Instalação

Antes de tudo, precisamos instalar a CLI para podermos usar ela, como existem diversos sistemas operacionais neste belo mundo, deixarei aqui um link para o guia de instalação do próprio Github.

Com a ferramenta instalada, podemos verificar a versão com o comando:

gh --version
Enter fullscreen mode Exit fullscreen mode

Autenticando

Depois de instalado, precisamos nos autenticar para conseguir desfrutar da ferramenta, isso é feito com o comando:

gh auth login
Enter fullscreen mode Exit fullscreen mode

Para verificar que está logado, use o comando:

gh auth status
Enter fullscreen mode Exit fullscreen mode

Uma mensagem deve aparecer dizendo que você esta logado no github na sua conta.

Repositórios

Com a CLI do Github, conseguimos clonar, dar fork, listar, ver um repositório, e muito mais.

Digamos que gostaríamos de ver todos nossos repositórios, podemos usar o comando gh repo list.

Lista dos meus repositórios

Esse é o output do comando, uma tabelinha bem simpática que nos mostra os nomes, descrições e algumas outras informações de todos os meus repositórios, note que ele diz que está mostrando 30 de 31, isto é porque esse comando só mostra repositórios nos quais eu sou o dono, o 31º é um repositório que eu sou somente contribuidor, por isso não é mostrado.

Podemos também criar um repositório, com gh repo create, esse comando ajuda muito a simplificar o processo de criar e configurar um repositório totalmente novo:

Comando perguntando nome do repositório, dono, visibilidade etc

Clonar um repositório também é simples, podemos fazer do jeito que já estamos acostumados com git, usando a URL do repositório:

Clonando um repositório com sucesso usando a url

Ou melhor ainda, fazendo gh repo clone OWNER/REPO:

Clonando um repositório com sucesso usando a sintaxe OWNER/REPO

Para fazer forks, com gh repo fork, a sintaxe é a mesma.

Com esse comando, podemos ainda arquivar, deletar, renomear e sincronizar repositórios e mais!

Issues

Diariamente trabalhamos muito com issues diferentes, a CLI também facilita a nossa vida nesse quesito, tirando a necessidade de sair do terminal para abrir/ver/listar/comentar etc.

Como é de se esperar, para criar uma issue, usamos gh issue create:

Questionário perguntando título, corpo e se quer submeter a issue, terminar no browser ou cancelar

Analogamente, se quisermos ver as issues criadas, usamos um gh issue list:

Lista das issues no meu repositório

Também é possível filtrar issues com uma label específica, podemos usar a flag --label, por exemplo para ver só as issues com a label "bug", podemos fazer gh issue list --label=bug (no meu caso a única issue já é de bug, mas funciona!).

Para conseguir mais informações de uma issue específica (por exemplo, a issue de verdade ao invés de só o título e label), usamos o comando gh issue view <numero_issue>:

Terminal mostrando o título, corpo e status da issue

Nesse caso as informações são facilmente entendidas pelo terminal mesmo, entretanto, as vezes temos mídias ou textos maiores e ver a issue pelo github seria melhor, para isso podemos usar a flag --web.

A issue é aberta no seu browser

É possível comentar em issues abertas usando o comando gh issue comment <numero_issue>:

Questionário perguntando o conteúdo do comentário e se quer postar ou não

Adicionalmente, também é possível fechar, reabrir, deletar, fixar issues e muito mais.

Pull requests

De longe, o que eu mais gosto ao usar a CLI, é o quanto ela simplifica trabalhar com pull requests, por exemplo, digamos que temos uma nova branch com alterações já commitadas e agora queremos criar uma PR para o repositório, ao invés de passar pela dor de cabeça de subir uma nova branch e criar pelo site, podemos simplesmente fazer gh pr create.

Questionário perguntando título, texto do pr e o que fazer depois
Se precisarmos adicionar algum tipo de mídia, podemos simplesmente continuar no browser, mas toda a informação já vai estar lá.

Assim como em issues, também podemos usar gh pr list e gh pr view, para listar todos os pull requests e ver mais detalhes sobre uma específica respectivamente.

Imagine que alguém acabou de abrir um PR no see repositório, e agora? como testar o código? É possível dar um checkout localmente com gh pr checkout <numero_pr>, assim seu git vai criar uma nova branch no seu repositório local, com todas as mudanças apresentadas no pull request:

Isso cria uma nova branch com o código apresentado no pr

Também é possível comentar em um pr com gh pr comment <numero_pr>:

Mesma coisa do issue comment

Agora digamos que você tenha sim checks configurados para nova pull requests, como linters ou testes automatizados, é possível verificar a situação de um pr específico com gh pr checks <numero_pr>:

Tabela mostrando um check de linter que passou com sucesso, demorou 2min e 19 sec e um link pra ele

Ademais, também podemos fazer review, marcar um pull request como pronto para review, fechar, reabrir, dar merge, e mais, só pelo terminal.

Apelidos

Como qualquer ferramenta de terminal, é sempre bom criar aliases (apelidos) para comandos que você usa frequentemente, podemos fazer isso usando o comando gh alias set. Por exemplo, vamos criar um alias chamado "bugs", que vai nos mostrar só as issues com a label "bug", para alcançar isso basta digitar no terminal:

gh alias set bugs 'issue list --label=bug'
Enter fullscreen mode Exit fullscreen mode

Agora podemos a qualquer momento digitar "gh bugs" no terminal e ver todas as issues relacionadas :)

Adicionalmente, podemos deletar um alias existente com gh alias delete <nome> ou ver todos os alias criados com gh alias list.

Actions

Se você usa Github Actions, um outro poder da CLI é a habilidade de controlar e ver informações relevantes diretamente no terminal, com gh run e gh workflow, a diferença é que workflowse refere aos arquivos e run as runs que as actions já tiveram.

Para listar todas as recentes runs, usamos gh run list:

Tabelinha mostrando o status, nome, quanto tempo demorou, qual workflow foi e mais das últimas runs

Também podemos ver detalhes de uma run ou jobs dela usando gh run view:

Questionário perguntando qual workflow e qual run, mostra os jobs e o tempo passado e o id

O mesmo vale para workflow, porém, com esse subcomando também podemos usar enable e disable, ativar e desativar um arquivo de workflow específico.

Caso seu workflow receba o evento workflow_dispatch, é possível ativar ele manualmente com o comando:

gh workflow run
Enter fullscreen mode Exit fullscreen mode

Descobrindo mais

Apenas vimos a superfície de o que a CLI do Github é capaz de fazer, alguns dos outros recursos que podemos manipular com essa ferramenta incluem: releases, projects, organizations, labels, gists, variáveis do Github Actions e mais!

Para entender melhor como ela pode te ajudar no seu dia a dia como desenvolvedor, recomendo explorar os comandos existentes com gh help:

Comando mostrando todos os principais comandos e uma descrição do que fazem, além dos seus alias e qual comando eles representam

Note que nossos comandos de alias também aparecem por aqui, o que é uma adição bem legal.

Caso nossa dúvida seja acerca de um comando ou subcomando específico, podemos sempre usar a sintaxe gh help <comando> <subcomando>, como, por exemplo:

Descrição de o que o pr create faz
Flags
Exemplos e onde ler mais

Conseguimos uma descrição super detalhada de exatamente o que esse comando faz, as flags disponíveis, os apelidos, exemplos e mais informações!

Extensões

Toda boa ferramenta precisa ter extensões feitas pela comunidade, e aqui não é diferente, temos diversas extensões oficiais e feitas pela comunidade para turbinar ainda mais sua CLI. Para começar use o comando:

gh extensions browse
Enter fullscreen mode Exit fullscreen mode

Uma lista das extensões disponíveis com um pequeno preview do readme de cada do lado

Aqui podemos ver todas as extensões, ver seus repositórios e instalar elas se quisermos, se você quer achar uma extensão específica, você pode usar o subcomando search:

Aqui eu pesquisei por "star" e ele mostra as extensões relacionadas

Instalou uma extensão e agora decidiu que não quer mais ela? Tudo bem, basta usar o comando gh extensions list para ver todas as extensões instaladas e gh extensions remove para remover uma delas:

Removendo a extensão dash com sucesso

Conclusão

Espero que você tenha gostado desse artigo! Eu pessoalmente uso essa ferramenta diariamente e me ajudou muito, principalmente em projetos open source, espero que possa te ajudar também.

Caso queira ler mais sobre, aqui está o manual oficial.

Se tiver alguma dúvida, sugestão ou feedback, sinta-se à vontade para deixar um comentário, ficarei feliz em responder, obrigado por ler!

Top comments (4)

Collapse
 
offpepe profile image
Alan Albuquerque Ferreira Lopes

Ótimo artigo primo, gh cli é uma ótima ferramenta mesmo, esse artigo me deu a maior saudade de trabalhar no github!

Collapse
 
falcao_g profile image
Falcão • Edited

Feliz que tenha gostado e obrigado pelo comentário!

Collapse
 
mateussposo profile image
Mateus de Oliveira Sposo

Baita sabedoria desbalanciada, meu ídolo!

Collapse
 
falcao_g profile image
Falcão

:)