Skip to content
Snippets Groups Projects
Commit 4f0a38f1 authored by Jeroen Nijhof's avatar Jeroen Nijhof
Browse files

Added housekeeping for git repositories

parent 323b6eb1
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -171,6 +171,14 @@ class ProjectsController < ApplicationController
end
end
 
def housekeeping
::Projects::HousekeepingService.new(@project).execute
respond_to do |format|
format.html { redirect_to project_path(@project) }
end
end
def toggle_star
current_user.toggle_star(@project)
@project.reload
Loading
Loading
# Projects::HousekeepingService class
#
# Used for git housekeeping
#
# Ex.
# Projects::HousekeepingService.new(project, user).execute
#
module Projects
class HousekeepingService < BaseService
include Gitlab::ShellAdapter
def initialize(project)
@project = project
end
def execute
if gitlab_shell.exists?(@project.path_with_namespace + '.git')
gitlab_shell.gc(@project.path_with_namespace)
end
end
end
end
Loading
Loading
@@ -141,6 +141,17 @@
- else
.nothing-here-block Only the project owner can archive a project
 
.panel.panel-default.panel.panel-warning
.panel-heading Housekeeping
.errors-holder
.panel-body
%p
Runs a number of housekeeping tasks within the current repository,
such as compressing file revisions and removing unreachable objects.
%br
= link_to 'Housekeeping', housekeeping_namespace_project_path(@project.namespace, @project),
method: :post, class: "btn btn-warning"
.panel.panel-default.panel.panel-warning
.panel-heading Rename repository
.errors-holder
Loading
Loading
Loading
Loading
@@ -381,6 +381,7 @@ Gitlab::Application.routes.draw do
delete :remove_fork
post :archive
post :unarchive
post :housekeeping
post :toggle_star
post :markdown_preview
get :autocomplete_sources
Loading
Loading
Loading
Loading
@@ -149,6 +149,18 @@ module Gitlab
"#{path}.git", tag_name])
end
 
# Gc repository
#
# path - project path with namespace
#
# Ex.
# gc("gitlab/gitlab-ci")
#
def gc(path)
Gitlab::Utils.system_silent([gitlab_shell_projects_path, 'gc',
"#{path}.git"])
end
# Add new key to gitlab-shell
#
# Ex.
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment