Jenkins

Jenkins의 모든 프로젝트 disable 상태로 만들기

DevelopC 2019. 8. 2. 14:04
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