Provides the ability to delete a project.

Deleting a project means that the project is completely removed from
the Gerrit installation, including all its changes and optionally its
Git repository.

When a project is fully deleted, a project deletion event is fired.
Other plugins can listen to this event by implementing
`com.google.gerrit.extensions.events.ProjectDeletedListener` which is
part of the Gerrit core extension API. The project deletion event is
only fired if the Git repository of the project is deleted.

Limitations
-----------

There are a few caveats:

* This cannot be undone

	This is an irreversible action, and should be taken with extreme
	care. Backups are always advised of any important data.

* You cannot delete projects that use "submodule subscription"

	If deleting a project that makes use of submodule subscription,
	you cannot delete the project. Remove the submodule registration
	before attempting to delete the project.

Replication of project deletions
--------------------------------

This plugin does not replicate any project deletions, but it triggers
an event when a project is deleted. The [replication plugin]
(https://gerrit-review.googlesource.com/#/admin/projects/plugins/replication)
can be configured to listen to the project deletion event and to
replicate project deletions.

Event after project deletion
-----------------------------------

This plugin generates an event after project deletion. Format of
the event:

=== Project Deleted

Sent after project deletion.

type:: "project-deleted"

projectName:: Name of the deleted project

eventCreatedOn:: Time in seconds since the UNIX epoch when this event was
created.

*NOTE*: This event will be delivered only to the unrestricted listeners.
Unrestricted events listeners implement
`com.google.gerrit.server.events.EventListener` without performing any
permission checking.

Access
------

To be allowed to delete arbitrary projects a user must be a member of a
group that is granted the 'Delete Project' capability (provided by this
plugin) or the 'Administrate Server' capability. Project owners are
allowed to delete their own projects if they are member of a group that
is granted the 'Delete Own Project' capability (provided by this
plugin).

