jenkins API实践

简介: jenkins API实践

一、jenkins Python API

在线文档:https://python-jenkins.readthedocs.io/en/latest/

项目地址:https://pypi.org/project/python-jenkins/

1.注意支持的Python版本

目前只支持到3.6

2.简单示例

pip3 install python-jenkins
import jenkins
server = jenkins.Jenkins('http://192.168.1.129:8080/jenkins', username='admin', password='123456',timeout=10)  #jenkins地址 用户 密码 连接超时,单位秒
user = server.get_whoami()     # get_whoami 及get_version就是接口名称,其他接口名称可以通过文档查询,执行对应的操作即可
version = server.get_version()
print('Hello %s from Jenkins %s' % (user['fullName'], version))

二、jenkins REST API

1.API简介

本地文档:http://${jenkins_url}/api/
#job可以替换成其他jenkins 选项,如果视图 凭据,都有全局及单个,在对应的url后面加上/api即可
http://${jenkins_url}/job/${job_name}/api/  
http://192.168.1.129:8080/jenkins/manage/credentials/api/ #凭据
http://192.168.1.129:8080/jenkins/manage/credentials/store/system/domain/_/credential/nexus-admin/api/  #单个凭据

以下为常见的job API

2.jenkins REST API共享库封装

创建 API token

创建凭据

验证凭据是否有效

pipeline {
    agent  any
    stages {
        //下载代码
        stage("GetCode"){ //阶段名称
            steps{  //步骤
                httpRequest authentication: 'jenkins-admin',
                httpMode: 'POST',
                responseHandle: 'NONE',
                url: 'http://192.168.1.129:8080/jenkins/job/pipeline-test02/disable'  #将test02禁用
            }
        }
    }
}

确实被禁用了

3.jenkins file + sharelibrary示例

sharelibrary

jenkinsapi.groovy(注意替换对应的 jenkins地址 凭据名称 及模板项目名称)

package org.devops
//封装HTTP请求
def HttpReq(reqType,reqUrl,reqBody){
    def jenkinsServer = 'http://192.168.1.129:8080/jenkins/'
    result = httpRequest authentication: 'jenkins-admin',
                        httpMode: reqType,
                        consoleLogResponseBody: true,
                        ignoreSslErrors: true, 
                        requestBody: reqBody,
                        url: "${jenkinsServer}/${reqUrl}"
                        //quiet: true
                        
}
//新建项目
def CreateProject(projectName){
    
    withCredentials([usernamePassword(credentialsId: 'jenkins-zeyang-admin', passwordVariable: 'password', usernameVariable: 'username')]) {
    
    
       // demo-project-manage 为示例pipeline项目,用于提供新项目配置模板
        sh """
           curl -u ${username}:${password} -X GET 'http://192.168.1.129:8080/jenkins/job/demo-project-manage/config.xml' -o config.xml
           ls -l 
       
           curl -u ${username}:${password} -X POST 'http://192.168.1.129:8080/jenkins//createItem?name=${projectName}' -H 'Content-Type:text/xml' --data-binary @config.xml
    
    
        """
    }
}
//禁用项目
def Project(projectName,option){
    println(projectName)
    println(option)
    
    options = [ "DisableProject": "disable",
                "EnableProject":"enable",
                "DeleteProject":"doDelete",
                "BuildProject":"build"]
    
    result = HttpReq('POST',"job/${projectName}/${options[option]}",'')
    
}

jenkins file

jenkinsapi.jenkinsfile

@Library("jenkinslibrary@master") _
def jenkinsapi = new org.devops.jenkinsapi()
String projectName = "${env.projectName}"
String manageOpts = "${env.manageOpts}"
pipeline {
    
    agent { node {label "master"}}
    
    stages{
        stage("test"){
            steps{
                script{
                    
                    if (manageOpts == "CreateProject"){
                        jenkinsapi.CreateProject(projectName)
                    } else {
                        jenkinsapi.Project(projectName,manageOpts)
                    }
                }
            }
        }
    }
}

创建模板pipeline项目

显示结果

测试

三、jenkins CoreAPI

就是java版API,文档链接:https://javadoc.jenkins.io/index-core.html

