Azure Artifacts - 与其他项目共享项目范围的源

hit*_*126 5 artifacts azure-devops azure-artifacts

我们的组织内有许多项目。其中一个项目创建了一个项目范围的 Azure Artifact 源,他们希望与我们的其他项目共享。

但是,当其他项目访问其工件页面时,从提要下拉列表中,他们只能看到“组织范围的提要”,而“项目范围的提要”下没有任何内容。我们需要做什么才能使此源可见并可供其他项目使用,特别是在他们的管道中使用。

我很茫然,因为到目前为止我完全一片空白。

Vit*_*Liu 10

根据文档:要在列表中查看项目范围的提要,您必须导航到提要范围内的项目。我们可以知道我们无法在另一个项目中看到项目范围的提要。

特别适用于其管道。

从位于同一组织但不同项目中的 Azure DevOps 管道连接到私有项目范围的源时,源范围所在的项目必须允许访问其他项目的生成服务。构建服务还必须单独添加到 feed 权限,无论 feed 的范围如何。

  1. 添加构建服务帐户:构建服务帐户是Project Collection Build Service (Org name),我们需要在该服务的项目范围的 feed 中配置 feed 权限。然后我们就可以访问管道中的项目范围的提要。

在此输入图像描述

  1. 我们还需要打开项目设置->设置并确保选项Limit job authorization scope to current project for non-release pipelinesLimit job authorization scope to current project for release pipelines被禁用。我们可以参考下图。

在此输入图像描述

然后我们可以在另一个项目管道中访问和使用项目范围的提要。


Bib*_*jan 5

这是一个非常古老的帖子。但是,如果有人仍然面临问题并且上述解决方案没有像我一样有效,那么请按照以下步骤操作。

步骤1:

  1. 选择托管 feed 的项目
  2. 选择项目设置
  3. 选择权限
  4. 选择组选项卡
  5. 选择贡献者
  6. 选择“成员”选项卡
  7. 单击添加
  8. 选择 [使用 Feed 的项目名称] 构建服务([组织名称]),例如:FeedConsumer Build Services (xyz)
  9. 单击“保存”

在此输入图像描述

第二步:

  1. 选择托管 feed 的项目
  2. 选择工件
  3. 选择您的提要。
  4. 选择提要设置
  5. 选择权限
  6. 单击添加用户/组按钮
  7. 选择 [使用 Feed 的项目名称] 构建服务([组织名称]),例如:FeedConsumer Build Services (xyz)
  8. 选择贡献者角色
  9. 单击“保存”

在此输入图像描述

第四步:

将 nuGet.config 文件添加到消费者项目的根路径,其中存在 .csproj 或 .sln 文件。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="[Feed Name]" value="https://pkgs.dev.azure.com/[Company Name]/[Project Name]/_packaging/[Feed Name]/nuget/v3/index.json" />
    </packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)

按照以下步骤获取上述xml

  1. 选择托管 feed 的项目
  2. 选择工件
  3. 选择所需的饲料
  4. 单击“连接到源”
  5. 选择NuGet.exe
  6. 它应该在项目设置中

在此输入图像描述

这应该允许您将一个项目中的提要使用到另一项目,而不会出现未经授权的错误。快乐编码!

参考:https://learn.microsoft.com/en-us/azure/devops/artifacts/how-to/project-scoped-feeds-pipeline-project-permissions ?view=azure-devops