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"