GitHubCLI使用技能Skill gh

此技能用于通过GitHub CLI命令行工具管理和自动化GitHub操作,包括拉取请求创建与审查、问题跟踪、发布管理、仓库操作和API访问。关键词:GitHub CLI, gh, 命令行工具, 自动化工作流, DevOps, CI/CD集成, GitHub API, 版本控制, 软件开发工具

DevOps 0 次安装 0 次浏览 更新于 3/18/2026

名称: gh 描述: 此技能应用于使用GitHub CLI (gh)处理拉取请求、问题、发布和GitHub自动化。当用户提到gh命令、GitHub工作流、PR操作、问题管理或GitHub API访问时使用。对于理解gh的心智模型、命令结构以及与git工作流的集成至关重要。

GitHub CLI (gh)

概述

GitHub CLI (gh) 是GitHub的官方命令行工具,将拉取请求、问题、发布和其他GitHub概念带到终端。此技能提供使用gh简化GitHub工作流的全面指导,包括PR管理、问题跟踪、仓库操作和API访问。

何时使用此技能

在以下情况下调用此技能:

  • 用户提到GitHub CLI (gh) 命令或工作流
  • 询问如何从命令行创建、查看或管理拉取请求
  • 需要通过CLI帮助GitHub问题管理
  • 想要理解gh的心智模型或命令结构
  • 请求GitHub自动化或脚本编写指导
  • 询问通过gh访问GitHub API
  • 需要gh身份验证或配置帮助
  • 请求gh、git和其他工具(如erk)的集成模式

核心概念

在提供指导之前,理解以下关键概念:

三层架构:

  1. 高级命令 (porcelain):gh prgh issuegh repo - 用户友好的工作流
  2. API访问gh api - 直接REST/GraphQL访问,内置身份验证
  3. Git集成:从git远程仓库自动检测仓库,并使用当前分支

上下文解析:

  • gh 自动从git远程仓库检测仓库
  • 使用当前分支推断PR上下文
  • 当不明确时回退到交互式选择

心智模型:gh视为“GitHub工作流CLI原生” - 每个命令映射到优化终端使用的常见GitHub工作流。

使用参考文档

在提供gh指导时,加载全面的参考文档:

references/gh.md

此参考包含:

  • 完整的心智模型和术语
  • PR、问题、仓库、发布等的完整命令参考
  • 身份验证和配置模式
  • 常见场景的工作流模式
  • 集成细节(erk、git、CI/CD)
  • GitHub API访问模式
  • 日常开发的实用示例

加载策略:

  • 当用户询问gh相关问题时,总是加载references/gh.md
  • 参考文档全面(约1480行),但优化为渐进式阅读
  • 需要时使用grep模式查找特定部分:
    • gh pr - 拉取请求命令
    • gh issue - 问题管理命令
    • gh repo - 仓库操作
    • gh api - API访问模式
    • Pattern [0-9]: - 工作流模式
    • Authentication - 身份验证设置
    • erk Integration - 与erk的集成

常见操作

当用户请求gh帮助时,使用以下模式指导他们:

首次设置

  1. 检查gh是否安装:gh --version
  2. 身份验证:gh auth login(交互式)或gh auth status(检查当前)
  3. 配置默认值:gh config set <key> <value>
  4. 测试连接:gh repo view(在git仓库中)

拉取请求操作

加载references/gh.md并搜索“gh pr”部分以提供:

  • 创建PR:gh pr create(交互式或使用标志)
  • 查看PR:gh pr viewgh pr list
  • 检出PR:gh pr checkout <number>
  • 审查PR:gh pr reviewgh pr diff
  • 合并PR:gh pr merge
  • PR状态检查:gh pr checks

问题管理

加载references/gh.md并搜索“gh issue”部分以提供:

  • 创建问题:gh issue create
  • 列出问题:gh issue list(带过滤器)
  • 查看问题:gh issue view <number>
  • 更新问题:gh issue editgh issue close
  • 问题分配和标签

仓库操作

加载references/gh.md并搜索“gh repo”部分以提供:

  • 查看仓库:gh repo view
  • 克隆仓库:gh repo clone
  • 创建仓库:gh repo create
  • 分叉仓库:gh repo fork
  • 仓库设置和可见性

