GitHub CLI 1.0
Este pasado mes de septiembre ha venido cargado de novedades, sobre todo relacionadas con GitHub, y es que este popular servicio no para de evolucionar y ofrecer nuevas soluciones para sus más de 50 millones de usuarios. En esta ocasión, toca hablar sobre GitHub CLI 1.0, un nuevo CLI que puedes integrar en tu terminal y empezar a trabajar con GitHub de una forma más eficiente.
Let's start
Para empezar a trabajar con este CLI debemos instalar en nuestra máquina la versión de acorde a nuestro Sistema Operativo:
- macOS
- Homebrew
brew install gh
- MacPorts
sudo port install gh
- Homebrew
- Linux
- Homebrew
brew install gh
- Homebrew
- Windows
- Chocolatey
choco install gh
- Signed MSI installer
- Chocolatey
Una vez está completada la instalación, abrimos una nueva sesión de Terminal y podemos verificar que el proceso ha ido bien comprobando la versión instalada con el comando gh version
.
Como es la primera vez que interactuamos con el CLI, debemos autenticarnos, para ello tenemos tres posibilidades, dependiendo de cuál sea nuestro caso, podemos autenticar:
- De forma interactiva
- Mediante un token
- Con un hostname de un servidor específico de GitHub Enterprise
Para este ejemplo, utilizaremos la autenticación interactiva, mediante estos pasos:
- Escribimos en el terminal
gh auth login
- Seleccionamos si conectamos a GitHub.com o GitHub Enterprise Server
- Login con web browser
- Copiamos el código de un sólo uso y pulsamos enter
- Accedemos a la página de activación del dispositivo y pegamos el código (si no estás previamente autenticado te solicitará login la página de GitHub)
- Autorizamos los permisos solicitados
- Cerramos la ventana del navegador y volvemos al terminal. La autenticación está completa, pulsamos enter.
- Seleccionamos el protocolo de vuestra preferencia y aquí finalizamos la autenticación
Let's play
Ya hemos realizado la autenticación, aunque son varios pasos, el proceso es bastante ágil, quizás no es comparable a otros módulos de PowerShell que únicamente te piden realizar el challenge de autenticación bien interactivo o bien por dispositivo, y se queda todo configurado, pero este proceso tampoco resulta excesivamente complicado.
Si visualizamos la ayuda del CLI con el comando gh help
podemos visualizar el listado completo de comandos, y si accedemos a algún comando o subcomando con --help
podemos ver la ayuda asociada y ejemplos de uso de ese método. En la siguiente imagen, obtenemos la ayuda para ver cómo visualizar un repo.
Cómo crear un nuevo repo
Ahora vamos a crear uno nuevo mediante el CLI. Mediante gh repo create
podemos realizar la creación de un nuevo repositorio. Una vez ejecutado el comando, nos solicita la visibilidad de este, en este caso público y continuamos con la creación. Después nos dice si queremos crear una carpeta en nuestro equipo para este repo, le indicamos que sí también, de esta forma creamos y ya tenemos clonado el repositorio en local.
Comandos
A continuación, el listado de comandos core de este CLI.
Command | Subcommand | Description |
---|---|---|
gist | create | Create a new gist |
gist | edit | Edit one of your gists |
gist | list | List your gists |
gist | view | View a gist |
issue | close | Close issue |
issue | create | Create a new issue |
issue | list | List and filter issues in this repository |
issue | reopen | Reopen issue |
issue | status | Show status of relevant issues |
issue | view | View an issue |
pr | checkout | Check out a pull request in git |
pr | checks | Show CI status for a single pull request |
pr | close | Close a pull request |
pr | create | Create a pull request |
pr | diff | View changes in a pull request |
pr | list | List and filter pull requests in this repository |
pr | merge | Merge a pull request |
pr | ready | Mark a pull request as ready for review |
pr | reopen | Reopen a pull request |
pr | review | Add a review to a pull request |
pr | status | Show status of relevant pull requests |
pr | view | View a pull request |
release | create | Create a new release |
release | delete | Delete a release |
release | download | Download release assets |
release | list | List releases in a repository |
release | upload | Upload assets to a release |
release | view | View information about a release |
repo | clone | Clone a repository locally |
repo | create | Create a new repository |
repo | fork | Create a fork of a repository |
repo | view | View a repository |
Además de estos comandos, disponemos también de estos otros adicionales:
Command | Description |
---|---|
alias | Create command shortcuts |
api | Make an authenticated GitHub API request |
auth | Login, logout, and refresh your authentication |
completion | Generate shell completion scripts |
config | Manage configuration for gh |
help | Help about any command |
Conclusiones
Este CLI, aunque apenas acaba de salir, nos permite interactuar con GitHub de una forma muy sencilla, sin necesidad de estar navegando por el sitio web. Podemos realizar las mismas operaciones de forma controlada, y lo que es mejor podemos automatizar procesos.
Además de poder trabajar con todo lo que nos ofrece GitHub, también podemos configurar alias para crear nuestra propia colección de comandos que sirvan como acceso directo a otras operaciones, por ejemplo, usos sobre la API de GitHub, acelerando así, el acceso a rutinas que realizamos habitualmente.