代码之家  ›  专栏  ›  技术社区  ›  LAFK says Reinstate Monica

Gitolite安装修复了什么?

  •  -3
  • LAFK says Reinstate Monica  · 技术社区  · 6 年前

    Gitolite信息不起作用,添加密钥使其成为 no access 没有在auth keys文件中创建相应的条目。

    修复此运行 gitolite setup 在Gitolite服务器上

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

    什么? 石英石装置 当第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) ,现在这些键可以在我设置它们时访问(现在意味着 石英石装置 )

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

    类似的问题对我来说不管用: keydir entries not propagating to authorized_keys

    1 回复  |  直到 6 年前
        1
  •  0
  •   LAFK says Reinstate Monica    6 年前

    我想,当我挖得更深的时候,医生们就有了答案。这是相当不错的@sitaramc。

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

    症状密钥停止传播并出错 FATAL: unknown git/gitolite command: 'info' ssh git-user@ser-git . 修复运行 gitolite setup . 因此,在第一个问题上,标题1:

    Gitolite安装修复了什么?

    1. 石英石装置 实施 here
    2. 我的Perl相当弱,但在 line 56 . 它调用args(它解析选项,所以这里没有要解析的内容),然后除非 h_only (仅钩住arg用于安装),但没有使用,因此我们跳过 compile POST_COMPILE 扣动扳机,抓住钩子。

      子设置{ my($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::store hook_repos() , line 228 :我们将dir更改为repo base dir(根据配置文件),并对每个phy_repo进行更改。 hook_1(phy_repo) . 什么是物理报告? 物理层 物理的。

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

    方法 Hookg1(回购)

    这完全是关于固定所有的钩子。

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