GitHub CLI 如何用 gh repo autolink create 配置外部跟踪系统的 Issue 自动链接?
【免费下载链接】cliGitHub’s official command line tool项目地址: https://gitcode.com/GitHub_Trending/cli/cli
当团队的 Issue、Pull Request、commit message 或 release 描述里写有外部跟踪系统(如 Jira 之类)的键值时,GitHub 的 autolink 功能可以让这些文本自动变成指向外部系统的链接。通过 GitHub CLI 的gh repo autolink create命令,可以不改网页设置页直接在仓库上创建这条自动链接规则。注意:autolink 的查看和管理都需要仓库admin角色,命令会在目标仓库上创建一条新记录。
命令格式与两个必需参数
命令语法为(new是它的别名):
gh repo autolink create <keyPrefix> <urlTemplate>两个位置参数都必须提供,否则命令会直接报错:
Cannot create autolink: keyPrefix and urlTemplate arguments are both requiredkeyPrefix:指定一个前缀,当该前缀后紧跟特定字符时就会生成链接。urlTemplate:keyPrefix被匹配到时生成的目标 URL,其中必须包含<num>变量,用来替换实际的引用编号。如果模板中出现多处<num>,只有第一处会被替换。
autolink 默认是 alphanumeric(字母数字)类型,加--numeric标志(短形式-n)则创建 numeric 类型。两种类型下<num>匹配的行为不同:
- alphanumeric:匹配
A-Z(不区分大小写)、0-9、-; - numeric:只匹配
0-9。
创建 alphanumerical 与 numeric 两种链接
命令帮助文档给出的两个示例分别覆盖了默认类型和 numeric 类型:
# Create an alphanumeric autolink to example.com for the key prefix "TICKET-". # Generates https://example.com/TICKET?query=123abc from "TICKET-123abc". $ gh repo autolink create TICKET- "https://example.com/TICKET?query=<num>" # Create a numeric autolink to example.com for the key prefix "STORY-". # Generates https://example.com/STORY?id=123 from "STORY-123". $ gh repo autolink create STORY- "https://example.com/STORY?id=<num>" --numeric这两条是文档示例,实际使用时把前缀和 URL 换成你自己跟踪系统的值即可;<num>是模板变量,不要替换成具体数字。
命令成功时,输出如下(其中 ID 和仓库名是实际值,下面以测试用例中的示例展示):
✓ Created repository autolink 1 on OWNER/REPO默认在"当前目录所在的仓库"上执行。不在 git 仓库目录内、或想操作其他仓库时,用--repo标志指定,格式为[HOST/]OWNER/REPO:
gh repo autolink create --repo OWNER/REPO TICKET- "https://example.com/TICKET?query=<num>"--repo也可以写成HOST/OWNER/REPO用于 GHES 等其他主机。
验证链接是否配置成功
创建成功后可以用list子命令确认。默认按表格输出ID、KEY PREFIX、URL TEMPLATE、ALPHANUMERIC四列;仓库没有任何 autolink 时会提示no autolinks found in OWNER/REPO:
gh repo autolink list --repo OWNER/REPO也可以只取keyPrefix字段做脚本化检查(acceptance 测试就是这样核对的):
gh repo autolink list --repo OWNER/REPO --json=keyPrefix --jq='.[].keyPrefix'输出包含TICKET-即说明配置已生效。
拿到 autolink 的 ID 后(可用list --json=keyPrefix,id查询),用view核对 URL 模板是否原样保存:
gh repo autolink view --repo OWNER/REPO <id> --json=urlTemplate --jq='.urlTemplate'<id>替换为你查到的数字 ID。此外,gh repo autolink list --web会在浏览器中打开仓库的settings/key_links页面,适合用网页再确认一遍。
常见报错
- 缺少参数:漏掉
keyPrefix或urlTemplate任一个,报Cannot create autolink: keyPrefix and urlTemplate arguments are both required。 - 权限不足:请求返回 404 时,CLI 会把错误信息改写为
Must have admin rights to Repository.。这对应文档说明的"autolink 需要 admin 角色",此时应找仓库管理员执行。 - 其他创建失败:会包装为
error creating autolink: <具体原因>。
收尾:删除这条 autolink
如果前缀配错或不再需要,用delete子命令删除(--yes跳过确认):
gh repo autolink delete --repo OWNER/REPO <id> --yes删除后再次运行list确认列表中不再出现该 ID。
完整的创建→验证→删除流程可参考仓库中的验收测试 acceptance/testdata/repo/repo-autolink.txtar,命令定义在 pkg/cmd/repo/autolink/create/create.go 和 pkg/cmd/repo/autolink/autolink.go。
【免费下载链接】cliGitHub’s official command line tool项目地址: https://gitcode.com/GitHub_Trending/cli/cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考