Maurício Mutte
BlogAbout

Mais produtividade com GitHub CLI

O GitHub CLI é uma ferramenta que traz o GitHub para dentro do seu terminal. Com ele é possível utilizar recursos e executar ações no GitHub diretamente do terminal, de forma rápida e fácil. Você consegue pular de repositório em repositório sem sofrer com trocas de contextos.

Além das ações básicas (issues, pull requests, repos, etc) ainda é possível criar alias e utilizar a API do GitHub direto na CLI. Utilizando estes dois recursos você consegue criar automações específicas para a forma como você utiliza o GitHub.

Instalação

Na documentação oficial da CLI estão listadas as opções de instalação por ambiente. Tem suporte para Mac, Linux e Windows.

Se você utiliza o Homebrew como gerenciador de pacote, é possível instalar a CLI do Github rodando o comando:

brew install gh

Configuração

Para autenticar a CLI do Github, rode o comando:

gh auth login

Após, siga os passos para fazer o login e autorizar. O processo é simples e você será redirecionado para a web para finalizar o login.

Minha utilização

Criar pull request

gh pr create --web

Sem dúvidas é a funcionalidade que mais utilizo. Permite abrir uma pull request rapidamente sem a necessidade de abrir o navegador, acessar o Github, procurar o repositório…

Eu gosto de utilizar a flag --web para escrever a descrição da PR e marcar os reviewers/labels direto do navegador.

Pesquisar issues e PRs

gh browse [PR | Issue | File]

Encontre qualquer coisa dentro do seu repositório. Se você passar o ID ele vai identificar se é uma PR ou Issue e abrir no navegador. Se você escrever o path de um arquivo, ele é aberto no navegador.

Dica: com a ferramenta de autocomplete Fig.io ⚡️ a utilização desse comando fica ainda melhor.

Acompanhamento

gh status

Estou testando esse comando há pouco tempo. Ele mostra um resumo das atividades (menções, review request, etc) que sua conta está envolvida.

Criar gist a partir de um arquivo

gh gist create file.js --web

Outro comando que estou testando há pouco tempo. Ele não é utilizado tanto quanto os outros, mas facilita a criação do gist de um arquivo para compartilhar ou apenas salvar separadamente.

Criar e visualizar issues

gh issue create --title "I found a bug" --web
 
gh issue view 55

Essa é uma funcionalidade que mesmo sendo bem útil, acabo não utilizando sempre por não trabalhar tanto com issues. Se você costuma navegar por issues nos repositórios, vai ser de grande ajuda.

Criando alias

Como comentei, a CLI permite a criação de alias que serve de atalho para a execução de um ou mais comandos. Veja o exemplo:

gh alias set web 'repo view --web'
 
gh web

Veja mais na documentação sobre alias

Alguns dos meus alias

Para facilitar a criação, separei um Gist com alias que uso frequentemente. Vou explicar aqui como utilizo cada um deles.

Abrir repositório no navegador

gh web

Esse é um alias simples que criei apenas para abrir o repositório que estou trabalhando no navegador de forma rápida.

Atualizar ambientes

Esse é um alias um pouco mais complexo mas que me ajuda muito. O objetivo dele é atualizar as branches dos ambientes de teste e desenvolvimento com a branch atual que estou trabalhando.

Comando 1: busca as informaões da pull request da branch atual para retornar, no padrão esperado do próximo comando, o número e o título da PR.

gh prinfo

Comando 2: cria novas PRs para as branches de teste e desenvolvimento

gh prdevqa "#xxx" "feat: pull request title"

Referências