diff --git a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala index 3828fbbb5..85e799bb7 100644 --- a/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositorySettingsController.scala @@ -333,6 +333,18 @@ trait RepositorySettingsControllerBase extends ControllerBase { redirect(s"/${repository.owner}") }) + /** + * Run GC + */ + post("/:owner/:repository/settings/gc")(ownerOnly { repository => + LockUtil.lock(s"${repository.owner}/${repository.name}") { + using(Git.open(getRepositoryDir(repository.owner, repository.name))) { git => + git.gc(); + } + } + redirect(s"/${repository.owner}/${repository.name}/danger") + }) + /** * Provides duplication check for web hook url. */ diff --git a/src/main/twirl/gitbucket/core/settings/danger.scala.html b/src/main/twirl/gitbucket/core/settings/danger.scala.html index c7b3c9355..c5941a10f 100644 --- a/src/main/twirl/gitbucket/core/settings/danger.scala.html +++ b/src/main/twirl/gitbucket/core/settings/danger.scala.html @@ -4,7 +4,7 @@ @html.main("Danger Zone", Some(repository)){ @html.menu("settings", repository){ @menu("danger", repository){ -