【问题标题】:Saving build definition is giving error in Visual Studio Team Service保存构建定义在 Visual Studio Team Service 中出现错误
【发布时间】:2016-07-08 22:53:53
【问题描述】:

我已经开始使用 vs 团队服务构建自动化。我已通过个人访问令牌将我的 github 存储库与 Visual Studio Team Services 链接起来。

现在我可以在 Visual Studio Team Services 中选择 github 存储库。但是在保存构建定义时会出现以下错误:

无法在所选 GitHub 存储库上配置服务。这可能是由于没有必要的权限来管理所选存储库的挂钩。

谁能帮我解决这个错误。我们是否需要为构建自动化购买任何服务?

提前致谢。

【问题讨论】:

    标签: c# tfs tfsbuild azure-devops


    【解决方案1】:

    您只能构建托管在 VS Team Service 中的 github 存储库,您有权推送到。

    两种方式:

    使用您的 GitHub 用户帐户进行连接

    1. 在存储库选项卡上的连接下拉列表旁边,单击 管理链接。服务选项卡在您的浏览器中作为新选项卡打开。

      a.单击新建服务端点并选择 GitHub。

      b.在“添加新的 GitHub 服务连接”对话框中,选择“授予授权”,然后单击“授权”。

      c.在新的浏览器窗口中,登录 GitHub 并按照说明授权 Visual Studio Team Services 访问您的 GitHub 帐户。

    2. 在存储库选项卡上,选择您创建的连接。

    3. 选择包含您要构建的代码的存储库。

    使用个人访问令牌连接

    1. 登录 GitHub 并确保您有权阅读 存储库。
    2. 在 GitHub 中,创建访问令牌。

      a.选择 repo、user 和 admin:repo_hook 范围。

      b.将令牌复制到剪贴板。

    3. 登录 Team Services 并创建构建定义。

    4. 在存储库选项卡上的连接下拉列表旁边,单击 管理链接。服务选项卡在您的浏览器中作为新选项卡打开。

      a.单击新建服务端点并选择 GitHub。

      b.在添加新的 GitHub 服务连接对话框中,选择个人访问令牌。

      c.粘贴令牌并为连接命名。

    5. 在存储库选项卡上,选择您创建的连接。

    6. 选择包含您要构建的代码的存储库。

    更多细节可以参考MSDN的链接:Specify the repository - GitHub

    【讨论】:

    • 问题是该帐户必须具有管理员权限才能设置网络挂钩。拥有仓库的管理员权限来执行 CI 似乎并不是本质上必须的。 CI 是从源代码库中读取的东西。也许它需要写权限来保存一些工件,但这不会进入源代码库。应更改此工具以允许管理员手动设置网络挂钩并使用普通帐户构建。
    【解决方案2】:

    还有另一种情况也会引发此问题,特别是与配置 Continuous Integration 触发器有关。

    我有一个 github 帐户和我自己的存储库,但我也是另一个项目的合作者(这是一个人员而不是组织存储库)。

    GH 允许我创建个人访问令牌,并且 VSO 认为在构建定义上配置 Repository 选项时可以使用它,但它没有创建 Continuous 的适当权限集成 触发器作为合作者 到另一个私有仓库。

    原因是触发通知是使用 GitHub Web Hooks 执行的。似乎在第一次创建 CI 触发器时,VSO 向 GH API 发起了一个请求,以订阅所请求的 repo 的 push 事件......除了个人访问令牌包括您自己的 repo 的 admin:repo_hook 权限( s),而不是您作为合作者的任何人,因为此权利不能委托给个人帐户。

    我花了一些时间来解决这个问题。 8-}

    在这种情况下,我认为有两种可能的解决方案:

    1. 要求 repo 所有者生成并向您提供他的个人访问令牌,并具有适当的狭窄权限范围;
    2. 将存储库的所有权转让给组织,获得作为该组织成员的适当权利,然后使用您的 GH 用户凭据而不是 PAT 创建您的 VSO 端点。

    HTH。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      相关资源
      最近更新 更多