我有 200 多个 GitHub 存储库,其中一个启用了 GitHub Pages,域名属于我。
现在我想重做该网站,然后将该域名分配给新存储库的 GitHub Pages。
唯一的问题是我一生都无法弄清楚我的无数存储库中的哪一个与该域名链接。
我该如何解决这个问题?
如果您碰巧在存储库的“关于”部分中设置了“网站”设置,您可以使用 GitHub CLI 来解决这个问题:
gh repo list \
--limit 500 --json name,homepageUrl --jq 'map(select(.homepageUrl != ""))'
这会向您显示设置了主页的所有存储库的列表。
但是,这是手动启用的设置,您可以在其中放置任何 URL,因此它可能不会返回有用的结果。
在这种情况下,您可以迭代每个存储库,并尝试通过 REST API 请求 Pages 站点。如果成功,就会有一个与该存储库关联的页面。
此代码片段执行此操作,抑制对
/pages
端点的调用的所有输出;删除 &> /dev/null
以查看所有输出。
while IFS= read -r repo; do
if gh api "repos/$repo/pages" &> /dev/null; then
pages+=("$repo")
fi
done < <(gh repo list \
--limit 500 --json nameWithOwner --jq 'map(.nameWithOwner)[]')
printf '%s\n' "${pages[@]}"