@@ -76,7 +76,7 @@ namespace service {
7676
7777 Task<std::vector<ProjectVersion>> setupProjectVersions (const ResolvedProject &resolved,
7878 const std::unordered_map<std::string, std::string> &branches,
79- const std::shared_ptr<spdlog::logger> logger, ProjectIssueCallback &issues) {
79+ const std::shared_ptr<spdlog::logger> logger, const std::shared_ptr< ProjectIssueCallback> &issues) {
8080 const auto path = resolved.getFormat ().getWikiMetadataPath ();
8181 const ProjectFileIssueCallback fileIssues (issues, path);
8282
@@ -153,13 +153,13 @@ namespace service {
153153 deployment.setStatus (enumToStr (DeploymentStatus::LOADING ));
154154 co_await global::database->updateModel (deployment);
155155
156- ProjectIssueCallback issues{ deployment.getValueOfId (), logger} ;
156+ const auto issues = std::make_shared<ProjectIssueCallback>( deployment.getValueOfId (), logger) ;
157157
158158 // 1. Clone repository
159159 const auto [repo, cloneError] =
160160 co_await git::cloneRepository (project.getValueOfSourceRepo (), clonePath, project.getValueOfSourceBranch (), logger);
161161 if (!repo || cloneError.error != ProjectError::OK ) {
162- co_await issues. addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::GIT_CLONE , cloneError.error , cloneError.message );
162+ co_await issues-> addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::GIT_CLONE , cloneError.error , cloneError.message );
163163 co_return cloneError.error ;
164164 }
165165
@@ -170,7 +170,7 @@ namespace service {
170170
171171 if (!defaultVersion) {
172172 logger->error (" Project version creation database error." );
173- co_await issues. addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::INTERNAL , ProjectError::UNKNOWN );
173+ co_await issues-> addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::INTERNAL , ProjectError::UNKNOWN );
174174 co_return ProjectError::UNKNOWN ;
175175 }
176176 }
@@ -179,7 +179,7 @@ namespace service {
179179 const auto revision = git::getLatestRevision (repo);
180180 if (!revision) {
181181 logger->error (" Error getting commit information" );
182- co_await issues. addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::GIT_INFO , ProjectError::UNKNOWN );
182+ co_await issues-> addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::GIT_INFO , ProjectError::UNKNOWN );
183183 co_return ProjectError::UNKNOWN ;
184184 }
185185 deployment.setRevision (nlohmann::json (*revision).dump ());
@@ -188,19 +188,18 @@ namespace service {
188188 // 4. Ingest game content
189189 const auto projectLog = getProjectLogger (project, false );
190190 const auto cloneDocsRoot = clonePath / removeLeadingSlash (project.getValueOfSourcePath ());
191- const auto sharedIssues = std::make_shared<ProjectIssueCallback>(issues);
192- ResolvedProject resolved{project, cloneDocsRoot, *defaultVersion, sharedIssues, projectLog};
191+ ResolvedProject resolved{project, cloneDocsRoot, *defaultVersion, issues, projectLog};
193192
194193 // 5. Validate metadata
195194 if (const auto [c, e, details] = resolved.validateProjectMetadata (); !details.empty ()) {
196195 logger->error (" Invalid project metadata found." );
197- co_await issues. addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::META , ProjectError::INVALID_META , details);
196+ co_await issues-> addIssue (ProjectIssueLevel::ERROR , ProjectIssueType::META , ProjectError::INVALID_META , details);
198197 co_return ProjectError::INVALID_META ;
199198 }
200199
201200 // Validate pages
202201 co_await resolved.validatePages ();
203- if (issues. hasErrors ()) {
202+ if (issues-> hasErrors ()) {
204203 logger->error (" Found invalid page, aborting" );
205204 co_return ProjectError::UNKNOWN ;
206205 }
@@ -213,7 +212,7 @@ namespace service {
213212 co_return ProjectError::UNKNOWN ;
214213 }
215214
216- if (issues. hasErrors ()) {
215+ if (issues-> hasErrors ()) {
217216 logger->error (" Encountered issues during project setup, aborting" );
218217 co_return ProjectError::UNKNOWN ;
219218 }
0 commit comments