From b81206fe9885ed9f6fb0426d91ac607f7d8393c3 Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Tue, 10 Sep 2024 15:19:47 +0200 Subject: Use ArtifactDigestFactory in BlobTree ...to create ArtifactDigests. --- src/buildtool/execution_api/common/blob_tree.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/buildtool/execution_api/common/blob_tree.cpp') diff --git a/src/buildtool/execution_api/common/blob_tree.cpp b/src/buildtool/execution_api/common/blob_tree.cpp index 6e04d55f..daf2a87c 100644 --- a/src/buildtool/execution_api/common/blob_tree.cpp +++ b/src/buildtool/execution_api/common/blob_tree.cpp @@ -18,6 +18,9 @@ #include #include "src/buildtool/common/artifact.hpp" +#include "src/buildtool/common/artifact_digest.hpp" +#include "src/buildtool/common/artifact_digest_factory.hpp" +#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/utils/cpp/hex_string.hpp" @@ -61,13 +64,18 @@ auto BlobTree::FromDirectoryTree(DirectoryTreePtr const& tree, } } if (auto git_tree = GitRepo::CreateShallowTree(entries)) { - ArtifactDigest digest{ToHexString(git_tree->first), - git_tree->second.size(), - /*is_tree=*/true}; - return std::make_shared(ArtifactBlob{std::move(digest), - git_tree->second, - /*is_exec=*/false}, - nodes); + auto digest = + ArtifactDigestFactory::Create(HashFunction::Type::GitSHA1, + ToHexString(git_tree->first), + git_tree->second.size(), + /*is_tree=*/true); + if (digest) { + return std::make_shared( + ArtifactBlob{*std::move(digest), + git_tree->second, + /*is_exec=*/false}, + nodes); + } } } catch (...) { return std::nullopt; -- cgit v1.2.3