You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Jenkins作业可用的非全局托管文件?

解决Jenkins获取工作区/命名空间特定托管文件的问题

你提到的getConfigsInContext()并非可直接调用的静态方法,要获取作业所在工作区/命名空间的非全局托管文件,需要结合Jenkins的上下文对象实现,具体方案如下:

实现步骤

  • 获取当前作业所属的上下文容器(比如文件夹、命名空间)
  • 调用对应方法筛选该容器下的托管文件,排除全局文件

代码示例

// 获取当前作业对象
def currentJob = Jenkins.get().getItemByFullName(env.JOB_NAME)
// 获取作业所在的父容器(即对应的文件夹/命名空间)
def context = currentJob.getParent()

// 获取该上下文范围内的所有托管文件
def allContextFiles = org.jenkinsci.plugins.configfiles.ConfigFiles.get().getConfigsInContext(context)
// 过滤出非全局文件(全局文件的context为null)
def nonGlobalFiles = allContextFiles.findAll { it.getConfig().getContext() != null }

补充优化

如果需要仅获取当前作业专属的托管文件(不包含继承自上级容器的文件),可以进一步过滤:

def jobSpecificFiles = allContextFiles.findAll { it.getConfig().getContext() == context }

注意:确保执行代码的Jenkins用户拥有对应文件夹/命名空间的托管文件访问权限,否则会返回空列表。

内容的提问来源于stack exchange,提问作者Comodo3003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 13:57:17