2

此问题涉及 Artifactory Pro 4.14.2 中的本地 NuGet 存储库。

我们使用一个名为的服务帐户DevNetRunnerSvc将 NuGet 工件发布到 Artifactory。此帐户配置了Deploy/Cache权限,没有配置Delete/Overwrite权限

DevNetRunnerSvc 对相关存储库的有效权限

但是,DevNetRunnerSvc仍然能够覆盖此存储库中的工件:

演示 DevNetRunnerSvc 修改的工件

我需要一些帮助来保护工件免受任何和所有覆盖(适用于已发布的 NuGet 包),或者确定这是一个应该转发给 JFrog 的错误。

附加信息:

  • 用于发布工件的(轻微清理的)命令是jfrog rt upload $(Join-Path $env:CI_PROJECT_DIR "$($env:PACKAGE).$($env:VERSION).nupkg") nuget-org-dev/org/$($env:PACKAGE)/$($env:PACKAGE).$($env:VERSION)-$($env:CI_BUILD_REF_SLUG).nupkg
  • 在调试此问题时,我已从DevNetRunnerSvc所有组中删除。
  • 成功删除Deploy/Cache权限DevNetRunnerSvc会阻止其将工件发布到此存储库。
  • 适当地阻止了从该存储库向另一个存储库“提升”已发布的工件:

    [Info] Moving artifact: nuget-org-dev/org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2-master.nupkg to: nuget-org/org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2.nupkg [Error] Artifactory response: 409 Conflict { "messages": [ { "level": "ERROR", "message": "User doesn't have permissions to move 'nuget-org-dev:org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2-master.nupkg'. Needs delete permissions." } ] }

  • 用于执行上述命令的命令是jfrog rt move "nuget-org-dev/(org)/($($env:PACKAGE))/($($env:PACKAGE).$($env:VERSION))-$($env:CI_BUILD_REF_SLUG)(.nupkg)" "nuget-org/{1}/{2}/{3}{4}"

  • 我已将自己添加为该存储库的观察者。覆盖工件时DevNetRunnerSvc,我收到以下事件通知:Thu Apr 13 12:25:34 EDT 2017 [devnetrunnersvc/10.228.128.23] [CREATED] nuget-org-dev/org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2-master.nupkg
4

1 回答 1

1

看起来这是此 Jira RTFACT-14442中提到的错误,已在更高版本中修复。此外,Artifactory 版本 4.14.2 已结束生命周期,JFrog 不会为该版本带来任何错误。我强烈建议将 Artifactory 升级到 6.23 或 7.10 的最新版本。

于 2020-10-24T06:15:17.333 回答