gitlab에서 require_relative 관련된 문제가 생길 때

gitlab에서 require_relative 관련된 문제가 생길 때

<main>’
remote: error: hook declined to update refs/heads/master
To git@no-shoveling.com:root/tor.git
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to ‘git@no-shoveling.com:root/tor.git’
[/crayon]
이 때 tor.git/hooks/update에 가보면 문제가 생기는 부분을 알 수 있다.

$ locate gitlab_update를 해보면 /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_update.rb 가 나오는데 어쩐지 path가 낯이 익다.

/var/opt/gitlab/gitlab-rails/etc/gitlab.yml에서 repos_path 바로 아랫줄을 보면 hooks_path가 있다.

require_relative는 hooks_path에 대해 상대적인 경로를 가리키고 있는 것이다. (이게 왜 갑자기 꼬였는지는 모르겠다.)
따라서 tor.git/hooks/update에서 require_relative를 ‘/opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_update’로 (absolute path로) 바꾸어주면 문제가 해결된다.

Leave a Reply