Software Engineer

GitHub CLI: PRs, Issues e mais do GitHub direto no terminal

O que é?

GitHub CLI (Command Line Interface), como o próprio nome sugere, é o GitHub via linha de comando. Com essa ferramenta é possível trazer pull requests, issues e outros conceitos do GitHub para dentro do terminal.

Como sugere o repositório oficial, a CLI do GitHub está disponível para repositórios hospedados em GitHub.com e GitHub Enterprise Server 2.20+, e pode ser instalado em MacOS, Windows e Linux.

Vale a penar usar?

É uma pergunta bastante relativa, que pode ser respondida levantando dois pontos:

  • Você é um amante do Terminal?
  • Você já usa o git via CLI?

Se a resposta para ambos for sim, talvez vale a pena dar uma olhada mais a fundo.

Com a ferramenta, você consegue abrir um Pull Request pelo mesmo terminal que faz seus commits, o que nos poupa bastante tempo, simples e rápido.

Como instalar

Como não é bem o foco aqui, vou deixar a recomendação de consultar a própria documentação.

Após instalar, execute o seguinte comando para testar o funcionamento e já verificar todos os comandos:

$ gh --help
  • Lembrando que, gh é o próprio binário, não se trata de um alias 🙂.

Passos iniciais

O primeiro passo após instalar é autenticar com sua conta do GitHub, para isso basta executar o comando:

$ gh auth login

Existem duas formas de login:

  • Via token, que pode ser gerado no GitHub
  • Login no navegador

Por questões de praticidade, recomendo a segunda opção. Após autenticado, você pode verificar o status com o comando:

$ gh auth status

Feito isso, caso queira você já pode configurar o seu editor de texto favorito para editar as mensagens de Pull Requests:

$ gh config set editor <editor>

Lembrando que, caso não seja atribuído nenhum editor utilizando o comando acima, o gh assumirá o padrão definido na variável de ambiente $EDITOR (No MacOS e no Linux o editor padrão é o Nano, no Windows Notepad).

Mais detalhes sobre o comando gh config podem ser encontrados na documentação oficial.

Hands-on - O que é possível fazer?

Abaixo temos algumas das coisas interessantes que essa ferramenta nos permite fazer.

Pull Requests

  • Abrir um Pull Request:

    $ gh pr create
    

    GIF exemplificando o uso do comando

    Algum dos parâmetros interessantes que temos aqui:

    • Com o parâmetro -B podemos especificar o base branch, isto é, para qual branch essas alterações serão enviadas após o merge:
    $ gh pr create -B main
    
    $ gh pr create -d
    
  • Fechar/reabrir um Pull Request:

    $ gh pr close/reopen
    
  • Mergear um Pull Request:

    $ gh pr merge
    
  • Listar Pull Requests:

    $ gh pr list
    
  • Ver o diff de um Pull Request:

    $ gh pr diff
    
  • Revisar um Pull Request:

    $ gh pr review
    
  • Verificar os status checks de um Pull Request aberto, como o CI:

    $ gh pr checks
    
  • Verificar seu status de Pull Requests:

    $ gh pr status
    

    GIF exemplificando o uso do comando

Issues

  • Criar uma Issue:

    $ gh issue create
    

    GIF exemplificando o uso do comando

  • Fechar/reabrir uma Issue:

    $ gh issue close/reopen
    
  • Listar Issues:

    $ gh issue list
    
  • Ver uma Issue:

    $ gh issue view
    
  • Verificar seu status de Issues:

    $ gh issue status
    

    GIF exemplificando o uso do comando

Considerações finais

Com certeza é uma ferramenta sensacional, que, se bem usada nos poupa bastante tempo.

Caso tenham dúvidas, sintam-se a vontade para me contatar via Twitter 😉