GitHub CLI es una interfaz de línea de comandos que proporciona una forma eficiente de interactuar con GitHub directamente desde la terminal. Con GitHub CLI, los usuarios pueden realizar diversas operaciones, como la creación de repositorios, la gestión de problemas y la revisión de solicitudes de extracción, todo ello sin salir del entorno de la línea de comandos. Esta herramienta potente y versátil simplifica las tareas comunes de GitHub, ofreciendo una experiencia fluida para los desarrolladores que prefieren trabajar desde la terminal.

¿Qué es Github CLI?

Github CLI o gh es un programa de linea de comandos (CLI), el cual nos permite hacer pull requests, issues y ejecutar otras funcionalidades de Github desde la terminal.

En la practica este es otro comando que podemos utilizar despues de ejecutar los comandos tipicos de git.

Instalación de Github CLI

Este CLI esta disponible para Windows, Linux y Mac.

Una vez instalado, si estas en Windows, recuerda cerrar la terminal y volver a abrirla, para que reconozca el nuevo comando

Comprovar la version

gh --version

Ver la ayuda

gh --help

Autenticarse con Github CLI

Puedes ver la lista de los comandos relacionados a la autenticación con:

gh auth

Login

para logearse ejecuta:

gh auth login
  • Puedes logearte con:
  • Cuenta personal de Github
  • https
  • SSH
  • Authenticate with Credentials? true
  • Open in Browser

En ambos casos te pedira un codigo que te mostrara la consola. Una vez lo coloques, ya estaras logeado desde consola.

Para comprobar el Estado del login

gh auth status

Cerrar sesion de Github CLI

gh auth logout

Config

gh config --help

Obtener la configuracion

gh config get git_protocol

Listars todas las configuraciones

gh config list

Cambiar configuraciones

gh config set editor vim
gh config set editor "code --wait"
gh config set git_protocol ssh
gh config set prompt disabled

Gist

gh gist
gh gist --help

Listar todos tus Gist

gh gist list
gh gist list --help
gh gist list --limit 2
gh gist list --public
gh gist list --secret
gh gist list --public --limit 2

Crea un Gist

por defecto al crear un Gist, este es privado:

Para crear tu primer gist necesitas primero un archivo. Asi que crea un archivo con el nombre por ejemplo example.js coloca algo de codigo y ejecuta lo siguiente para poder crear un gist con esta porcion de código:

gh gist create example.js

Si listas ahora tus Gists, veras que tienes un nuevo gist privado.

Crear Gist Publico

gh gist create --public example.js

Crear gist y abrir en el navegador

gh gist create index.html --web
gh gist create index.html -w

Gist con descripcion

tambien podemos añadir una descripción a un gist. este vendria a ser el nombre que veriamos en lugar del nombre del archivo.

gh gist create hello.py -d "my first hello world with python"

Crea un Gist con multiples archivos

gh gist create program1.py program2.py
gh gist create program1.py program2.py -d "my awesome program"

al momento de listar con gh gist list, veras que ahora dice que tiene 3 archivos. Tambien si usas el comando gh gist view podras ver por consola los 3 archivos

Tambien puedes crear un git con una entrada estandar

gh gist create -

empieza a escribir, luego escribe Ctrl+D para finalizar tu entrada estandar.

Crea un Gist desde la salida de otro comando

cat hello.txt | gh gist create 

Ver un solo Gist

Puedes verlo con el comando view:

gh gist view <ID o URL>
gh gist view https://gist.github.com/a378da9a9206073c2a251d7f04f37fab
gh gist view a378da9a9206073c2a251d7f04f37fab

Eliminar Gist

para eliminar un gist

gh gist delete <ID o URL>

Repositorios

Para ver la lista completa de comandos que podemos hacer con los repositorios:

gh repo --help

Listar Repositorio

gh repo list

Crear Repositorio

Por ejemplo para crear un repositorio privado:

gh repo create myproject --private --source=.
gh repo create myproject --public --source=.
# gh repo create myproject --private --source=. --remote=upstream

Luego de esto solo tendrias que ejecutar un push:

git push origin master

Ver repositorio

gh repo view --help
gh repo view youruser/yourepo

para abrir tu repositorio en la web:

gh repo view youruser/yourepo --web

clonar

Desde la web, en code, tienes la opcion con github cli

gh repo clone FaztTech/nodejs-imgshare
gh repo view

Issues

gh issue --help
gh issue list

listar solo con etiquetas:

gh issue list --label "bug"
gh issue list --label "enhacement"

para ver a quien que usuarios tienen asignados algunos issues: gh issue list --assignee "fazttech"

para abrir un issue, ej: numero 11

gh issue view "11"

para crear un issue:

gh issue create

gh issue status

Pull Requests

gh pr --help
gh pr list
gh pr status
gh pr checkout
gh pr checkout "9"

abre en el navegador

gh pr view "9"

crea un commit en tu codigo, luego para enviar un pull request:

gh pr create
gh pr list --state "merge"

Desinstalar Github CLI

winget uninstall Github.cli