summaryrefslogtreecommitdiff
path: root/app/workers/git_garbage_collect_worker.rb
blob: a6cefd4d60175afa3231dd340090627766df2567 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class GitGarbageCollectWorker
  include Sidekiq::Worker
  include Gitlab::ShellAdapter

  sidekiq_options queue: :gitlab_shell, retry: false

  def perform(project_id)
    project = Project.find(project_id)

    gitlab_shell.gc(project.repository_storage_path, project.path_with_namespace)
    # Refresh the branch cache in case garbage collection caused a ref lookup to fail
    project.repository.after_create_branch
    project.repository.branch_names
    project.repository.has_visible_content?
  end
end