summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/git
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/execution_api/git')
-rw-r--r--src/buildtool/execution_api/git/git_api.cpp32
-rw-r--r--src/buildtool/execution_api/git/git_api.hpp7
2 files changed, 11 insertions, 28 deletions
diff --git a/src/buildtool/execution_api/git/git_api.cpp b/src/buildtool/execution_api/git/git_api.cpp
index f58df64d..f8292558 100644
--- a/src/buildtool/execution_api/git/git_api.cpp
+++ b/src/buildtool/execution_api/git/git_api.cpp
@@ -19,6 +19,7 @@
#include <functional>
#include <memory>
#include <unordered_map>
+#include <unordered_set>
#include <utility>
#include "nlohmann/json.hpp"
@@ -48,7 +49,7 @@ namespace {
} // namespace
GitApi::GitApi(gsl::not_null<RepositoryConfig const*> const& repo_config)
- : repo_config_{repo_config} {}
+ : repo_config_{*repo_config} {}
auto GitApi::RetrieveToPaths(
std::vector<Artifact::ObjectInfo> const& artifacts_info,
@@ -62,7 +63,7 @@ auto GitApi::RetrieveToPaths(
for (std::size_t i{}; i < artifacts_info.size(); ++i) {
auto const& info = artifacts_info[i];
if (IsTreeObject(info.type)) {
- auto tree = repo_config_->ReadTreeFromGitCAS(info.digest.hash());
+ auto tree = repo_config_.ReadTreeFromGitCAS(info.digest.hash());
if (not tree) {
return false;
}
@@ -79,7 +80,7 @@ auto GitApi::RetrieveToPaths(
}
}
else {
- auto blob = repo_config_->ReadBlobFromGitCAS(info.digest.hash());
+ auto blob = repo_config_.ReadBlobFromGitCAS(info.digest.hash());
if (not blob) {
return false;
}
@@ -112,7 +113,7 @@ auto GitApi::RetrieveToFds(
std::string content;
if (IsTreeObject(info.type) and not raw_tree) {
- auto tree = repo_config_->ReadTreeFromGitCAS(info.digest.hash());
+ auto tree = repo_config_.ReadTreeFromGitCAS(info.digest.hash());
if (not tree) {
Logger::Log(LogLevel::Debug,
"Tree {} not known to git",
@@ -139,7 +140,7 @@ auto GitApi::RetrieveToFds(
}
}
else {
- auto blob = repo_config_->ReadBlobFromGitCAS(info.digest.hash());
+ auto blob = repo_config_.ReadBlobFromGitCAS(info.digest.hash());
if (not blob) {
Logger::Log(LogLevel::Debug,
"Blob {} not known to git",
@@ -189,7 +190,7 @@ auto GitApi::RetrieveToCas(
std::optional<std::string> content;
// Recursively process trees.
if (IsTreeObject(info.type)) {
- auto tree = repo_config_->ReadTreeFromGitCAS(info.digest.hash());
+ auto tree = repo_config_.ReadTreeFromGitCAS(info.digest.hash());
if (not tree) {
return false;
}
@@ -237,7 +238,7 @@ auto GitApi::RetrieveToCas(
content = tree->RawData();
}
else {
- content = repo_config_->ReadBlobFromGitCAS(info.digest.hash());
+ content = repo_config_.ReadBlobFromGitCAS(info.digest.hash());
}
if (not content) {
return false;
@@ -271,23 +272,10 @@ auto GitApi::RetrieveToCas(
auto GitApi::RetrieveToMemory(Artifact::ObjectInfo const& artifact_info)
const noexcept -> std::optional<std::string> {
- return repo_config_->ReadBlobFromGitCAS(artifact_info.digest.hash());
+ return repo_config_.ReadBlobFromGitCAS(artifact_info.digest.hash());
}
auto GitApi::IsAvailable(ArtifactDigest const& digest) const noexcept -> bool {
- return repo_config_->ReadBlobFromGitCAS(digest.hash(), LogLevel::Trace)
+ return repo_config_.ReadBlobFromGitCAS(digest.hash(), LogLevel::Trace)
.has_value();
}
-
-auto GitApi::GetMissingDigests(
- std::unordered_set<ArtifactDigest> const& digests) const noexcept
- -> std::unordered_set<ArtifactDigest> {
- std::unordered_set<ArtifactDigest> result;
- result.reserve(digests.size());
- for (auto const& digest : digests) {
- if (not IsAvailable(digest)) {
- result.emplace(digest);
- }
- }
- return result;
-}
diff --git a/src/buildtool/execution_api/git/git_api.hpp b/src/buildtool/execution_api/git/git_api.hpp
index bf73c71b..108440ad 100644
--- a/src/buildtool/execution_api/git/git_api.hpp
+++ b/src/buildtool/execution_api/git/git_api.hpp
@@ -18,7 +18,6 @@
#include <filesystem>
#include <optional>
#include <string>
-#include <unordered_set>
#include <vector>
#include "gsl/gsl"
@@ -66,12 +65,8 @@ class GitApi final {
[[nodiscard]] auto IsAvailable(ArtifactDigest const& digest) const noexcept
-> bool;
- [[nodiscard]] auto GetMissingDigests(
- std::unordered_set<ArtifactDigest> const& digests) const noexcept
- -> std::unordered_set<ArtifactDigest>;
-
private:
- gsl::not_null<RepositoryConfig const*> repo_config_;
+ RepositoryConfig const& repo_config_;
};
#endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_GIT_GIT_API_HPP