Skip to content

GitHub

授权

一切都会过去 gh 在引擎盖下。登录一次 gh auth login 并且代理继承相同的凭据 - 中没有特定于 GitHub 的 config ~/.omp/.

pr:// 和 issues:// URL

PR、问题和差异可以作为虚拟 Markdown 文件进行寻址。代理不会学习新的 GitHub 形状的 API;它通过相同的方式读取 URL read 打开本地文件的工具。读取数据通过软 TTL 和硬 TTL 进行缓存(github.cache.softTtlSec, github.cache.hardTtlSec)因此在会话中重新读取同一个项目永远不会两次访问网络。

网址它返回什么
issue://N会话默认存储库中的单个问题 - 标题、作者、标签、正文、线程评论。
issue://owner/repo/N跨存储库的完全合格的单一问题。
issue://N?comments=0没有讨论线程的问题正文。
pr://N单一公关视图;该页面指向匹配的 diff URL。
pr://N/diffPR 的更改文件列表,每行指向 pr://N/diff/<i>.
pr://N/diff/all完全统一的差异,hashline-可锚定,因此代理可以通过锚点引用一个大块。
pr://N/diff/3单个文件的差异(1-索引)。
pr://, issue://默认存储库中的最新项目;支持 ?state=open|closed|all (pr:// 也接受 merged), ?author=, ?label=, ?limit=.
sh
# read a PR and walk its diff
read pr://1234
read pr://1234/diff
read pr://1234/diff/2

# list recent open bugs in the current repo
read issue://?state=open&label=bug&limit=20

github 工具

一个基于操作的调度程序,可以处理除读取之外的所有事情。通过选择操作 op;每个操作都使用参数的子集。

操作它的作用
repo_view存储库元数据。可选 repobranch.
pr_create打开 PR。要么提供 title (以及可选的 body)或设置 fill: true 从提交中自动填充。接受 base, head, draft, reviewer[], assignee[], label[].
pr_checkout将一个或多个 PR 检查到专用的 git 工作树中。 pr 是数字、URL、分支或它们的数组。
pr_push将签出的 PR 分支推回其源。要求分支机构已通过以下方式获得 pr_checkout.
search_issuesGitHub 问题搜索语法。默认值 repo 到当前结帐。
search_prsGitHub PR 搜索语法。
search_codeGitHub 代码搜索语法。不支持日期过滤器。
search_commits跨 GitHub 提交搜索。 dateField 被忽略;总是使用 committer-date.
search_repos存储库搜索。使用查询限定符,例如 org:language: 而不是 repo.
run_watch观看操作运行。省略 run 观察当前 HEAD 提交的每次运行。在第一次检测到的作业失败时快速失败,内联返回尾部日志,并将完整的失败作业日志保存为会话工件。

搜索操作接受 sinceuntil 作为相对持续时间(3d, 12h, 2w, 1mo) 或 ISO 日期。两者都设置后,限定符就变成了一个范围。

阅读 PR

最快的路径是 URL 方案 — 无需检出,无需 shell:

sh
read pr://1234              # metadata + comments
read pr://1234/diff         # file list
read pr://1234/diff/all     # full unified diff

如果您想在本地运行 PR,请使用工作树工作流程 子代理’姐妹工具 pr_checkout:

sh
github op=pr_checkout pr=1234
# cd into the worktree, run tests, edit, then:
github op=pr_push

开设公关

sh
github op=pr_create \
  title="Fix login redirect after SSO" \
  body="Resolves #1198. Adds a regression test." \
  base=main \
  reviewer=["octocat","myorg/team-auth"] \
  label=["bug"]

# or autofill from the commit log
github op=pr_create fill=true draft=true