SetValue.NETSetValue.NET

GitHub CLI 1.0

October 24, 2020

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
  • Linux
    • Homebrew brew install gh
  • Windows
    • Chocolatey choco install gh
    • Signed MSI installer

GitHub CLI Install

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.

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:

  1. Escribimos en el terminal gh auth login
  2. Seleccionamos si conectamos a GitHub.com o GitHub Enterprise Server
  3. Login con web browser
  4. Copiamos el código de un sólo uso y pulsamos enter

Copy your one-time code

  1. 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)

Device Activation

  1. Autorizamos los permisos solicitados

Authorization

  1. Cerramos la ventana del navegador y volvemos al terminal. La autenticación está completa, pulsamos enter.
  2. Seleccionamos el protocolo de vuestra preferencia y aquí finalizamos la autenticación

Auth completed

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.

gh repo view --help

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.

gh repo create

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.

Buy Me A Coffee