API访问

加载references/gh.md并搜索“gh api”部分以提供:

  • REST API调用:gh api <endpoint>
  • GraphQL查询:gh api graphql -f query='...'
  • 分页处理
  • 使用--jq进行JSON处理
  • 身份验证细节

对于高级GraphQL用例,加载references/graphql.md

  • 项目V2管理(无REST API存在)
  • 讨论API操作
  • 跨多个仓库的批量查询
  • 复杂嵌套数据检索
  • 高级问题搜索
  • 参见下面的GraphQL API参考部分

发布管理

加载references/gh.md并搜索“gh release”部分以提供:

  • 创建发布:gh release create
  • 列出发布:gh release list
  • 下载资产:gh release download
  • 上传资产:gh release upload

工作流指导

当用户描述其工作流需求时,将其映射到参考中的模式:

模式1:日常PR工作流 - 创建、审查、合并PR 模式2:问题分类 - 列出、过滤和管理问题 模式3:发布自动化 - 脚本化发布创建和资产管理 模式4:PR检查和状态 - 监控CI/CD和审查状态 模式5:多仓库操作 - 跨多个仓库工作 模式6:GitHub API脚本编写 - 自动化复杂GitHub工作流 模式7:代码审查工作流 - 从命令行审查PR

根据用户需求从references/gh.md加载适当的模式部分。

输出格式化

当用户需要解析或格式化gh输出时:

  1. references/gh.md加载输出格式化部分
  2. 解释格式选项:--json--jq--template
  3. 显示JSON字段选择:gh pr list --json number,title,state
  4. 演示jq过滤:gh api /repos/{owner}/{repo}/pulls | jq '.[] | select(.draft==false)'
  5. 提供自定义输出的模板示例

身份验证和配置

当用户需要身份验证或配置帮助时:

  1. references/gh.md加载身份验证与配置部分
  2. 区分:
    • 身份验证:gh auth login、令牌管理
    • 配置:gh config set、每命令默认值
  3. 解释身份验证方法:浏览器、令牌、SSH
  4. 显示常见配置设置:git_protocoleditorpager
  5. 处理多个账户和企业实例

集成指导

Erk集成

当用户提到erk或工作树工作流时:

  • references/gh.md加载Erk集成部分
  • 解释gh如何在工作树中检测仓库
  • 显示跨多个工作树的PR操作
  • 指导在需要时使用--repo标志
  • 参考erk文档以获取工作树特定模式

Git集成

当用户需要理解gh + git工作流时:

  • references/gh.md加载Git集成部分
  • 解释从git远程仓库的仓库检测
  • 显示当前分支如何影响PR命令
  • 演示组合的git + gh工作流
  • 澄清何时使用git与gh命令

CI/CD集成

当用户想要将gh与CI/CD集成时:

  • references/gh.md加载CI/CD模式
  • 显示CI环境中的身份验证:GH_TOKEN
  • 提供自动化PR创建/合并的示例
  • 演示状态检查监控
  • 指导发布自动化

脚本编写和自动化

当用户想要脚本化GitHub工作流时:

  1. references/gh.md加载脚本编写部分
  2. 显示如何在shell脚本中使用gh
  3. 演示错误处理:--jq、退出代码
  4. 解释大数据集的分页
  5. 提供常见自动化模式的示例:
    • 跨PR/问题的批量操作
    • 自定义通知
    • 发布工作流
    • 仓库管理

高级功能

