A
OpenAI lançou recentemente o
Codex versão web, que executa tarefas em seus repositórios Github e, ao final delas, envia Pull Requests (PRs) para os repositórios. Isso gerou a necessidade de aprovar esses PRs via linha de comando. Neste artigo, vamos aprender como fazer isso.
Resumo sobre o Codex
- O Codex é um modelo de linguagem treinado pela OpenAI, projetado para entender e gerar código.
- Ele pode ser usado para automatizar tarefas de programação, como escrever código, corrigir bugs e até mesmo gerar documentação.
- A versão web do Codex permite que os usuários interajam com o modelo diretamente em seus navegadores, facilitando a execução de tarefas em repositórios Github.
- Você basicamente terá o trabalho de conectar o Codex ao seu repositório Github e, a partir daí, pedir para que ele trabalhe em cima do seu código, crie novas funcionalidades, corrija bugs, etc. Ao final, ele enviará um PR para o seu repositório.
Instalando o Github CLI
E por que precisamos do Github CLI? Bom, eu sou um cara que prefere fazer tudo via linha de comando, e o Github CLI é uma ferramenta poderosa que permite interagir com o Github diretamente do terminal. Com ele, você pode aprovar PRs, criar issues, gerenciar repositórios e muito mais.
Uma descrição mais detalhada da ferramenta:
apt show gh
...
GitHub CLI, a ferramenta oficial de linha de comando do GitHub. GitHub CLI "gh" é o GitHub na linha de comando. Ele traz pull requests, issues e outros conceitos do GitHub para o terminal, onde você já está trabalhando com git e seu código.
O GitHub CLI está disponível para repositórios hospedados no GitHub.com e no GitHub Enterprise Server 2.20+, e para instalar no macOS, Windows e Linux.
Comparação com hub:
Por muitos anos, hub (https://github.com/github/hub) foi a ferramenta não oficial de CLI do GitHub. gh é um novo projeto que nos ajuda a explorar como pode ser uma ferramenta oficial de CLI do GitHub com um design fundamentalmente diferente.
Enquanto ambas as ferramentas trazem o GitHub para o terminal, hub age como um proxy para o git, e gh é uma ferramenta independente. Confira a explicação mais detalhada em https://github.com/cli/cli/blob/trunk/docs/gh-vs-hub.md para aprender mais.
Para instalar o gh no Ubuntu, Debian ou derivados, você pode usar o seguinte comando:
sudo apt install gh
Para instalar o gh no Fedora, CentOS ou derivados, você pode usar o seguinte comando:
sudo dnf install gh
Para instalar o gh no macOS, você pode usar o Homebrew:
brew install gh
Para instalar o gh no Windows, você pode usar o Chocolatey:
choco install gh
Autenticando o Github CLI
Após instalar o Github CLI, você precisa autenticá-lo com sua conta do Github. Para isso, execute o seguinte comando:
gh auth login
Isso abrirá um assistente interativo que guiará você pelo processo de autenticação. Você precisará escolher o tipo de autenticação (por exemplo, via navegador) e seguir as instruções para conceder acesso ao Github CLI.
Após a autenticação, você pode verificar se o Github CLI está configurado corretamente executando:
gh auth status
github.com
Logged in to github.com as fberbert (/home/fabio/.config/gh/hosts.yml)
Git operations for github.com configured to use https protocol.
Token: *******************
Codex Pull Request
Agora que você tem o Github CLI instalado e autenticado, pode começar a aprovar Pull Requests criados pelo Codex. Abaixo temos a captura de tela de uma tarefa que solicitei ao Codex, ele basicamente alterou 13 arquivos e criou um PR para o meu repositório.
Em vias normais, eu teria que ir até o Github, acessar o PR e aprová-lo manualmente. Mas com o Github CLI, posso fazer isso diretamente do terminal.
Aprovando Pull Requests
Certifique-se de que você está no diretório local do repositório onde o PR foi criado. A partir daqui você pode aprovar um PR, fazer um merge, rebaseme ou até mesmo fechar o PR, tudo isso diretamente do terminal.
Para aprovar um Pull Request usando o Github CLI, você pode usar o seguinte comando:
gh pr review <PR_NUMBER> --approve
Substitua `<PR_NUMBER>` pelo número do Pull Request que você deseja aprovar. Por exemplo, se o número do PR for 42, o comando seria:
gh pr review 42 --approve
Para descobrir o número do Pull Request, você pode listar todos os PRs abertos no repositório com o seguinte comando:
gh pr list
Showing 1 of 1 open pull request in fberbert/arc-custom-plugin
#1 Remove Contrato entity codex/analisar-repositório-e-descrever
No meu caso, o PR que o Codex criou foi o número 1, porém ele foi criado em meu nome, logo não é necessário aprová-lo, já posso fazer o merge diretamente.
gh pr merge 1 --merge
Se você quiser fazer um rebase antes de fazer o merge, pode usar o seguinte comando:
gh pr merge 1 --rebase
Se você quiser fechar o PR sem aprová-lo, pode usar o seguinte comando:
gh pr close 1
Se você quiser adicionar um comentário ao PR antes de aprová-lo, pode usar o seguinte comando:
gh pr comment 1 --body "Aprovando o PR criado pelo Codex"
Merge e Rebase
A diferença entre merge e rebase é que o merge cria um novo commit que combina as alterações do PR com o branch atual, enquanto o rebase aplica as alterações do PR no topo do branch atual, criando uma linha de histórico mais limpa.
O merge é útil quando você deseja manter o histórico completo das alterações, enquanto o rebase é útil quando você deseja manter um histórico linear e mais fácil de entender.
Eu geralmente uso o rebase quando estou trabalhando em um projeto sozinho ou quando quero manter o histórico limpo.
Atualizando o repositório local
Após fazer o merge do Pull Request, é uma boa prática atualizar seu repositório local para refletir as alterações feitas no repositório remoto. Você pode fazer isso com os seguintes comandos:
git fetch origin
git pull
Conclusão
A única coisa que tenho a dizer é... meus queridos, está cada vez mais fácil programar! Acredito que a IA ainda está muito longe de substituí-lo como desenvolvedor, mas se você não começar a utilizá-la como ferramenta de hiper-produtividade, você ficará para trás.