GitLab 未与 Gitolite 交互

标签 git debian gitolite gitlab

我安装并配置了 GitLab。我将公钥添加到我的帐户中,然后添加了一个项目。不幸的是,该项目似乎并不存在于 Gitolite 中,我的 key 似乎也没有添加(不在 .gitolite/keydir 或 .ssh/authorized_keys 中)

GitLab 没有提示,项目创建得很好。根据 gitlab:app:status,权限是正确的,但它说项目缺少 post_receive 文件..这并不奇怪,因为/home/git/repositories 中没有项目

gitlab@server:~$ bundle exec rake gitlab:app:status RAILS_ENV=production
Starting diagnostics
config/database.yml............exists
config/gitlab.yml............exists
/home/git/repositories/............exists
/home/git/repositories/ is writable?............YES
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
Can clone gitolite-admin?............YES
UMASK for .gitolite.rc is 0007? ............YES
/home/git/.gitolite/hooks/common/post-receive exists? ............YES
Validating projects repositories:
Herp.....post-receive file missing
rake aborted!
unexpected return

Tasks: TOP => gitlab:app:status
(See full trace by running task with --trace)

编辑:gitolite-admin 存储库确实存在。我可以克隆 gitolite-admin 存储库并在该目录中写入:

gitlab@server:~$ git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin
Cloning into '/tmp/gitolite-admin'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
Receiving objects: 100% (6/6), 751 bytes, done.
remote: Total 6 (delta 0), reused 0 (delta 0)

gitlab@server:~$ mkdir /home/git/repositories/test
gitlab@server:~$ touch /home/git/repositories/test/asdf

我不知所措,结果 GitLab 无法使用。我该怎么办?我不知道从哪里开始寻找。

提前致谢。

最佳答案

对我来说,这个问题的根源是对 gitolite-admin 存储库的提交被拒绝:

2012-11-05.18:54:07     gitlab  127.0.0.1       git-receive-pack 'gitolite-admin'
2012-11-05.18:54:07     gitlab  127.0.0.1       Die generated at line 251 in /home/git/bin/gl-compile-conf : <<newline>>                ***** ABORTING *****<<newline>>        git config core.sharedRepository not allowed<<newline>>check GL_GITCONFIG_KEYS in the rc file for how to allow it<<newline>> <<newline>>

当我检查 /home/git/.gitolite.rc 是否为 GL_GITCONFIG_KEYS 时,我发现该变量的值为空字符串。我必须手动更改它:

$GL_GITCONFIG_KEYS = ".*";

(我从 issue 1769 中指定的迁移 sed 行推断 - 我认为给定的 sed 行已损坏)

对于 gitolite v3,您可能需要设置此变量

$GIT_CONFIG_KEYS = '.*';

添加此变量解决了我的问题。

编辑:japgolly 建议的替代问题和解决方案是安装说明忘记了一个步骤:

sudo -u gitlab git config --global user.name Gitlab
sudo -u gitlab git config --global user.email gitlab@localhost

这也会导致对 gitolite-admin 的提交失败(静默)

关于GitLab 未与 Gitolite 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13190443/

相关文章:

c++ - 在 Debian 测试 x64 中无法编译 c++ 4.7.2

git - 龟GIT + Gitolite 3

ssh 配置可以在家里工作,但不能从另一个目录工作

git - 如何列出某个git分支中的所有标签

git - 尝试在 SourceTree 中克隆 git 存储库时 SSH 身份验证失败

Apache DocumentRoot 的 Gitolite 本地工作副本

ssh - 将用户添加到 Google Compute Engine

linux - 我如何知道Electron需要运行哪些Debian库?

gitolite-admin 克隆问题

git - 如何保护实时服务器上的 git 存储库