如何在 Phabricator Diffusion 中集成本地 git 存储库?

How to integrate a local git repository in Phabricator Diffusion?

系统设置:在同一台机器上安装了 phabricator 以及 git 设置(不是这个问题的一部分)

git /srv/git 下的存储库 例如/srv/git/我的/example.git

用户帐户:

这只是一个示例,请根据您的具体设置和需求采用!

现在,如何将这个本地托管的 git 存储库放入 Phabricator Diffusion(作为外部存储库)而不使 phabricator 成为主要权限?

一种方法是使用带有 public 密钥的 ssh 来访问本地存储库:

  1. 在 Phabricator 中创建 public 和私钥(又名凭据):

    应用程序 -> 密码 -> "Create Credential" -> "SSH Private Key (Generated)"

    注意:您可能需要锁定生成的凭据以防止私钥泄露!

  2. 如果不存在,为 phabricator 用户创建 .ssh 文件夹和 authorized_keys 文件 'bugs'

    mkdir .ssh

    touch .ssh/authorized_keys

  3. 检查权限 600 of authorized_keys and 700 of .ssh

    chmod 700 .ssh

    chmod 600 .ssh/authorized_keys

  4. 将 phabricator 用户 ('bugs') 的 public key 复制到 .ssh/authorized_keys

    注意:Phabricator 用户必须具有对 git 文件夹的读取权限(应该在组 'git' 中具有)

  5. 创建扩散存储库(外部托管)例如"ssh://bugs@localhost/srv/git/my/example.git"

    Phabricator -> Diffusion -> 新存储库 -> "Import an Existing External Repository" -> 按照说明操作...

您可能希望先检查后激活存储库。激活时,导入应自动开始,您现在可以使用它,例如当识别到更改等时创建通知(先驱)

注意:存储库将作为主要权威主机在 /srv/git 下托管!