jenkins-通过api获取所有job及最新build信息

日常维护的API接口功能:

前提: python

  1. 获取所有job:
python 复制代码
def get_all_jobs(jenkins_url, username, password):
    url = f"{jenkins_url}/api/json"
    response = requests.get(url, auth=(username, password))
    if response.status_code == 200:
        data = response.json()
        jobs = data["jobs"]
        job_names = [job["name"] for job in jobs]
        return job_names
    else:
        print("Failed to retrieve job information")
        return []

jenkins_url = "http://jenkins.xxxxx.com:8080"
username = "xiaoxiang"
password = "xxxxx"

all_jobs = get_all_jobs(jenkins_url, username, password)

job_list = []

for job_name in all_jobs:
    job_list.append(job_name)
  1. 获取job 最新build时间:
python 复制代码
def get_job_last_build_time(jenkins_url, job_name,username,password):
    url = f"{jenkins_url}/job/{job_name}/lastBuild/api/json"
    #print(url)
    try:
        response = requests.get(url,auth=(username,password))
    #print(response.status_code)
    #try:
        if response.status_code == 200:
            data = response.json()
            st = int(data['timestamp']) / 1000
            st2 = datetime.datetime.fromtimestamp(st)
            return st2.strftime('%Y-%m-%d %H:%M:%S')

        #print(data['lastBuild'])
        #last_build_timestamp = data["lastBuild"]["timestamp"]
        #return last_build_timestamp
        elif response.status_code == 404:
            print('%s: 无构建记录' % job_name)
        else:
            print(f"Failed to retrieve job information for {job_name}")
            return None
    except Exception as e:
        print('%s: 获取参数异常' % job_name)

jenkins_url = "http://jenkins.xxxxx.com:8080"
username = "xiaoxiang"
password = "xxxxx"
get_job_last_build_time(jenkins_url,i,username,password)

其他功能,按需参考。。。

相关推荐
喵个咪5 分钟前
基于 Next.js 的 Headless CMS 前端架构:技术解析与二次开发导引
前端·react.js·next.js
阿白同学1054517 分钟前
一座前端文明的地层:React 源码考古报告
前端
七牛云行业应用8 分钟前
别手搓多Agent了!Codex Windows版用Git Worktree并行跑代码,真的香
前端
前端环境观察室8 分钟前
指纹浏览器都用了,为什么任务还是要人盯着?
前端
lichenyang45315 分钟前
鸿蒙聊天 Demo 练习 11:路由拦截器 + dialog 路由 + 页面生命周期
前端
铁皮饭盒18 分钟前
Bun 提供了许多 Node.js 原生没有的专属 API
前端·后端
destinying19 分钟前
前端秒变AI全栈,我的核心资产是一套Node.js“中间件”
前端·后端·面试
环信27 分钟前
即时通讯服务的数据安全与合规实践
前端
轻闲一号机1 小时前
【语音】笔记
前端·笔记·算法
初心丨哈士奇1 小时前
一行 # 的差别:彻底搞懂前端路由的 hash 和 history 模式
前端·浏览器