SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MQjehovah/agent --skill jenkins명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
月度经营复盘。适用于"XX月经营情况 / 经营分析 / 经营报告 / 月度复盘"类任务。固化已验证可用的批量 SQL 查询集与报告模板,一次并行查完、直接出报告,禁止自由探索数据库。
产品经营分析。分析销售、采购、库存、成本、现金流、生产等业务数据并生成报告。已按数字中台真实数据库校准:明确标注哪些指标数据库能算、哪些无数据源不得编造,每个维度附可用 SQL。
严格 Prove-It 测试驱动开发模式。先写失败测试,证明它失败,再写代码,证明它通过,最后重构。
| name | jenkins |
| description | jenkins操作技能,通过 Jenkins API 进行作业管理、构建触发、构建监控等运维操作。 |
适用场景: 通过 Jenkins API 进行作业管理、构建触发、构建监控等运维操作。
获取所有作业列表:
curl -u [username]:[password or token]http://cloudci.xzrobot.com/api/json?pretty=true
http://cloudci.xzrobot.com/api/json?pretty=truehttp://cloudci.xzrobot.com/job/JOBNAME/api/json?pretty=truehttp://cloudci.xzrobot.com/job/JOBNAME/lastBuild/api/json?pretty=truehttp://cloudci.xzrobot.com/job/JOBNAME/lastStableBuild/api/json?pretty=truehttp://cloudci.xzrobot.com/job/JOBNAME/lastSuccessfulBuild/api/json?pretty=truehttp://cloudci.xzrobot.com/job/JOBNAME/lastFailedBuild/api/json?pretty=true
curl -u [username]:[password or token] http://cloudci.xzrobot.com/queue/api/json?pretty=true
curl -u [username]:[password or token] http://cloudci.xzrobot.com/job/JOBNAME/lastBuild/buildNumber
获取 Crumb:
curl -s -f -u "[username]:[password or token]" \
--cookie-jar cookie.jar \
-s http://cloudci.xzrobot.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)
无参构建:
curl -u [username]:[password or token] \
http://cloudci.xzrobot.com/job/JOBNAME/build \
-X POST -H "Jenkins-Crumb:<CRUMB>"
有参构建:
curl -u [username]:[password or token] \
http://cloudci.xzrobot.com/job/JOBNAME/buildWithParameters \
-X POST -H "Jenkins-Crumb:<CRUMB>" \
--data-urlencode json='{"param1":"value1","param2":"value2"}'
通过 POST Body 触发:
curl -u [username]:[password or token] \
http://cloudci.xzrobot.com/job/ROBOT_JENKINS_TEST/api/json?tree="lastBuild[buildNumber]" \
-X POST -H "Jenkins-Crumb:<CRUMB>" \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'json={"parameter":[
{"name":"ENVIRONMENT","value":"test"},
{"name":"BRANCH","value":"master"}
]}'
curl -u [username]:[password or token] \
http://cloudci.xzrobot.com/job/JOBNAME/BUILD_ID/logText/progressiveText?start=0
from jenkinsapi.jenkins import Jenkins
class JenkinsClient:
def __init__(self):
self.jenkins = Jenkins(
'http://cloudci.xzrobot.com',
username='[username]',
password='[password or token]',
use_crumb=True
)
def get_all_jobs(self):
"""获取所有作业"""
return self.jenkins.get_jobs_info()
def get_job_info(self, job_name):
"""获取作业信息"""
job = self.jenkins.get_job(job_name)
return {
'last_build': job.get_last_build().__str__(),
'last_completed': job.get_last_completed_build().__str__(),
'last_good': job.get_last_good_build().__str__(),
'last_failed': job.get_last_failed_buildnumber(),
'is_running': job.is_queued_or_running()
}
def trigger_build(self, job_name, params=None):
"""触发构建"""
if params:
self.jenkins.build_job(job_name, params=params)
else:
self.jenkins.build_job(job_name)
def get_build_info(self, job_name, build_id=None):
"""获取构建信息"""
job = .jenkins.get_job(job_name)
build_id:
build = job.get_build(build_id)
{
: build.get_timestamp(),
: build.get_console(),
: build.get_params(),
: build.get_status(),
: build.get_changeset_items()
}
client = JenkinsClient()
client.trigger_build(, {: , : })
待触发: 构建ID需要从 lastBuild/buildNumber 获取后再查询日志
运行中: is_queued_or_running() 返回 True
成功: 构建状态为 SUCCESS
失败: 构建状态为 FAILURE