gpt4 book ai didi

jenkins - 禁止重新部署以发布存储库

转载 作者:行者123 更新时间:2023-12-02 11:24:31 25 4
gpt4 key购买 nike

CI 系统:带有 Jenkins Artifactory 插件的 Jenkins,使用 Pipeline 作业
语言: Java,使用 Maven 构建

我们有一个设置,其中“release-versions”应该上传到临时存储库,并且应该能够从连续的 Jenkins 构建中覆盖(例如,由于 release/x.x.x 分支中的错误修复)。
不应允许发布版本直接上传到发布存储库,但应允许升级到其中。当然,无论是促销还是直接上传,都不应该允许它们被覆盖。

在我们当前的设置中,我们已成功允许重新部署到暂存,并禁止“重新升级”到版本。但是发布 Artifactory 仍然可以重新部署到发布存储库中。

Jenkins用户的有效权限:

  • 发布存储库
    • 删除/覆盖: false
    • 部署/缓存: true
    • 注释: true
    • 读取: true
  • 分期
    • 删除/覆盖: true
    • 部署/缓存: true
    • 注释: true
    • 读取: true

那么,有没有办法:

  1. 禁止部署(和重新部署)到发布存储库
  2. 允许每个版本一次升级到发布存储库
  3. 禁止“重新升级”到发布存储库
  4. 允许部署(和重新部署)到临时存储库

最好仅使用 Artifactory 权限设置。

最佳答案

看来您走在正确的道路上。正如您所提到的,您可以通过撤销“删除/覆盖”权限来“阻止”重新部署(覆盖)。对于特定用户或您的案例中的所有用户。要回答您的特定用例,您需要做的是:

  1. 禁止部署(和重新部署)到发布存储库

[A1]创建一个用于升级的用户,该用户将拥有发布存储库的部署权限。除了该用户之外,任何其他用户都不应具有该存储库的部署权限。它还应该具有暂存存储库的读取权限。请注意,管理员用户仍然拥有所有存储库的所有权限,但我相信这应该不会有任何问题。

  • 允许每个版本一次升级到发布存储库
  • [A2] 不要授予升级用户(参见 A1)对发布存储库的删除权限。因此,在尝试覆盖的情况下,您将收到一条错误消息:

    “message”:“没有足够的权限来覆盖 Artifactory ‘repoX:path/to/file’(用户‘YYY’需要删除权限)。”

  • 禁止“重新升级”到发布存储库
  • [A3]参见A2

  • 允许部署(和重新部署)到临时存储库
  • [A4] 授予 Jenkins 用户对暂存存储库的删除权限。

    使用 Artifactory 权限目标应该可以解决问题。

    关于jenkins - 禁止重新部署以发布存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246762/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com