Orbit
连接 Azure DevOps 存储库
Orbit deploys from Azure Repos, the git hosting inside Azure DevOps. Connect once, pick a repository, and every push builds and goes live. This guide covers both ways to connect, selecting a…
Orbit 从 Azure Repos(Azure DevOps 内的 git 托管服务)进行部署。连接一次,选择一个存储库,每次推送都会构建并上线。本指南涵盖两种连接方式、选择存储库,以及 Azure 与其他提供商不同的两个地方。
两种连接方式,以及为什么有两种
Azure DevOps 组织可以在租户级别阻止第三方应用程序,很多公司都这样做。如果贵组织这样做,无论我们怎么做,登录按钮都无法工作,所以 Orbit 提供了第二种方式,该方式总是有效的。
- 使用 Microsoft 登录。 一键操作,无需复制粘贴。在贵组织允许第三方应用程序时可用。
- 个人访问令牌。 适用于每个组织,包括阻止应用程序的组织。您需要粘贴组织名称和在 Azure DevOps 中创建的令牌。
两种方式都能访问完全相同的功能。其中任何一种都不是另一种的精简版本。
开始之前
Orbit 只能看到您的 Azure DevOps 帐户能看到的内容。您需要对存储库有足够的权限以创建服务挂钩订阅,因为该订阅是推送到达我们的方式。没有它,连接会成功但永远不会部署任何内容。
选项 A:使用 Microsoft 登录
- 在 KPanel 中,单击左侧边栏中的 Orbit。
- 单击 新项目。
- 保持模式设置为 导入 Git 存储库。
- 选择 Azure DevOps 选项卡,然后单击 连接 Azure DevOps。
系统会将您发送到 Microsoft 以登录并批准访问。批准后,您会返回到 KPanel,其中加载了您的存储库。
如果您的组织阻止该应用程序,Microsoft 会拒绝,KPanel 会显示它给出的原因。这不是您可以通过重试摆脱的事情:使用下面的个人访问令牌,或请求管理员允许该应用程序。
选项 B:个人访问令牌
首先在 Azure DevOps 中创建令牌。
- 在 Azure DevOps 中,打开 用户设置,然后 个人访问令牌,然后 新令牌。
- 选择要从中部署的组织。
- 仅授予这三个范围,不超过这三个:
- 代码 (读取) 以便 Orbit 可以列出您的存储库并下载它正在构建的提交。
- 代码 (状态) 以便构建结果显示在提交和拉取请求上。
- 服务挂钩 (读取和写入) 以便 Orbit 可以订阅您的推送。
- 复制令牌。Azure 只显示一次。
然后在 KPanel 中:
- 打开 Orbit,然后 新项目,然后 Azure DevOps 选项卡。
- 在 使用个人访问令牌连接 下,输入您的 组织 名称。这是您的存储库地址中紧跟在
dev.azure.com之后的部分,所以对于https://dev.azure.com/contoso/web-platform/_git/storefront来说,组织是contoso。 - 粘贴令牌并单击 连接 Azure DevOps。
Orbit 立即使用令牌列出您的存储库。如果被拒绝,系统会告诉您缺少哪些范围,而不是要求您检查令牌,因为可以列出存储库但无法创建服务挂钩的令牌会连接清洁,然后永远不会部署任何内容。
您的令牌在存储前已加密,仅针对您命名的组织使用。
选择存储库
您的存储库显示为一个列表,名为 organisation / project / repository。Azure 存储库有三个部分,而不是两个,因为一个组织中的两个项目可以各自持有一个具有相同名称的存储库。
单击您想要的存储库旁边的 选择,然后照常完成项目:名称、框架、构建设置、环境变量。
如果存储库丢失
- 检查组织。个人访问令牌属于一个组织,所以不同组织中的存储库不会显示。连接该组织。
- 检查您在 Azure DevOps 中对存储库本身的访问权限。
- 检查存储库在 Azure 中是否被禁用。Orbit 不列出禁用的存储库,因为它们无法构建。
Azure 不同的两个地方
这些是真实的差异,而不是我们还没有实现的缺陷,两者都在这里说明,而不是后来发现。
Monorepo 根目录不会跳过推送
在其他提供商上,Orbit 读取每个推送更改的文件列表,monorepo 项目可以在其根目录下没有任何内容移动时跳过构建。Azure 不发送该列表。 因此 Orbit 在每次推送时都会构建,而不是猜测,因为猜测另一种方式会默默跳过您期望的部署。
您的根目录设置仍然决定构建运行的位置。它只是不再额外过滤构建的推送。
来自分支的拉取请求不被构建
Orbit 使用您项目的预览环境变量来构建拉取请求预览。这对来自您自己存储库的拉取请求是安全的,对来自分支的拉取请求不安全,分支是来自与您帐户没有关系的人的建议。
在 GitHub 上,Orbit 可以提供分支预览,因为 GitHub 在您自己的存储库内发布提议的提交,所以我们从不必针对贡献者的副本进行身份验证。Azure 不发布等效的内容,所以 Orbit 拒绝分支拉取请求,并在提交上说明这一点,而不是留下一个永远不会出现的预览。
来自您自己存储库内分支的拉取请求正常构建。
接下来发生的事
推送到您的生产分支,Orbit 会构建并部署。构建结果被发布回 Azure DevOps 中的提交,所以它显示在提交和提交所属的任何拉取请求上,您的分支策略可以要求它。