728x90
Jenkins의 모든 프로젝트 disable 상태로 만들기
Jenkins에서 제공하는 API를 이용하여 모든 프로젝트를 disable 상태로 수정하는 python 스크립트입니다.
import sys
import json
import requests
from requests.auth import HTTPBasicAuth
JENKINS_HOST = 'https://jenkins.com'
JENKINS_USER = 'user'
JENKINS_PASSWORD = 'password'
JOS_DISABLE_STATUS = 'disabled'
crumb_req = requests.get(JENKINS_HOST+'/crumbIssuer/api/json', auth=HTTPBasicAuth(JENKINS_USER, JENKINS_PASSWORD))
if crumb_req.ok is False:
sys.exit('jenkins crumb request fail')
jobs_req = requests.get(JENKINS_HOST+'/api/json?tree=jobs[color,url]', auth=HTTPBasicAuth(JENKINS_USER, JENKINS_PASSWORD))
if jobs_req.ok is False:
sys.exit('jenkins jobs request fail')
disable_request_header = {
crumb_req.json().get('crumbRequestField'): crumb_req.json().get('crumb')
}
jobs = jobs_req.json()
if jobs_req.ok is True:
for job in jobs.get('jobs'):
if job.get('color') != JOS_DISABLE_STATUS:
print(job.get('url'))
requests.post(job.get('url')+'disable', headers=disable_request_header, auth=HTTPBasicAuth(JENKINS_USER, JENKINS_PASSWORD))
728x90