【问题标题】:what does gitolite setup fix?gitolite 设置解决了什么问题?
【发布时间】:2018-09-25 22:42:34
【问题描述】:

gitolite 信息不起作用,添加密钥会将它们变成 no access 密钥,并且没有在 auth-keys 文件中创建相应的条目。

要修复此问题,请在 gitolite 服务器上运行 gitolite setup

问题:是什么让我陷入了困境?

gitolite setup 在第 n 次调用时会做什么(根据文档它修复了钩子,它不再进行设置,但我想知道用例是什么,哪个是我的)?

有关 gitolite 信息的更多详细信息

gitolite info 命令是这样调用的:

> ssh git-user@ser-git
PTY allocation request failed on channel 0
hello git-admin, this is ...@... running gitolite3 3.6.7-2 (Debian) on git 2.17.1

 R W    some-repository
 R W    gitolite-admin
 R W    testing
Connection to ser-git closed.

错误的输出是:FATAL: unknown git/gitolite command: 'info'

更多细节:无法访问的密钥。

gitolite sshkeys-lint 显示带有 (no access) 的键,现在这些键可以在我设置它们时访问(现在意味着在 gitolite setup 之后)。

ssh-keygen -lf /home/repo/.ssh/authorized_keys | wc -l(或者没有管道部分,无论如何)键的数量和它们的名称表明我没有添加最新的。

对我不起作用的类似问题:keydir entries not propagating to authorized_keys

【问题讨论】:

    标签: githooks gitolite


    【解决方案1】:

    我猜,一旦我深入挖掘,Docs 就几乎可以找到答案了。 @sitaramc 相当不错。

    • 没有选项,'gitolite setup' 是一个通用的“修复一切”命令 (例如,如果你从外面带来了回购,或者有人搞砸了 使用钩子,或者您进行了影响访问的 rc 文件更改 规则等)

    症状键停止传播并在ssh git-user@ser-git 上出现错误FATAL: unknown git/gitolite command: 'info'。修复是运行gitolite setup。所以到第一个问题,标题一:

    gitolite 设置解决了什么问题?

    1. gitolite setup 已实现 here
    2. 我的 Perl 比较弱,但在 line 56 中有一个设置函数。它调用 args (它解析选项,所以这里它没有什么要解析的),然后除非 h_only (只钩子用于设置的 arg),它没有被使用,所以我们跳过 compilePOST_COMPILE 触发器并继续钩子。

      子设置{ 我的 ($admin, $pubkey, $h_only, $message) = args();

      unless ($h_only) {
          setup_glrc();
          setup_gladmin( $admin, $pubkey, $message );
      
          _system("gitolite compile");
          _system("gitolite trigger POST_COMPILE");
      }
      
      hook_repos();    # all of them, just to be sure
      

      }

    3. Gitolite::conf::storehook_repos()line 228:我们将目录更改为repo 基本目录(根据配置文件),并且对于每个phy_repo 我们执行hook_1(phy_repo)。什么是 phy_repo? 一个物理的

    4. 相同的包,不同的方法和线路:hook_1($repo) in line 354

    方法hook_1($repo)

    从字面上看,就是要修复所有的钩子。

    1. 为常用和管理挂钩重新创建目录。
    2. 重写 update_hook(通用)和 post_update_hook(管理员)。
    3. 为 common 和 admin hook 设置 755 个权限。
    4. 然后使用ln_sf 符号链接常用/管理挂钩的文件夹。
    5. ln_sf 在公共模块中,在 line 162

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 2017-08-26
      • 2010-09-21
      • 1970-01-01
      • 2011-04-06
      • 2019-12-29
      • 2011-01-21
      相关资源
      最近更新 更多