1

gitlab インスタンスを別のサーバーに移動すると、問題が発生します。クローンは正常に動作していますが、プッシュでエラーが発生し、どこに問題があるのか​​ わかりません。gitlab のログでは、何の役にも立ちません。

git push
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 351 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to access master! 
remote: error: hook declined to update refs/heads/master
To git@server:user/repo.git
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'git@server:user/repo.git'

どこに問題があるのか​​ わかりません。構成を少し変更します。以前のサーバーのシンボリックリンクが/media/data/git/repositories現在の/home/gitシンボリックリンクになっているリポジトリとサテライトですが、それ/media/disk/gitが問題だとは思いません。

EDIT:// gitlab:check はすべて OK です gitlab-shell チェックも OK

4

5 に答える 5

5

[TL:DR]

何時間もフラストレーションを感じ、多くの試行錯誤を重ねた結果、この問題の解決策を見つけました (とにかく私にとっては)。

cd /ホーム/git/リポジトリ

rm -rf */*/フック/アップデート

[説明]

フロントエンドで問題なく 6.3 -> 6.9 から順番にアップグレードしましたが、(愚かな私) 毎回プッシュとプルをチェックしなかったので、これがどこで発生し始めたのか正確にはわかりません。6.7のアップグレード後だと思います。SSH と HTTP のプッシュとプルの両方が機能しなくなりましたが、わずかに異なるエラーが発生しました。一部のスレッドが言ったように、リポジトリディレクトリでシンボリックリンクを検索しました。chmodとchownも実行して、gitがすべてのリポジトリにアクセスできるようにしました。また、NGINX の構成をチェックして、正しい IP/FQHN を指していることを確認しました。サイコロなし、同じエラー。私はついにこの問題を発見し、いくつかのことを確認し、最終的に上記の解決策に至りました。

この修正が、各レポのフック フォルダー内の「更新」ファイルがシンボリック リンクであったためなのか、それともファイル自体の何かによるものなのかはわかりませんが、通常どおりプッシュおよびプルできるようになりました。

于 2014-06-16T00:49:50.367 に答える
2

Bitnami バージョンと、実際のディレクトリではなくシンボリック リンクconfig.ymlを指す以前に構成されたファイルを使用します。

これを修正して、gitlab-shellconfig.ymlが実際のリポジトリ ディレクトリを指すように変更しました。

# repos_path: "/opt/gitlab-6.3.0-1/apps/gitlab/repositories"

repos_path: "/home/git"
于 2014-01-02T14:05:49.867 に答える
0

また、複数の手順で 6.9 にアップグレードしました。この問題に遭遇します。GitLab Community Edition の次の問題に関連しているようです: https://gitlab.com/gitlab-org/gitlab-ce/issues/333

リポジトリの更新フックはシンボリック リンクであるため、セキュリティ チェックインについてコメントします/home/git/gitlab-shell/lib/gitlab_update.rb(シンボリック リンクのソースは何ですか)。

10:27:34me@hogwarts:/home/git/gitlab-shell$ git diff lib/gitlab_update.rb 
diff --git a/lib/gitlab_update.rb b/lib/gitlab_update.rb
index 4b0673f..174bbad 100644
--- a/lib/gitlab_update.rb
+++ b/lib/gitlab_update.rb
@@ -36,13 +36,14 @@ class GitlabUpdate
     # get value from it
     ENV['GL_ID'] = nil

-    if api.allowed?('git-receive-pack', @repo_name, @actor, @ref_name, @oldrev, @newrev, forced_push?)
-      update_redis
-      exit 0
-    else
-      puts "GitLab: You are not allowed to access #{@ref_name}!"
-      exit 1
-    end
+    #if api.allowed?('git-receive-pack', @repo_name, @actor, @ref_name, @oldrev, @newrev, forced_push?)
+    #  update_redis
+    #  exit 0
+    #else
+    #  puts "GitLab: You are not allowed to access #{@ref_name}!"
+    #  exit 1
+    update_redis
+    exit 0
   end

それはハックですが、今はうまくいきます。うまくいけば、誰かまたは私がこの問題をより深く掘り下げるための暇な時間を見つけることができます.

于 2014-08-12T08:40:53.917 に答える