当用户需要高级功能时:

  1. 别名:通过gh alias set自定义命令
  2. 扩展:第三方gh扩展
  3. GraphQL:超越REST API的复杂查询(参见GraphQL API参考
  4. Webhooks:通过API触发工作流
  5. GitHub Actions:通过gh workflow与工作流交互

为每个高级功能从references/gh.md加载相关部分。

GraphQL API参考

当标准gh命令不足时,通过gh api graphql使用GraphQL。加载references/graphql.md以获取全面的GraphQL指导。

何时使用GraphQL:

当porcelain命令(gh prgh issue等)无法完成任务时使用GraphQL:

  • 项目V2:无REST API存在 - 所有操作都需要GraphQL

    • 创建/更新项目
    • 添加项目和更新字段值
    • 查询自定义字段和项目数据
  • 讨论:无porcelain命令可用

    • 创建/管理讨论
    • 添加评论和回复
    • 查询讨论类别
  • 批量操作:在一个API调用中查询多个资源

    • 比较多个仓库
    • 跨仓库聚合数据
    • 减少速率限制消耗
  • 复杂查询:高效获取嵌套数据

    • 一个调用中包含审查、评论和状态检查的PR
    • 包含时间线、反应和链接PR的问题
    • 包含开放问题、PR和贡献者的仓库
  • 高级搜索:超越基本命令的复杂过滤

    • 多标准问题/PR搜索
    • 布尔逻辑和日期范围
    • 高级排序选项
  • 自定义字段:精确字段选择

    • 仅请求所需字段
    • 优化性能
    • 构建自定义数据聚合

GraphQL资源:

  • references/graphql.md - 完整的GraphQL指南,包括:

    • 需要GraphQL的用例
    • 常见模式(变量、分页、批处理等)
    • 完整示例(项目V2、讨论、批量查询)
    • 最佳实践和故障排除
  • references/graphql-schema-core.md - 核心模式类型(仅在需要时加载):

    • 仓库、问题、拉取请求等的详细字段信息
    • 项目V2字段类型和突变
    • 讨论类型和操作
    • 输入类型和枚举

加载策略:

  1. references/graphql.md开始,了解用例和模式
  2. 仅在需要详细模式信息时加载references/graphql-schema-core.md
  3. 使用grep模式查找特定部分:
    • Projects V2 - 项目自动化示例
    • Discussion - 讨论API示例
    • Batch - 批量查询模式
    • Pagination - 基于游标的分页
    • Example [0-9] - 完整工作示例

速率限制和API后端

当用户遇到速率限制问题或需要优化API使用时:

  1. 加载references/api-backend-audit.md以获取完整的命令到API映射
  2. 理解差异:
    • REST:5,000请求/小时,按请求计数
    • GraphQL:5,000点/小时,基于查询复杂性成本
    • 搜索:30请求/分钟(单独限制)
  3. 关键见解:
    • PR/问题命令使用GraphQL(查询成本可变)
    • Run/Workflow/Gist命令使用REST(可预测成本)
    • 项目命令仅需要GraphQL
    • 搜索总是使用REST,限制更严格
  4. 检查当前限制:gh api rate_limit --jq '.resources'

故障排除

当用户遇到问题时:

  1. 检查身份验证:gh auth status
  2. 验证仓库检测:gh repo view
  3. 测试API访问:gh api user
  4. 审查配置:gh config list
  5. 检查速率限制:gh api rate_limit
  6. 启用调试模式:GH_DEBUG=api gh <command>

references/gh.md加载故障排除部分以获取特定错误模式。

命令发现

当用户询问“gh能做什么?”时:

  • 从主要命令概述开始:prissuereporeleaseworkflow
  • 显示命令帮助:gh <command> --help
  • 演示交互式模式:大多数命令以交互方式工作
  • 指向gh api以处理未覆盖的porcelain命令内容
  • 参考references/gh.md中的完整命令参考

资源

references/

  • gh.md - 全面的GitHub CLI心智模型和命令参考(约1480行)

    • 加载以获取所有标准gh命令指导
    • 完整的工作流模式和示例
    • 集成模式(erk、git、CI/CD)
  • graphql.md - GitHub GraphQL API全面指南(约1000行)

    • 当porcelain命令不足时加载
    • 需要GraphQL的用例(项目V2、讨论、批量查询)
    • 完整的模式和示例
    • 最佳实践和故障排除
  • graphql-schema-core.md - 核心GraphQL模式类型(约500行)

    • 仅在需要详细模式信息时加载
    • 核心类型的详细字段定义
    • 突变输入类型和示例
  • api-backend-audit.md - REST与GraphQL API后端审计(约850行)

    • 加载以理解命令使用哪种API类型
    • 速率限制指导和优化策略
    • 所有gh命令到其API后端的完整映射
    • 批量操作替代方案和缓存策略

这些参考应根据需要加载以确保准确、详细的信息。使用渐进式披露:从主参考开始,然后在需要时加载专门的GraphQL文档。