审计 jenkins获取构建历史,生成excel
审计 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.changeSetdef 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文件给审计人员即可。