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

如何配置Homebrew formula从SSO保护的私有GitHub下载安装包

无需自定义下载器的解决方法

你遇到的SHA256不匹配是因为Homebrew的默认请求未通过SSO认证,被重定向到了登录页面,返回的HTML内容和预期的压缩包哈希不一致,最简单的解决方法不需要修改下载器,直接利用Homebrew原生的GitHub认证能力:

  • 第一步:所有使用该Formula的用户在企业GitHub实例创建拥有repo读取权限的个人访问令牌(PAT)
  • 第二步:配置Homebrew识别企业GitHub实例的认证信息,执行以下命令(或者加入shell配置文件持久化):
# 配置企业GitHub的PAT
git config --global github.my.company.token <你的企业GitHub PAT>
# 配置Homebrew的GitHub API地址为企业实例
export HOMEBREW_GITHUB_API_HOST=github.my.company
# 也可以直接把PAT写入Homebrew环境变量
export HOMEBREW_GITHUB_API_TOKEN=<你的企业GitHub PAT>

配置完成后重新执行brew install即可,Homebrew会自动在请求企业GitHub资源时携带认证信息,不会被重定向到登录页。

另外你提供的Formula代码存在两处语法问题需要先修正:

  1. ARM架构的if Hardware::CPU.arm?代码块没有闭合
  2. ARM架构的下载地址错误填写了x86架构的包路径
自定义下载器实现示例

如果上面的原生认证方案不满足你的场景,可以通过自定义Curl下载策略的方式注入SSO认证逻辑,修改后的Formula代码如下:

# 自定义下载策略,自动携带GitHub PAT认证头
class EnterpriseGithubDownloadStrategy < CurlDownloadStrategy
  def _fetch(*)
    # 从环境变量或者git配置读取企业GitHub PAT
    pat = ENV["HOMEBREW_ENTERPRISE_GITHUB_TOKEN"] || `git config --global github.my.company.token`.chomp
    raise "请设置HOMEBREW_ENTERPRISE_GITHUB_TOKEN环境变量或者配置git config github.my.company.token为你的企业GitHub PAT" if pat.empty?
    # 注入Authorization头
    @headers["Authorization"] = "token #{pat}"
    super
  end
end

class MyMvn < Formula
  desc "CLI tool to do maven operations"
  homepage "https://github.my.company/myorg/my-mvn"
  version "1.2.6"
  # 指定使用自定义下载策略
  download_strategy EnterpriseGithubDownloadStrategy

  on_macos do
    if Hardware::CPU.arm?
      url "https://github.my.company/myorg/my-mvn/releases/download/v1.2.6/my-mvn_1.2.6_Darwin_arm64.tar.gz"
      sha256 "这里替换为arm64包的实际SHA256值"
    end
    if Hardware::CPU.intel?
      url "https://github.my.company/myorg/my-mvn/releases/download/v1.2.6/my-mvn_1.2.6_Darwin_x86_64.tar.gz"
      sha256 "d23869c3248d35d51d0b7eded53c93ebb16b9c213fa1cf9b8f736e851f8985dd"
    end
  end

  def install
    bin.install "my-mvn"
  end

  depends_on "maven"

  test do
    system "#{bin}/my-mvn help"
  end
end

使用该Formula时,用户只需要提前配置好企业GitHub的PAT即可正常下载安装。

内容的提问来源于stack exchange,提问作者Kumar Gaurav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:06:03