我正在尝试修改现有的EnvInject插件,以便隐藏它在构建页面上的Environment Variables
链接。如果我正确理解Jenkins API,我应该能够通过找到Action
接口的实现位置并让getIconFileName()
返回null
来实现此目的。
我发现该方法在EnvInjectAction.java中实现并修改为返回null
,但这没有效果 - 链接在构建页面上仍然可见。我甚至尝试修改getDisplayName()
和getUrlName()
也返回null
,但这也没有效果。以下是修改后的方法:
public String getIconFileName() {
return null;
}
我已经注意遵循Jenkins插件教程中deploying a custom build of a core plugin的说明,我也尝试重新启动Jenkins运行的机器,但都无济于事。
我显然缺少一些重要的东西,但我无法弄清楚它可能是什么。我还需要做些什么来使插件不显示环境变量链接?
答案 0 :(得分:1)
你为什么要这样做?隐藏敏感信息?
您是否意识到即使您删除了链接,也可以通过以下方式显示变量:
http://jenkins/job/YourJob/1/injectedEnvVars
?
或根据EnvInjectPlugin-VariablesTraceability:
"您还可以通过以下方式获取构建环境变量
HTTP GET URL: <jenkins_url>/job/<job_name>/<build_number>/injectedEnvVars/export
&#34;
但是,如果仅删除链接并修改插件,则必须将以下内容添加到Jenkins&#39; run/jenkins/war/css/style.css
:
a[href*='/injectedEnvVars'] {
display: none;
}
制作适应style.css
的备份副本,因为它可能会被:
$ sudo service jenkins --full-restart
您可以使用具有以下内容的自定义CSS:
管理Jenkins →配置系统→主题→主题CSS的网址:...
答案 1 :(得分:0)
作为克服评论限制的答案。
我查看了该插件的来源,我可以说我已选择EnvInjectAction.java's
getDisplayName()
来应用这些更改。因为它包含return "Environment Variables";
,并且是整个项目中唯一包含该字符串的文件。
我注意到EnvIinjectAction
已被弃用,但无论如何都不会造成任何伤害。
您是否尝试返回空字符串或任意字符串进行测试而不是null
。也许Jenkins本身不喜欢这种方法返回null
。 (但接下来的问题是,为什么它仍然会显示插件的原始字符串。)
我甚至下载了jenkins-1.585核心源并搜索了getDisplayName()
的调用,以检查返回的值是如何处理的,但src/main/java.
中有332个我仍在尝试查找合适的。
您是否在计算机上的本地Jenkins上尝试了更改的插件?在不是由您自己维护的服务器上安装插件时可能出现了问题。
您是否考虑过contacting the maintainer Gregory Boissinot?