我尝试使用gh
查询GitHub API,并使用返回的JSON给予一个与我的搜索匹配的存储库列表,并针对每个存储库,我需要一个需要编辑的文件名列表。
我可以像这样从API中获取一个仓库列表:
gh api --method=GET "search/code?q=some-specific-string" | jq -r '[.items[] | { ( .repository.full_name ) : .path}]'
字符串
这给了我这样的结果:
[
{
"org-name/helm-charts": [
"README.md"
]
},
{
"org-name/repo-name": [
"file-name-1.py"
]
},
{
"org-name/repo-name": [
"file-name-2.py"
]
}
]
型
我试图找到正确的方法来获取结果并合并它们,这样就不会有重复的仓库名称,并且它们的列表被连接起来。所以我得到了这样的结果:
[
{
"org-name/helm-charts": [
"README.md"
]
},
{
"org-name/repo-name": [
"file-name-1.py",
"file-name-2.py"
]
}
]
型
我该如何用jq
做到这一点呢?我试图寻找解决方案,但如何表达我试图做的事情却让我不知所措。
1条答案
按热度按时间wfypjpf41#
您甚至可以使用
reduce
而不是Map将所有内容收集到一个对象中:个字符
如果你想拥有一个单独的、单字段对象的数组,追加
to_entries | map([.] | from_entries)
来排序它们。