审计 jenkins获取构建历史,生成excel
脚本入口

脚本内容
def jobName = "城市云-生产环境-M/0102-CCDCSM平台-AUTH"
def job = Jenkins.instance.getItemByFullName(jobName)
def startDate = new Date(123, 0, 1) // 2023-01-01
// 打印表头(拆分Git字段)
println "构建编号,构建结果,构建时间(标准),构建链接,Git提交ID,提交作者,提交信息,变更文件"
job.builds.each { build ->
if (build.getTimeInMillis() >= startDate.getTime()) {
// 转换时间为标准格式
def buildTime = new Date(build.timeInMillis).format("yyyy-MM-dd HH:mm:ss")
// 处理Git变更
def changeSet = build.changeSet
def commitId = "", author = "", msg = "", files = ""
if (changeSet != null && !changeSet.isEmptySet()) {
def firstEntry = changeSet.iterator().next()
commitId = firstEntry.commitId?.take(8) ?: "未知"
author = firstEntry.author?.displayName ?: "未知"
msg = firstEntry.msg?.replaceAll(",", " ")?.take(50) ?: "无提交信息"
files = firstEntry.affectedPaths?.join(";")?.take(100) ?: "无文件变更"
} else {
commitId = "无变更记录"
}
// 输出拆分后的字段
println "${build.number},${build.result},${buildTime},${build.absoluteUrl},${commitId},${author},${msg},${files}"
}
}
其中 jobName 为项目名称,如果有文件夹的话,则是 文件夹/项目名 的格式;
获取的内容类似

复制这些内容,通过在线网站 Table Convert - Free Online Table Converter and Generator
进行转换生成excel

然后将下载的excel文件给审计人员即可。