19 lines
602 B
Python
19 lines
602 B
Python
import asyncio
|
|
|
|
from fastapi import APIRouter, Depends, HTTPException, Request
|
|
|
|
from app.core.security import require_permission
|
|
from app.services import publish_service
|
|
|
|
|
|
router = APIRouter()
|
|
PUBLISH_LOCK = asyncio.Lock()
|
|
|
|
|
|
@router.post("/admin/publish")
|
|
async def admin_publish_version(request: Request, auth=Depends(require_permission("publish:manage"))):
|
|
if PUBLISH_LOCK.locked():
|
|
raise HTTPException(status_code=409, detail="已有版本发布任务正在进行,请等待完成后再发布")
|
|
async with PUBLISH_LOCK:
|
|
return await publish_service.publish_version(request)
|