Referencia
Política de interactividad
gh ya hace lo correcto en contextos no TTY: omite el paginador, elimina el color ANSI y falla rápidamente con un mensaje útil en lugar de preguntar (p. ej., must provide --title and --body when not running interactively). No es necesario configurar defensivamente GH_PAGER o pasar --no-pager (no existe tal indicador).
Análisis de JSON
La salida legible de gh está formateada en columnas. Si deseas datos estructurados:
- Agrega
--json campo1,campo2,...para obtener salida estructurada. - Ejecuta un comando con
--jsony sin lista de campos para imprimir el conjunto completo de campos disponibles, luego elige lo que necesitas. - Usa
--jq '<expresión>'para filtrar sin tener que canalizar a través de unjqseparado. - Usa
--template '<plantilla-go>'(junto con--json) cuando quieras una salida de texto con formato. Ten en cuenta que--template/-Tcolisiona con una indicador de plantilla de cuerpo en algunos comandos (p. ej.,gh pr create -T,gh issue create -T); siempre verifica--helpantes de asumir cuál estás usando.
Paginación y truncamiento silencioso
Los comandos de lista limitan los resultados.
gh issue list,gh pr list,gh search ...: pasa-L N(--limit N). El valor predeterminado suele ser 30.gh issue list/gh pr listno exponen totales agregados comototalCounta través de--json. Si necesitas un total real, usagh api graphqlpara consultartotalCount; de lo contrario, trata-Lcomo el límite para la llamada actual.- Para llamadas a la API sin formato, usa
gh api --paginate <ruta>. Combínalo con--jqy (opcionalmente)--slurppara ensamblar un solo array.
Selección de repositorio
gh infiere el repositorio a partir de los remotos git del directorio de trabajo actual.
Pasa --repo PROPIETARIO/REPO (-R) para anular el repositorio resuelto del CWD.
Búsqueda vs listado
gh search issues|prs|code|repos|commits|usersutiliza el índice de búsqueda de GitHub y acepta la sintaxis de búsqueda completa (is:open,author:,label:,repo:propietario/nombre,in:title, ...). Pasa toda la consulta como una sola cadena entre comillas, de la misma manera que lo harías con--search:gh search issues "is:open author:foo repo:cli/cli". Prefiérelo para cualquier cosa entre repositorios o filtrada por autor/etiqueta.gh issue list --search "..."ygh pr list --search "..."aceptan la misma sintaxis pero están limitados a un solo repositorio.
Recurrir a gh api para cualquier cosa que --json no exponga
A veces los datos útiles no están en los comandos tipados. Ejemplos:
- Comentarios de hilos de revisión en un PR:
gh api repos/{propietario}/{repo}/pulls/{n}/comments(la indicador--commentsengh pr viewsolo muestra comentarios a nivel de issue). - GraphQL arbitrario:
gh api graphql -f query='...' -F var=valor. - Atajos REST:
gh api repos/{propietario}/{repo}/...- ten en cuenta que el marcador de posición{propietario}/{repo}se completa automáticamente cuando se ejecuta desde un repositorio con remotos detectados; pásalos literalmente si deseas determinismo.
Autenticación
gh auth statusimprime el/los host(s) activo(s), el usuario y qué variable de entorno (si hay alguna) se está tomando en cuenta.gh auth status --jsones compatible.
Otras notas
gh pr checkout <n>cambia de rama. Usagh pr diff <n>ogh pr view <n>si solo necesitas leer.- Se respetan
NO_COLOR,CLICOLOR_FORCEyGH_FORCE_TTY. EstableceGH_FORCE_TTY=1si deseas salida estilo TTY (colores, tablas, el paginador, interactividad) dentro de un entorno de agente; déjalo sin establecer a menos que sea necesario.