使用gh cli的--template选项展示嵌套表格遇问题
解决gh CLI展示合并PR标签与信息的格式问题
修正后的命令
要实现每个PR的编号、标题与对应标签同行展示,且完整列出所有标签,使用以下命令:
gh pr list --state merged --json number,title,labels --template '{{range .}}PR #{{.number}}: {{.title}} | 标签: {{range $i, $label := .labels}}{{if $i}}, {{end}}{{$label.name}}{{end}} {{end}}'
问题原因分析
你之前的命令出现两个问题,根源都是模板处理不当:
- PR编号集中显示:模板中PR编号的输出逻辑没有嵌套在PR对象的循环块内,导致所有编号一次性输出,而非每个PR对应一行。
- 每个PR仅显示一个标签:PR的
labels是数组类型,直接输出{{.labels.name}}只会提取数组第一个元素的名称,没有遍历整个标签数组。
模板逻辑解析
{{range .}}...{{end}}:遍历返回的每一个合并PR对象,确保每个PR的信息单独占一行。{{range $i, $label := .labels}}...{{end}}:遍历当前PR的所有标签,{{if $i}}, {{end}}用来在标签之间添加逗号分隔,避免开头出现多余的逗号。- 所有字段(编号、标题、标签)都嵌套在PR循环内,保证对应关系正确。
可选格式优化
如果希望标签显示更规整,比如用方括号包裹,可以调整模板:
gh pr list --state merged --json number,title,labels --template '{{range .}}PR #{{.number}}: {{.title}} | 标签: [{{range $i, $label := .labels}}{{if $i}}, {{end}}{{$label.name}}{{end}}] {{end}}'
内容的提问来源于stack exchange,提问作者Mayank
相关产品推荐
相关产品推荐

