You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需使用GitHub API,如何用Bash检查公开GitHub仓库是否存在?

无需使用GitHub API,如何用Bash检查公开GitHub仓库是否存在?

嘿,这个需求我太懂了——之前用GitHub API查仓库频繁碰到限流问题,后来就琢磨出不用API的办法,给你分享两个实用的Bash方案:

方法一:通过HTTP状态码判断(基础版)

公开GitHub仓库存在的话,访问它的网页地址会返回200状态码,不存在则返回404。我们可以用curl只抓取状态码,不用下载整个页面,既高效又不会触发API限流:

check_public_github_repo() {
    # 接收两个参数:用户名和仓库名
    local username="$1"
    local repo_name="$2"
    local repo_page="https://github.com/${username}/${repo_name}"

    # 静默请求,丢弃页面内容,只输出HTTP状态码
    local status=$(curl -s -o /dev/null -w "%{http_code}" "${repo_page}")

    case "${status}" in
        200)
            echo "✅ 公开仓库 ${username}/${repo_name} 存在"
            return 0
            ;;
        404)
            echo "❌ 公开仓库 ${username}/${repo_name} 不存在"
            return 1
            ;;
        *)
            echo "⚠️ 检查失败,HTTP状态码:${status}(可能是网络问题或仓库权限限制)"
            return 2
            ;;
    esac
}

# 使用示例:检查octocat的Hello-World仓库
check_public_github_repo octocat Hello-World

方法二:支持仓库重定向的增强版

有些仓库可能被改名或转移,GitHub会返回301重定向到新地址。加上-L参数让curl跟随重定向,就能准确判断仓库是否存在:

check_public_github_repo_with_redirect() {
    local username="$1"
    local repo_name="$2"
    local repo_page="https://github.com/${username}/${repo_name}"

    # 跟随重定向,获取最终的HTTP状态码
    local status=$(curl -s -L -o /dev/null -w "%{http_code}" "${repo_page}")

    case "${status}" in
        200)
            echo "✅ 公开仓库 ${username}/${repo_name} 存在(或已重定向)"
            return 0
            ;;
        404)
            echo "❌ 公开仓库 ${username}/${repo_name} 不存在"
            return 1
            ;;
        *)
            echo "⚠️ 检查失败,HTTP状态码:${status}"
            return 2
            ;;
    esac
}

# 使用示例:检查一个可能重定向的仓库
check_public_github_repo_with_redirect old-username old-repo-name

注意事项

  • 这两个方法仅适用于公开仓库,私有仓库会返回404或403,无法区分“不存在”和“私有”;
  • 如果遇到网络波动或GitHub服务器故障,会返回5xx类状态码,函数里已经做了容错提示;
  • curl的-s参数是静默模式,避免输出多余的连接信息,让脚本更干净。

备注:内容来源于stack exchange,提问作者a.t.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 11:18:00