在Jenkins Pipeline中从commitInfoAll数组提取提交哈希值
提取Jenkins Pipeline提交信息中的哈希值数组
没问题,在Jenkins Pipeline(基于Groovy)里可以通过正则匹配结合数组操作轻松实现这个需求。这里给你一个简洁可靠的解决方案:
实现代码
// 假设你的原始提交信息数组是commitInfoAll def commitHashes = commitInfoAll.collect { commitEntry -> // 用正则精准匹配Commit: 后的40位十六进制Git哈希值 def hashMatcher = commitEntry =~ /Commit: ([0-9a-f]{40})/ // 匹配成功则返回哈希值,失败返回null hashMatcher.matches() ? hashMatcher[0][1] : null }.findAll() // 过滤掉匹配失败的null项,只保留有效哈希值
代码说明
- 遍历处理每条提交信息:用
collect方法逐个迭代commitInfoAll里的元素; - 正则精准捕获哈希:
/Commit: ([0-9a-f]{40})/专门匹配Git标准的40位十六进制哈希,避免误抓其他字符串; - 清理无效数据:
findAll()自动移除匹配失败产生的null值,确保最终数组里全是有效的提交哈希;
效果验证
如果你的commitInfoAll包含多条提交记录,运行这段代码后,commitHashes就会变成你想要的纯哈希数组,比如:
[acaf95bf73804bb3a3c10b0352c2d566506c26f5, a1720a49e7f0ed98c25a4119ae961b71d7e3fdc3]
内容的提问来源于stack exchange,提问作者Shahar Hamuzim Rajuan
相关产品推荐
相关产品推荐

