首页 > 解决方案 > 从 bitbucket 服务器检索 python 脚本中提交的哈希值

问题描述

我想知道是否可以在 Python 脚本中检索提交的哈希值。

对于给定的脚本,我可以使用简单的公式和代码轻松确定 blob 的哈希值,例如:

from sys import argv
from hashlib import sha1
from cStringIO import StringIO

class githash(object):
    def __init__(self):
        self.buf = StringIO()

    def update(self, data):
        self.buf.write(data)

    def hexdigest(self):
        data = self.buf.getvalue()
        h = sha1()
        h.update("blob %u\0" % len(data))
        h.update(data)

        return h.hexdigest()

def githash_data(data):
    h = githash()
    h.update(data)
    return h.hexdigest()

def githash_fileobj(fileobj):
    return githash_data(fileobj.read())


if __name__ == '__main__':
    for filename in argv[1:]:
        fileobj = file(filename)
        print(githash_fileobj(fileobj))

资源

但是,这种为给定文件计算与 git 相同的哈希的方法似乎不适用于完整的提交。VonC在这里描述的公式对我来说并不清楚。有没有办法在 python 中计算这个提交哈希或者直接从 bitbucket 服务器检索它?

编辑:我刚发现Stashy。我会调查一下。

标签: pythonhashbitbucket-server

解决方案


推荐阅读