update low and add jenkins api

This commit is contained in:
2026-04-10 01:32:57 +03:00
parent 2d30fe258b
commit ccbbf64ddb
4 changed files with 217 additions and 2 deletions

View File

@@ -76,6 +76,12 @@ class AutonomousPipelineSave(BaseModel):
phases: list[LowCodePhaseIn] = Field(default_factory=list)
class JenkinsTriggerRequest(BaseModel):
server_url: str = ""
job: str
parameters: dict[str, str] = Field(default_factory=dict)
def validate_config(config_text: str):
try:
yaml.safe_load(config_text)
@@ -239,6 +245,44 @@ def put_autonomous_pipeline(
raise HTTPException(status_code=500, detail=f"Database error: {str(e)}")
@app.post("/jenkins/trigger")
def jenkins_trigger(
req: JenkinsTriggerRequest,
user: User | None = Depends(get_current_user) if REQUIRE_AUTH_FOR_GENERATE else None,
):
if user is None:
raise HTTPException(status_code=401, detail="Authentication required")
from backend.jenkins_client import default_jenkins_credentials, trigger_jenkins_job
default_url, ju, jt, verify_ssl = default_jenkins_credentials()
base = (req.server_url or "").strip() or default_url
if not base:
raise HTTPException(
status_code=400,
detail="Укажите Jenkins URL в фазе или задайте JENKINS_DEFAULT_URL в окружении backend.",
)
if not ju or not jt:
raise HTTPException(
status_code=503,
detail="Задайте JENKINS_USER и JENKINS_TOKEN (API token) в окружении backend.",
)
job = (req.job or "").strip()
if not job:
raise HTTPException(status_code=400, detail="Поле job обязательно.")
ok, _code, msg, detail = trigger_jenkins_job(
server_url=base,
job_path=job,
parameters=req.parameters,
username=ju,
token=jt,
verify_ssl=verify_ssl,
)
if not ok:
raise HTTPException(status_code=502, detail={"message": msg, **detail})
return {"ok": True, "message": msg, **detail}
@app.get("/chat/history")
def chat_history(
limit: int = 500,