【问题标题】:Give Azure DevOps Pipelines access to publish gradle package to Azure DevOps Artifact feed授予 Azure DevOps Pipelines 访问权限以将 gradle 包发布到 Azure DevOps Artifact 源
【发布时间】:2022-11-23 11:33:27
【问题描述】:

我正在设置一个共享代码库,并已设法构建工件并使用个人访问令牌将它们发布到提要,但我想将发布移动到 Azure Pipeline。我正在尝试将构建帐户与构建时可用的访问令牌 (System.AccessToken) 一起使用,但我从 Azure Artifacts 收到 403 错误。 [项目] 构建服务 ([Org]) 帐户被添加为订阅源的贡献者。

我有一个具有以下配置的 build.gradle.kts 文件(已替换敏感信息):

publishing {
    publications {
        create<MavenPublication>("private") {
            groupId = "[groupId]"
            artifactId = "shared"
            version = "0.0.1"
            artifact("./build/libs/lib.jar")
        }
    }

    repositories {
        maven(url = "https://pkgs.dev.azure.com/[Org]/[Project]/_packaging/maven-private/maven/v1") {
            name = "maven-private"
            credentials {
                username = System.getenv("AZURE_DEVOPS_USER")
                password = System.getenv("AZURE_DEVOPS_ACCESS_TOKEN")
            }
        }
    }
}

和 Azure 管道配置:

trigger:
  - main

pr: none

resources:
  - repo: self

stages:
  - stage: Build
    displayName: Build stage
    jobs:
      - job: Build
        displayName: Build
        pool:
          vmImage: 'ubuntu-latest'
        steps:
          - task: Gradle@2
            inputs:
              gradleWrapperFile: 'gradlew'
              workingDirectory: '$(Build.SourcesDirectory)'
              tasks: 'build'
              javaHomeOption: 'JDKVersion'
          - task: Gradle@2
            env:
              AZURE_DEVOPS_USER: "[Project] Build Service ([Org])"
              AZURE_DEVOPS_ACCESS_TOKEN: $(System.AccessToken)
            inputs:
              gradleWrapperFile: 'gradlew'
              workingDirectory: '$(Build.SourcesDirectory)'
              tasks: 'publish'
              javaHomeOption: 'JDKVersion'

发布步骤失败并出现以下错误:

Execution failed for task ':lib:publishPrivatePublicationToMaven-privateRepository'.
> Failed to publish publication 'private' to repository 'maven-private'
   > Could not PUT 'https://pkgs.dev.azure.com/[Org]/[Project]/_packaging/maven-private/maven/v1/[groupId]/shared/0.0.1/shared-0.0.1.jar'. Received status code 403 from server: Forbidden - User '[userId]' lacks permission to complete this action. You need to have 'ReadPackages'.

我不知道如何进行调试,有人有什么建议吗?

【问题讨论】:

    标签: azure gradle azure-devops azure-pipelines azure-artifacts


    【解决方案1】:

    对于错误' You need to have 'ReadPackages'',你应该进入你的Azure Artifacts–>your feed–>feed settings–>Permissions。 根据您选择的范围(组织范围或项目范围),

    您应该单击添加用户/组并搜索项目集合构建服务 ({OrgName}) 并添加为组织级范围内的供稿的贡献者。

    或者单击添加用户/组并搜索{项目名称}构建服务({组织名称})并添加为项目级范围内的供稿的贡献者。

    请参阅 Configure permissions 文档中的详细信息。 我希望这能有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2019-09-13
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      相关资源
      最近更新 更多