From f400c4f56008813f54f756bd19d007adfe8ef827 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Tue, 9 Jan 2018 01:26:26 -0800 Subject: Add a create-hooks command for import Rake task With the introduction of hashed storage, the import Rake task needs to be able to copy a repo and then initialize the hooks as a separate step from creating the project directory. Relates to gitlab-org/gitlab-ce#41739 and https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16280 --- CHANGELOG | 3 +++ lib/gitlab_projects.rb | 7 +++++++ spec/gitlab_projects_spec.rb | 15 +++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 320dcba..da8ba6e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +v5.11.1 + - Add a 'create-hooks' command to gitlab-projects + v5.11.0 - Introduce a more-complete implementation of bin/authorized_keys (!178) diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb index 6700735..7da97ae 100644 --- a/lib/gitlab_projects.rb +++ b/lib/gitlab_projects.rb @@ -57,6 +57,9 @@ class GitlabProjects create_tag when 'add-project'; add_project + when 'create-hooks'; + # To avoid confusion with self.class.create_hooks + create_project_hooks when 'list-projects'; puts list_projects when 'rm-project'; @@ -182,6 +185,10 @@ class GitlabProjects system(*cmd) && self.class.create_hooks(full_path) end + def create_project_hooks + self.class.create_hooks(full_path) + end + def list_projects $logger.info 'Listing projects' Dir.chdir(repos_path) do diff --git a/spec/gitlab_projects_spec.rb b/spec/gitlab_projects_spec.rb index 7cf408b..7eb0593 100644 --- a/spec/gitlab_projects_spec.rb +++ b/spec/gitlab_projects_spec.rb @@ -55,6 +55,21 @@ describe GitlabProjects do it { File.readlink(hooks_dir).should == target_hooks_dir } end + + context 'with command-line arguments' do + before do + FileUtils.mkdir_p repo_path + argv('create-hooks', tmp_repos_path, 'hook-test.git') + gl_projects = GitlabProjects.new + gl_projects.exec + end + + after do + FileUtils.rm_f(repo_path) + end + + it { File.readlink(hooks_dir).should == target_hooks_dir } + end end describe :initialize do -- cgit v1.2.1