不会java,会的可以研究下

 

相关文章
|
2月前
|
监控 供应链 搜索推荐
电商数据开发实践:深度剖析1688商品详情 API 的技术与应用
在电商数字化转型中,数据获取效率与准确性至关重要。本文介绍了一款高效商品详情API,具备全维度数据采集、价格库存管理、多媒体资源获取等功能,结合实际案例探讨其在电商开发中的应用价值与优势。
|
2月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
223 0
|
3月前
|
JSON API UED
运营商二要素验证 API:核验身份的一致性技术实践(Python示例)
随着线上业务快速发展,远程身份核验需求激增。运营商二要素验证API通过对接三大运营商实名数据,实现姓名、手机号、身份证号的一致性校验,具备权威性高、实时性强的优势,广泛应用于金融、电商、政务等领域。该接口支持高并发、低延迟调用,结合Python示例可快速集成,有效提升身份认证的安全性与效率。
321 0
|
4月前
|
缓存 监控 搜索推荐
电商生态协同的关键:API接口在电商数据对接中的应用与实践
电商数据对接API接口是连接电商平台与外部系统的智慧桥梁,通过标准化协议实现商品管理、订单处理、支付结算、物流追踪及数据分析等全链路支持。本文从核心功能、对接流程、应用场景和优化策略四个方面解析其技术逻辑与实践路径。API接口助力店铺管理自动化、精准营销与跨境电商全链路管理,同时通过安全防护、性能调优与合规管理提升效能,推动电商行业向智能化、高效化发展。
|
3月前
|
自然语言处理 供应链 前端开发
深度解析与技术实践:高效调用淘宝商品评论API的策略与代码实现
本文深入解析淘宝开放平台商品评论接口(Taobao.item_review),涵盖接口功能、调用逻辑与实战代码,助力开发者高效获取用户评价数据,提升电商数据分析能力。
|
4月前
|
人工智能 自然语言处理 API
电商API技术文档编写规范白皮书:方法论与行业实践
本文系统阐述电商API接口文档的编写规范与最佳实践,涵盖结构设计、技术语言、开发者体验、版本控制及质量保障等方面,助力企业提升开发效率,构建开放共赢的电商生态。
|
5月前
|
机器学习/深度学习 JSON 算法
京东拍立淘图片搜索 API 接入实践:从图像识别到商品匹配的技术实现
京东拍立淘图片搜索 API 是基于先进图像识别技术的购物搜索接口,支持通过上传图片、URL 或拍摄实物搜索相似商品。它利用机器学习和大数据分析,精准匹配商品特征,提供高效、便捷的搜索体验。接口覆盖京东海量商品资源,不仅支持外观、颜色等多维度比对,还结合用户行为数据实现智能推荐。请求参数包括图片 URL 或 Base64 编码,返回 JSON 格式的商品信息,如 ID、价格、链接等,助力消费者快速找到心仪商品,满足个性化需求。
339 18
|
8天前
|
供应链 安全 API
唯品会:利用银行转账API实现企业采购对公支付的技术实践
企业采购支付面临合规、效率与对账难题。唯品会通过银行API实现银企直连,构建安全高效对公支付系统,支持ISO 20022标准与多重风控,支付耗时从72小时降至90秒,错误率下降98%,推动供应链数字化升级。(236字)
96 1
|
24天前
|
算法 API 数据安全/隐私保护
深度解析京东图片搜索API:从图像识别到商品匹配的算法实践
京东图片搜索API基于图像识别技术,支持通过上传图片或图片URL搜索相似商品,提供智能匹配、结果筛选、分页查询等功能。适用于比价、竞品分析、推荐系统等场景。支持Python等开发语言,提供详细请求示例与文档。
|
5天前
|
算法 API 数据库
生鲜电商技术实践:基于保质期API的自动下架系统保障食品安全
基于保质期提醒API与自动化工作流,实现生鲜商品临期智能预警与自动下架。通过设定差异化预警阈值(如蔬菜2天、冷冻品7天),每日扫描数据库并触发下架指令,确保食品安全合规,降低损耗与客诉,提升运营效率。
35 0

推荐镜像

更多