作为从 Azure DevOps (ADO) 迁移到 GitHub (GH) 的一部分,我们正在评估如何在 GitHub Actions (GHA) 中复制构建 Azure Pipeline (AzP),该管道将 python 轮子发布到 Azure Artifact Feed (AAF)。
95% 的工作流程很容易转移,但有一个步骤我不清楚:验证 GHA 运行程序以允许其发布到 AAF。 文档指出我们应该创建一个个人访问令牌(PAT),然后将其作为秘密添加到 GH 存储库中,然后直接用作 GHA 的一部分。
此工作流程对我们不起作用,因为没有一个用户应该提供访问权限;相反,我们希望为 GHA 管道本身提供身份验证,就像我们对当前的 AzP 所做的那样,它由于属于某些集合的一部分而获得某些权限。
TwineAuthenticate
。我意识到这不会是 1:1,但我想知道在不需要通过用户帐户的情况下将 GHA 验证为 ADO 的最佳实践是什么,因为我们是一家拥有数百个用户和存储库的公司。
这个问题不仅适用于 AAF,它是一个通用的 GHA<->ADO 集成问题。例如,触发 AzP 的GHA 也需要 PAT 作为其定义的一部分。
使用服务主体和托管身份。介绍了
将 Microsoft Entra 服务主体和托管标识添加到 Azure DevOps 组织,以授予对组织资源的访问权限。对于许多团队来说,当您对公司中支持自动化工作流程的应用程序进行身份验证时,此功能可以成为个人访问令牌 (PAT) 的可行且首选的替代方案。在问答中
我可以使用服务主体连接到源吗?,它共享示例以使用服务主体连接到 Azure Artifacts 源。您可以探索这一点以避免在 GitHub Actions 中使用个人访问令牌。