commit | b1a05c0c2ef2d5fe60f0c4c5863576707540dbbf | [log] [tgz] |
---|---|---|
author | Antonio Barone <syntonyze@gmail.com> | Tue Sep 02 21:39:32 2025 +0200 |
committer | Antonio Barone <syntonyze@gmail.com> | Wed Sep 03 11:22:11 2025 +0200 |
tree | ac26020672a60c0090c44e1efb09f1e2bef1063f | |
parent | 7bd06ec479cf7a48c2af62b76cc8dd51ce014721 [diff] |
Use ChangeIndexer.deleteAllForProject on project deletion When a project is deleted, all its changes must be removed from the index. The plugin previously iterated over write indexes and called ChangeIndex.deleteAllForProject() directly. This bypassed the higher- level API and duplicated index selection logic. Route the deletion through ChangeIndexer.deleteAllForProject(), which: - Centralizes index handling across backends and shards. - Emits the onAllChangesDeletedForProject notification for listeners. - Simplifies the code by removing the local iteration helper. This aligns the plugin with the API introduced in I4c8a53629 and avoids the pitfalls of calling low-level ChangeIndex operations directly. Note: this partially re-applies reverted I7a171837bca, without the provided notification via stream events, which was not correct. Bug: Issue 440670678 Change-Id: I7a171837bca5103094caa9c302afb6409f075195
A plugin which allows projects to be deleted from Gerrit via an SSH command, REST API or the Project settings screen.
For running unit tests execute:
bazel test //plugins/delete-project/web:web_test_runner
For checking or fixing eslint formatter problems run:
bazel test //plugins/delete-project/web:lint_test bazel run //plugins/delete-project/web:lint_bin -- --fix "$(pwd)/plugins/delete-project/web"
For testing the plugin with Gerrit FE Dev Helper build the JavaScript bundle and copy it to the plugins/
folder:
bazel build //plugins/delete-project/web:gr-delete-repo cp -f bazel-bin/plugins/delete-project/web/gr-delete-repo.js plugins/
and let the Dev Helper redirect from .+/plugins/delete-project/static/gr-delete-repo.js
to http://localhost:8081/plugins_/gr-delete-repo.js
.