summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--lib/gitlab_projects.rb13
2 files changed, 14 insertions, 3 deletions
diff --git a/README.md b/README.md
index 462bdc8..383c521 100644
--- a/README.md
+++ b/README.md
@@ -121,6 +121,10 @@ Remove tag:
./bin/gitlab-projects rm-tag gitlab/gitlab-ci.git v3.0.0
+Gc repo:
+
+ ./bin/gitlab-projects gc gitlab/gitlab-ci.git
+
## Keys
Add key:
diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb
index 8bf000d..0497502 100644
--- a/lib/gitlab_projects.rb
+++ b/lib/gitlab_projects.rb
@@ -55,11 +55,12 @@ class GitlabProjects
when 'rm-tag'; rm_tag
when 'add-project'; add_project
when 'list-projects'; puts list_projects
- when 'rm-project'; rm_project
- when 'mv-project'; mv_project
+ when 'rm-project'; rm_project
+ when 'mv-project'; mv_project
when 'import-project'; import_project
when 'fork-project'; fork_project
- when 'update-head'; update_head
+ when 'update-head'; update_head
+ when 'gc'; gc
else
$logger.warn "Attempt to execute invalid gitlab-projects command #{@command.inspect}."
puts 'not allowed'
@@ -246,4 +247,10 @@ class GitlabProjects
$logger.info "Update head in project #{project_name} to <#{new_head}>."
true
end
+
+ def gc
+ $logger.info "Running git gc for <#{full_path}>."
+ cmd = %W(git --git-dir=#{full_path} gc)
+ system(*cmd)
+ end
end