因为工作中发生过很严重的 Regression Issue,当时的解决方案是在Daily Build中使用二分法找到出问题的Build, 过程比较繁琐,所以就有了这么个需求,要求记录Daily Build的git changes信息
Jenkins REST API可以获取到Build信息, 获取方式为
https://<your-jenkins-server>/job/<job-name>/<buildnumber>/api/json
也就是在某个项目的Build的url里加上/api/json即可

如果不知道Build number只想获取最新的build number信息, 可以使用 xxx/lastBuild/api/json
然后我们解析该json内容就可以获取到相应的Git changes信息了,另外还需要做一些Git判断
集成到Jenkins中还是使用Python脚本更方便,这里需要用到 GitPython和requests,基于Python 3环境
pip install GitPython
pip install requests
changes.py文件代码如下
# Use Jenkins REST API to get changes info
# install requests - pip install requests
# install GitPython - pip install GitPython
from logging import fatal
import requests
import argparse
import json
from git import Repo
#### 将字符串List写入文件中
def writeChangesToFile(url, repo_path, branch_name, file_path):
f = open(file_path, mode="w+", encoding="UTF-8")
info_list = parseJson(url,repo_path)
main_info = getMainInfo(branch_name,url)
f.write(main_info)
f.write("\n\n")
if len(info_list) == 0:
f.write("No changes!")
else:
使用Python与Jenkins REST API获取Git变更信息

本文介绍了如何利用Python和Jenkins的REST API来获取Git构建的改动信息,以解决工作中Regression Issue的问题。通过指定的Jenkins URL加上特定路径获取Build信息,并通过获取最新Build number来进一步得到Git变化详情。文中提供了Python脚本示例,用于从Git仓库中导出changes信息。
最低0.47元/天 解锁文章
1361





