【问题标题】:Integrating multiple git users with Asana将多个 git 用户与 Asana 集成
【发布时间】:2015-05-19 04:52:32
【问题描述】:

我已经根据this page设置了一个Git服务器。

我还根据this page 合并了一个post-receive 挂钩。

我正在使用 GitHub for Windows 在我的本地计算机和 git 存储库之间进行通信。

我的问题是post-receive 钩子利用了 git config user.asana-key 中的变量。我已经在本地机器上设置了该变量。但是,当我提交到服务器存储库时,该值是空的。

我想知道我是否应该做一些特定的事情来将此变量与 git commit 一起发送,以便钩子可以读取它?
如果有某种方法可以自动发送每次提交?

编辑:

从那以后,我了解到这些配置变量通常不会通过提交发送到服务器。所以我现在的问题变成了有没有办法发送这些变量,或者有没有办法在 post-receive 挂钩中根据附加到提交的 user.email 设置密钥?

【问题讨论】:

    标签: git githooks asana github-for-windows


    【解决方案1】:

    您是否希望每次推送都在服务器上更新 git 配置?

    Git 配置不会以任何方式克隆和版本控制。而服务器端的 git hook 肯定会读取服务器配置。但是你可以做一个简单的自动化:

    • 您的存储库中包含 user.asana-key 值的 txt 文件
    • 一个接收后挂钩,用于读取更新的值并运行git config --local user.asana-key <value>

    或者,如果有很多用户并且您需要为每个提交发送单独的密钥作为参数 - 这将不起作用。

    【讨论】:

    • 有 2 个用户,因此如果可能的话,将其放在他们的机器上会很有帮助。我不太确定我理解为什么它不能在本地机器上。正如我所说,我使用的是 Windows 版 Github(GUI 客户端),它允许我设置 user.name 和 user.email,这些都可以很好地通过,显示在我所做的提交上。
    • 有一个重要的区别。 user.name 和 user.email 用于 本地 将信息放入提交中,然后推送。服务器永远不会看到配置变量本身。
    • 啊,好吧。那么无论如何在提交期间传递该信息吗?或者是否可以在 git 挂钩(接收后)中根据用于提交的 user.email 设置密钥?
    【解决方案2】:

    我没有收到关于这个问题的答案,所以我一直在四处寻找,只是将这个发布给其他人,以防有人遇到这个问题。

    我发现您无法访问在 git 挂钩中通过提交发送的 user.name 和 user.email。所以我不得不走另一条路。我按照他们位于here 的白痴指南,在服务器上安装了带有 git 存储库的 gitolite。我将其与他们关于如何使用位于 here 的现有仓库的说明结合起来。然后按照他们的使用钩子指南进行操作,该指南解释了将哪些变量传递给钩子,位于here。具体来说,我使用了变量 GL_USER。

    然后在我添加的 git repo 的本地配置中:

    [asana]
        gitolite-user-name = asana-api-key
    

    其中 gitolite-user-name 是与您拥有的每个 gitolite 用户关联的用户名,而 asana-api-key 是该用户的 api 密钥。

    然后在我的 post-receive 钩子中添加:

    apikey=$(git config asana.$GL_USER)
    

    它为执行提交的用户获取相应的 api 密钥。这允许每个用户使用他们在 Asana 中的帐户来评论他们自己的提交。

    【讨论】:

      猜你喜欢
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多