summaryrefslogtreecommitdiff
path: root/bin/create-hooks
blob: 49f43cfc400e4e53d99921308e8c558da40d843c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env ruby

# Recreate GitLab hooks in the Git repositories managed by GitLab.
#
# This script is used when restoring a GitLab backup.

require_relative '../lib/gitlab_init'
require File.join(ROOT_PATH, 'lib', 'gitlab_projects')
require File.join(ROOT_PATH, 'lib', 'gitlab_metrics')

repository_storage_paths = ARGV

repository_storage_paths.each do |repo_path|
  Dir["#{repo_path.chomp('/')}/*/*.git"].each do |repo|
    begin
      GitlabMetrics.measure('command-create_hooks') do
        GitlabProjects.create_hooks(repo)
      end
    rescue Errno::ENOENT
      # The user must have deleted their repository. Ignore.
    end
  end
end