权力的人-自定义和扩展人工与用户插件

根据我们与数千名Artifactory用户的经验,我们可以确定一件事:我们知道的不多我们需要你每个组织都以不同的方式执行ALM:工件批准流、快照保留策略、构建到发布流、治理、所需的元数据等等——每个组织都是不同的。对于构建和部署流程应该是什么样子,我们肯定有一些想法,但是有很多东西使您的流程与众不同。这很好。毕竟,您得到的报酬不是在理想的部署周期内工作,而是解决业务问题。至少我们希望如此。

作为二进制存储库的创建者,承认我们不知道更好的东西这一事实会使我们的生活变得复杂……而且不仅会伤害我们的自我。我们想给你完美的工作工具,但如果不规定你的工作是什么,我们怎么能做到呢?解决方案是众所周知的-扩展,又名附加组件,用户插件,你的名字。

“天啊!你可能会说。“代码!joy joy !终于有借口到处乱闯了!”或者“OMG !代码!把这些东西编码到你的产品中是你的工作,不是我的!”不管怎样,我们都没得选择,不是吗?说到定制,你得告诉神器你想让它做什么。我们只能尽力为您简化手续。所以,我们开发了一个简单的DSL。

在这篇文章中,我将向您展示使用用户插件定制Artifactory是多么容易。事情是这样的:您希望阻止下载已弃用的构件。弃用信息附加为一组自定义属性通过一些质量保证机制(或有机体)对工件进行处理。

比方说,禁止下载的工件带有属性注释弃用= true。Artifactory允许您编写回调代码,这些回调将在响应系统中的各种事件时执行。中的可用回调函数列表用户插件文档。所以,我们要写a下载插件和回调,我们正在寻找的是altResponse。在这个回调中,我们可以提供一个替代响应,而不是Artifactory被请求的响应。代码如下:

1下载{2altResponse {request, responseRepoPath ->3.def弃用=存储库. getproperty (responseRepoPath) .getFirst (“弃用”
4如果(已弃用&& deprecated. toboolean ()) {5状态= 4036消息=“此工件已弃用,请使用其他替代品。”
7日志.warn"请求已被弃用的工件:responseRepoPath美元。"
8910
10行代码。这是所有。让我们来检查一下。首先要注意的是:它是Groovy!如果你喜欢,那就好好享受吧!如果你不是,别担心。它几乎就像Java一样,所以你读它的时候不会有任何问题,而且从第一天开始就很有效率。

所以,我们开始吧,一行一行:

  1. 声明它是a下载插件。
  2. 定义我们想要的回调类型(altResponse).当我们实现备选响应时,Artifactory为我们提供了2个对象:
  3. 我们想要第一个值“弃用”属性表示的工件上定义的responseRepoPath
  4. 如果该值存在并且是“真正的”1“y”正如Groovy的toBoolean ()
  5. 将返回码设置为403 (被禁止的),
  6. 设置正确的错误消息和
  7. 可选地,向对象发出警告Artifactory日志
好了,就这些。现在你可以看到,用户插件的巨龙并没有那么可怕。只需考虑您可以自动化交付周期、应用规则和检查或为企业用户提供更好的Artifactory体验的独特方式。在这里这里有一些示例和社区贡献的插件来激发您的想象力。

享受你的身材!