当前位置: 首页 > 知识库问答 >
问题:

由于“不安全存储库”错误,GitHub操作无法推送

万高畅
2023-03-14

我有一个私有的GitHub存储库,它有一个GitHub操作,可以将在操作运行时创建的文件推送到存储库。从昨天(2022-04-12)起,该行动在以下步骤失败:

    - name: Push data to repo
      uses: github-actions-x/commit@v2.8
      with:
        push-branch: 'main'
        commit-message: 'Add current data'
        force-add: 'true'
        files: *.zip
        name: autoupdate

运行此步骤会触发以下错误消息:

Command line: | /usr/bin/git checkout -B main
Stderr:       | fatal: unsafe repository ('/github/workspace' is owned by someone else)
              | To add an exception for this directory, call:
              | 
              |     git config --global --add safe.directory /github/workspace

根据错误消息,我在GitHub操作中添加了以下内容:

    - name: Fix issue with repository ownership
      run: |
        git config --global --add safe.directory /home/runner/work/vksm/vksm
        git config --global --add safe.directory /github/workspace

我还添加了/home/runner/work/vksm/vksm,因为我不确定错误消息中的/github/workspace是否是通用路径/home/runner/work/vksm/vksm是操作运行时签出步骤放置存储库的位置:/usr/bin/git init/home/runner/work/vksm/vksm

整个步骤顺序如下:

 steps:
    - name: Checkout the repository
      uses: actions/checkout@v2

    - name: Fix issue with repository ownership
      run: |
        git config --global --add safe.directory /home/runner/work/vksm/vksm
        git config --global --add safe.directory /github/workspace

    - name: Set up Python 3.9
      uses: actions/setup-python@v2
      ...

    - name: Install dependencies
      run: |
        pip install requests
        
    - name: Run Python script
      run: |
        python script.py

    - name: Push data to repo
      uses: github-actions-x/commit@v2.8
      ...

然而,错误仍然存在。

此问题可能与无法将父目录添加到safe有关。git上的目录。

共有1个答案

夏元明
2023-03-14

出现这种情况是因为存在安全漏洞。在您执行git config命令以修复不安全存储库问题之前,错误被抛入docker容器内部。您需要修改docker容器的入口点才能执行git命令。您可以检查此链接了解有关漏洞的详细信息。

在git/action所有者做出更改之前,一个临时的解决方法可能是分叉/克隆使用docker的操作,并用类似的方式对其进行修改。

#!/bin/bash

set -o pipefail

# config
# ...

# Fix the unsafe repo error which was introduced by the CVE-2022-24765 git patches
git config --global --add safe.directory /github/workspace
#...

您可以查看本期的评论,了解有关解决方案的一些想法。

 类似资料: