From 888b226cc4e84b72eff2b9c8f2b29453977d14c6 Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Tue, 10 Sep 2024 15:19:31 +0200 Subject: Use ArtifactDigestFactory in GitRepo ...to create ArtifactDigests. --- src/buildtool/file_system/git_repo.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/buildtool/file_system/git_repo.cpp') diff --git a/src/buildtool/file_system/git_repo.cpp b/src/buildtool/file_system/git_repo.cpp index b4c06224..f2f7b042 100644 --- a/src/buildtool/file_system/git_repo.cpp +++ b/src/buildtool/file_system/git_repo.cpp @@ -22,6 +22,8 @@ #include #include +#include "src/buildtool/common/artifact_digest_factory.hpp" +#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" @@ -1851,9 +1853,18 @@ auto GitRepo::ReadTree(std::string const& id, [](tree_entry_t const& item) { return IsSymlinkObject(item.type); })) { - symlinks.emplace_back(ToHexString(entry.first), - /*size=*/0, - /*is_tree=*/false); + auto digest = ArtifactDigestFactory::Create( + HashFunction::Type::GitSHA1, + ToHexString(entry.first), + /*size=*/0, + /*is_tree=*/false); + if (not digest) { + Logger::Log(LogLevel::Debug, + "Conversion error in GitRepo:\n {}", + std::move(digest).error()); + return std::nullopt; + } + symlinks.emplace_back(*std::move(digest)); } } -- cgit v1.2.3