mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
git-update: Improve error message for non-blob objects
When a repository contains a directory, a user is currently faced with the following error message: remote: Traceback (most recent call last): remote: File "hooks/update", line 194, in <module> remote: if repo[treeobj.id].size > 250000: remote: AttributeError: '_pygit2.Tree' object has no attribute 'size' remote: error: hook declined to update refs/heads/master Explicitly check for directories and other non-blob objects and display a more intuitive message. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
parent
6e52439e6f
commit
ed72af6378
1 changed files with 10 additions and 1 deletions
|
@ -191,7 +191,16 @@ for commit in walker:
|
|||
die_commit("missing .SRCINFO", commit.id)
|
||||
|
||||
for treeobj in commit.tree:
|
||||
if repo[treeobj.id].size > 250000:
|
||||
blob = repo[treeobj.id]
|
||||
|
||||
if isinstance(blob, pygit2.Tree):
|
||||
die_commit("the repository must not contain subdirectories",
|
||||
commit.id)
|
||||
|
||||
if not isinstance(blob, pygit2.Blob):
|
||||
die_commit("not a blob object: %s" % (treeobj), commit.id)
|
||||
|
||||
if blob.size > 250000:
|
||||
die_commit("maximum blob size (250kB) exceeded", commit.id)
|
||||
|
||||
srcinfo_raw = repo[commit.tree['.SRCINFO'].id].data.decode()
|
||||
|
|
Loading…
Add table
Reference in a new issue