fix: calls vcs server cache invalidation on repository delete

This commit is contained in:
ievgenii vdovenko 2025-06-06 13:13:21 +02:00
parent d96353c09a
commit 5819a0ec61
2 changed files with 13 additions and 4 deletions

View file

@ -134,6 +134,10 @@ class RepoSettingsAdvancedView(RepoAppView):
repo_advanced_url = h.route_path("edit_repo_advanced", repo_name=self.db_repo_name, _anchor="advanced-delete")
try:
old_data = self.db_repo.get_api_data()
delete_cache = True
self._invalidate_remote_cache(delete=delete_cache)
RepoModel().delete(self.db_repo, forks=handle_forks)
_forks = self.db_repo.forks.count()
@ -148,7 +152,7 @@ class RepoSettingsAdvancedView(RepoAppView):
"repo.delete", action_data={"old_data": old_data}, user=self._rhodecode_user, repo=repo
)
ScmModel().mark_for_invalidation(self.db_repo_name, delete=True)
ScmModel().mark_for_invalidation(self.db_repo_name, delete=delete_cache)
h.flash(_("Deleted repository `%s`") % self.db_repo_name, category="success")
Session().commit()
except AttachedForksError:
@ -196,6 +200,11 @@ class RepoSettingsAdvancedView(RepoAppView):
raise HTTPFound(h.route_path("home"))
def _invalidate_remote_cache(self, delete: bool):
log.debug(f"Invalidating remote cache, for repository: {self.db_repo_name}")
scm_repo = self.db_repo.scm_instance(cache=False)
scm_repo.vcsserver_invalidate_cache(delete=delete)
@LoginRequired()
@HasRepoPermissionAnyDecorator("repository.admin")
@CSRFRequired()

View file

@ -235,8 +235,8 @@ class SubversionRepository(base.BaseRepository):
try:
SubversionRepository(path)
return True
except VCSError:
pass
except VCSError as e:
log.warning(f"VCSError: {repr(e)}")
return False
@LazyProperty
@ -307,7 +307,7 @@ class SubversionRepository(base.BaseRepository):
start_raw_id = self._sanitize_commit_id(start_id)
end_raw_id = self._sanitize_commit_id(end_id)
# for empty revisions in SVN
if start_raw_id not in self.commit_ids or end_raw_id not in self.commit_ids:
return base.CollectionGenerator(self, [])