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

GitHub Workflow下载tj-actions/changed-files@v23.1报SSL连接失败

GitHub Workflow拉取tj-actions/changed-files报SSL连接错误排查

问题描述

配置GitHub Workflow实现变更文件检测时,工作流运行阶段无法下载tj-actions/changed-files@v23.1,两次重试后直接终止。
对应工作流配置如下:

test:
    runs-on: ubuntu-latest
    name: Test changed-files
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0  # 也可设置为2,仅拉取前序提交记录

      - name: Get changed file
        id: changed-files
        uses: tj-actions/changed-files@v23.1

      - name: List all changed files
        run: |
          for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
            echo "$file was changed"
          done

运行时抛出的核心报错:

警告:下载Action 'https://api.github.com/repos/tj-actions/changed-files/tarball/34a865a2b221bd60ec0d4c071f5e7a66ffdac88a'失败。错误:无法建立SSL连接,请查看内部异常。
警告:重试前将退避等待26.677秒。
警告:下载Action 'https://api.github.com/repos/tj-actions/changed-files/tarball/34a865a2b221bd60ec0d4c071f5e7a66ffdac88a'失败。错误:无法建立SSL连接,请查看内部异常。
警告:重试前将退避等待21.73秒。
错误:无法建立SSL连接,请查看内部异常。

核心诱因

  • 网络链路拦截:如果使用自建运行器,出口防火墙、透明代理设备拦截了GitHub API的HTTPS请求,SSL握手阶段被中间设备截断,无法完成连接建立;如果使用GitHub官方托管运行器,多为节点临时网络波动导致握手失败。
  • 版本兼容问题:使用的actions/checkout@v2和tj-actions/changed-files@v23.1均为发布时间较早的旧版本,新版Ubuntu运行器内置的OpenSSL、根证书库和旧版本Action的拉取逻辑存在兼容性冲突。
  • 仓库策略限制:仓库或所属组织配置了自定义Action拉取镜像源、访问白名单规则,镜像源SSL证书失效、未同步对应版本Action资源时,会触发SSL连接错误。

修复方案

按以下优先级排查处理:

  • 先排除临时波动问题:直接重新触发工作流运行,官方托管运行器的偶发网络异常通常重试1-2次即可恢复。
  • 升级依赖版本:将旧版本Action替换为当前稳定版本,消除兼容性问题,参考配置如下:
    test:
        runs-on: ubuntu-latest
        name: Test changed-files
        steps:
          - uses: actions/checkout@v4
            with:
              fetch-depth: 0
    
          - name: Get changed file
            id: changed-files
            uses: tj-actions/changed-files@v41
    
          - name: List all changed files
            run: |
              for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
                echo "$file was changed"
              done
    
  • 排查网络连通性:如果是自建运行器,在拉取Action前增加临时调试步骤,执行curl -v https://api.github.com/repos/tj-actions/changed-files/tarball/34a865a2b221bd60ec0d4c071f5e7a66ffdac88a查看SSL握手失败的具体阶段:
    • 如果提示证书不受信,执行apt update && apt install -y ca-certificates更新系统根证书库
    • 如果提示连接超时、被重置,放通运行器出口对GitHub相关域名的防火墙规则,或配置可用的HTTPS代理
  • 检查Action权限配置:进入仓库Settings > Actions > General页面,确认Action访问权限允许拉取第三方公开Action,没有配置失效的自定义镜像拉取地址。如果是组织级策略限制,联系管理员放通对应Action的访问权限。

内容的提问来源于stack exchange,提问作者aamir khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:39:14