我在我的项目中开发了一个spark 源数据帧.对于这个数据帧,我需要一个包含最新提交散列的列,以便于跟踪.提交散列必须在Python代码中获得.我找到了解决这个问题的this post个.其中一种方法是使用GitPython库,它工作得很好,但我希望避免在项目中引入新的依赖项,因为它只有一个用例.因此,我try 了另一种建议的方法:
import subprocess
def get_git_revision_hash() -> str:
return subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('ascii').strip()
def get_git_revision_short_hash() -> str:
return subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip()
这种方法同样有效,但是我的项目使用Ruff作为其链接,并且发现使用这种方法可能存在潜在的安全风险,请参阅Ruff规则S603和S607.
现在我在想,有没有一种安全的方法可以在不依赖外部依赖的情况下使用python获得提交散列?